54 lines
2.2 KiB
TypeScript
54 lines
2.2 KiB
TypeScript
import {
|
|
date,
|
|
integer,
|
|
pgTable,
|
|
text,
|
|
timestamp,
|
|
uuid,
|
|
} from "drizzle-orm/pg-core";
|
|
import { createSelectSchema } from "drizzle-zod";
|
|
|
|
export const eom = pgTable(
|
|
"eom",
|
|
{
|
|
eom_id: uuid("eom_id").defaultRandom().primaryKey(),
|
|
eomMonth: date("eomMonth").notNull(), // what month are we running in should just be the first of current month
|
|
plantToken: text("plantToken"),
|
|
article: text("article").notNull(),
|
|
articleDescription: text("articleDescription").notNull(),
|
|
materialType: text("materialType"),
|
|
invStart: integer("invStart"), // this will come from the previous month
|
|
invEnd: integer("invEnd"),
|
|
intransit: integer("intransit"),
|
|
// pass over a calculation for ending inv
|
|
purchase: integer("purchase"),
|
|
gpRecived: integer("gpRecived"),
|
|
// pass calcuation for difference
|
|
materialIn: integer("materialIn"), // from other alpla plants
|
|
materialOut: integer("materialOut"), // out to other alpla plants
|
|
quarantine: integer("quarantine"),
|
|
// calcualtion for actaul consumption
|
|
prodConsumption: integer("prodConsumption"),
|
|
// difference will be a calculated number
|
|
// waste will be calculated.
|
|
priceKg: text("priceKg"), // will be converted to a float and then calcuated into the data
|
|
// loss/gain calcualtion
|
|
comments: text("comments"),
|
|
weight: text("weight"), // for calculations should be converted to a float
|
|
pfc: text("pfc"), // profit center this will belong too.
|
|
upd_user: text("upd_user"),
|
|
upd_date: timestamp("upd_date"),
|
|
}
|
|
// (table) => [
|
|
// // uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`),
|
|
// uniqueIndex("role_name").on(table.name),
|
|
// ]
|
|
);
|
|
|
|
// Schema for inserting a user - can be used to validate API requests
|
|
// export const insertRolesSchema = createInsertSchema(roles, {
|
|
// name: z.string().min(3, {message: "Role name must be more than 3 letters"}),
|
|
// });
|
|
// Schema for selecting a Expenses - can be used to validate API responses
|
|
export const selectRolesSchema = createSelectSchema(eom);
|