51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
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", { withTimezone: true })
|
|
.notNull()
|
|
.defaultNow(),
|
|
upd_user: text("upd_user").notNull().default("lst-system"),
|
|
createdAt: timestamp("created_at", { withTimezone: true })
|
|
.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<typeof opendockArticleSetupSchema>;
|
|
export type NewOpendockArticleSetup = z.infer<
|
|
typeof newOpendockArticleSetupSchema
|
|
>;
|