import { text, pgTable, numeric, index, timestamp, boolean, uuid, uniqueIndex, jsonb, } from "drizzle-orm/pg-core"; import { createInsertSchema, createSelectSchema } from "drizzle-zod"; import { z } from "zod"; export const printerData = pgTable( "printerData", { printer_id: uuid("printer_id").defaultRandom().primaryKey(), humanReadableId: text("humanReadableId"), name: text("name").notNull(), ipAddress: text("ipAddress"), port: numeric("port"), status: text("status"), statusText: text("statusText"), lastTimePrinted: timestamp("lastTimePrinted").notNull().defaultNow(), assigned: boolean("assigned").default(false), remark: text("remark"), printDelay: numeric("printDelay").default("90"), monitorState: boolean("monitorState").default(false), processes: jsonb("processes").default([]), add_Date: timestamp("add_Date").defaultNow(), upd_date: timestamp("upd_date").defaultNow(), }, (table) => [ //uniqueIndex("emailUniqueIndex").on(sql`lower(${table.email})`), uniqueIndex("humanReadableId").on(table.humanReadableId), ] ); // 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(printerData);