import { integer, pgEnum, pgTable, text, timestamp, unique, uuid, } from "drizzle-orm/pg-core"; import { createInsertSchema, createSelectSchema } from "drizzle-zod"; import type { z } from "zod"; export const loadTypeEnum = pgEnum("load_type", ["drop", "live"]); export const opendockArticleSetup = pgTable( "opendock_article_setup", { id: uuid("id").defaultRandom().primaryKey(), av: integer("av").notNull(), description: text("description").notNull(), customer: text("customer").notNull(), // customer should be a concat of the ID - Desc customerDescription: text("customer_description").notNull(), loadType: loadTypeEnum("load_type").notNull().default("drop"), dock: text("dock").notNull(), upd_date: timestamp("upd_date").notNull().defaultNow(), upd_user: text("upd_user").notNull().default("lst-system"), createdAt: timestamp("created_at").notNull().defaultNow(), add_user: text("add_user").notNull().default("lst-system"), }, (table) => ({ uniqueAvCustomer: unique("uq_opendock_article_setup_av_customer").on( table.av, table.customer, ), }), ); export const opendockArticleSetupSchema = createSelectSchema(opendockArticleSetup); export const newOpendockArticleSetupSchema = createInsertSchema(opendockArticleSetup); export type OpendockArticleSetup = z.infer; export type NewOpendockArticleSetup = z.infer< typeof newOpendockArticleSetupSchema >;