Ignore:
Timestamp:
12/20/25 01:31:36 (7 months ago)
Author:
Tome <gjorgievtome@…>
Branches:
main
Children:
0d447f6
Parents:
b69759d
Message:

add constraints

Location:
database/drizzle/schema
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • database/drizzle/schema/builds.ts

    rb69759d rb615094  
    1 import { pgTable, serial, integer, text, numeric, boolean, date, primaryKey } from "drizzle-orm/pg-core";
     1import {pgTable, serial, integer, text, numeric, boolean, date, primaryKey, check} from "drizzle-orm/pg-core";
    22import { usersTable } from "./users";
    33import { componentsTable } from "./components";
     4import {sql} from "drizzle-orm";
    45
    56export const buildsTable = pgTable("build", {
     
    5253    (t) => ({
    5354        pk: primaryKey({ columns: [t.buildId, t.userId] }),
     55        checkValue: check("check_value", sql`${t.value} BETWEEN 1 AND 5`),
    5456    }),
    5557);
  • database/drizzle/schema/components.ts

    rb69759d rb615094  
    6767            .references(() => pcCasesTable.componentId, {onDelete: "cascade", onUpdate: "cascade" }),
    6868        formFactor: text("form_factor").notNull(),
    69         num_slots: integer("num_slots").notNull(),
     69        numSlots: integer("num_slots").notNull(),
    7070    },
    7171    (t) => ({
     
    107107// Cooler multi-values
    108108export const coolerCPUSocketsTable = pgTable("cooler_cpu_sockets", {
    109         cooler_id: integer("cooler_id")
     109        coolerId: integer("cooler_id")
    110110            .notNull()
    111111            .references(() => coolersTable.componentId, { onDelete: "cascade", onUpdate: "cascade" }),
     
    113113    },
    114114    (t) => ({
    115         pk: primaryKey({ columns: [t.cooler_id, t.socket] }),
     115        pk: primaryKey({ columns: [t.coolerId, t.socket] }),
    116116    })
    117117);
  • database/drizzle/schema/users.ts

    rb69759d rb615094  
    1 import { pgTable, serial, integer, text, numeric, boolean, date, primaryKey } from "drizzle-orm/pg-core";
     1import {pgTable, serial, integer, text, numeric, boolean, date, primaryKey, check} from "drizzle-orm/pg-core";
     2import {sql} from "drizzle-orm";
    23
    34export const usersTable = pgTable("users", {
     
    2627    status: text("status")
    2728        .notNull()
    28         .default("pending"), // Pending, Approved, Rejected
     29        .default("pending"),
    2930    componentType: text("component_type").notNull()
    30 });
     31    },
     32    (t) => ({
     33        checkStatus: check("check_status", sql`${t.status} in ('pending', 'approved', 'rejected')`),
     34    }),
     35);
    3136
    3237export type userItem = typeof usersTable.$inferSelect;
Note: See TracChangeset for help on using the changeset viewer.