diff --git a/database/migrations/0030_conscious_cable.sql b/database/migrations/0030_conscious_cable.sql
new file mode 100644
index 0000000..b67a16e
--- /dev/null
+++ b/database/migrations/0030_conscious_cable.sql
@@ -0,0 +1,4 @@
+CREATE TABLE "prodlabels" (
+ "label_id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
+ "runningNr" integer NOT NULL
+);
diff --git a/database/migrations/0031_loud_alex_power.sql b/database/migrations/0031_loud_alex_power.sql
new file mode 100644
index 0000000..c8608f9
--- /dev/null
+++ b/database/migrations/0031_loud_alex_power.sql
@@ -0,0 +1,7 @@
+ALTER TABLE "prodlabels" ADD COLUMN "printerID" integer;--> statement-breakpoint
+ALTER TABLE "prodlabels" ADD COLUMN "printerName" text;--> statement-breakpoint
+ALTER TABLE "prodlabels" ADD COLUMN "line" integer;--> statement-breakpoint
+ALTER TABLE "prodlabels" ADD COLUMN "status" text;--> statement-breakpoint
+ALTER TABLE "prodlabels" ADD COLUMN "add_date" timestamp;--> statement-breakpoint
+ALTER TABLE "prodlabels" ADD COLUMN "upd_date" timestamp;--> statement-breakpoint
+CREATE UNIQUE INDEX "runningNr" ON "prodlabels" USING btree ("runningNr");
\ No newline at end of file
diff --git a/database/migrations/meta/0030_snapshot.json b/database/migrations/meta/0030_snapshot.json
new file mode 100644
index 0000000..2bc6527
--- /dev/null
+++ b/database/migrations/meta/0030_snapshot.json
@@ -0,0 +1,1194 @@
+{
+ "id": "a6365fe2-3f43-44c1-983a-8b10eda9a6f8",
+ "prevId": "501ed8e3-f779-491e-a1c4-651ef45b2db4",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.logs": {
+ "name": "logs",
+ "schema": "",
+ "columns": {
+ "log_id": {
+ "name": "log_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "level": {
+ "name": "level",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'LST_Serivce'"
+ },
+ "service": {
+ "name": "service",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'system'"
+ },
+ "message": {
+ "name": "message",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "checked": {
+ "name": "checked",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "checkedAt": {
+ "name": "checkedAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.modules": {
+ "name": "modules",
+ "schema": "",
+ "columns": {
+ "module_id": {
+ "name": "module_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "roles": {
+ "name": "roles",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'[\"view\",\"systemAdmin\"]'::jsonb"
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "module_name": {
+ "name": "module_name",
+ "columns": [
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ocmeData": {
+ "name": "ocmeData",
+ "schema": "",
+ "columns": {
+ "ocme_id": {
+ "name": "ocme_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "sscc": {
+ "name": "sscc",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "runningNr": {
+ "name": "runningNr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "completed": {
+ "name": "completed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "lineNum": {
+ "name": "lineNum",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pickedUp": {
+ "name": "pickedUp",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "areaFrom": {
+ "name": "areaFrom",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.manualPrinting": {
+ "name": "manualPrinting",
+ "schema": "",
+ "columns": {
+ "print_id": {
+ "name": "print_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "line": {
+ "name": "line",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "printReason": {
+ "name": "printReason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "initials": {
+ "name": "initials",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "additionalComments": {
+ "name": "additionalComments",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_date": {
+ "name": "add_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "add_user": {
+ "name": "add_user",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.printers": {
+ "name": "printers",
+ "schema": "",
+ "columns": {
+ "printer_id": {
+ "name": "printer_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "humanReadableId": {
+ "name": "humanReadableId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "port": {
+ "name": "port",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "statusText": {
+ "name": "statusText",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lastTimePrinted": {
+ "name": "lastTimePrinted",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "assigned": {
+ "name": "assigned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "remark": {
+ "name": "remark",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "monitorState": {
+ "name": "monitorState",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "humanReadableId": {
+ "name": "humanReadableId",
+ "columns": [
+ {
+ "expression": "humanReadableId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.prodlabels": {
+ "name": "prodlabels",
+ "schema": "",
+ "columns": {
+ "label_id": {
+ "name": "label_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "runningNr": {
+ "name": "runningNr",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rfidReaders": {
+ "name": "rfidReaders",
+ "schema": "",
+ "columns": {
+ "rfidReader_id": {
+ "name": "rfidReader_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "reader": {
+ "name": "reader",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "readerIP": {
+ "name": "readerIP",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lastHeartBeat": {
+ "name": "lastHeartBeat",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "lastTrigger": {
+ "name": "lastTrigger",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "lastTiggerGood": {
+ "name": "lastTiggerGood",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ }
+ },
+ "indexes": {
+ "reader": {
+ "name": "reader",
+ "columns": [
+ {
+ "expression": "reader",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rfidTags": {
+ "name": "rfidTags",
+ "schema": "",
+ "columns": {
+ "rfidTag_id": {
+ "name": "rfidTag_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "tagHex": {
+ "name": "tagHex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "tag": {
+ "name": "tag",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "timeStamp": {
+ "name": "timeStamp",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "counts": {
+ "name": "counts",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[]'::jsonb"
+ },
+ "lastareaIn": {
+ "name": "lastareaIn",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "runningNumber": {
+ "name": "runningNumber",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "antenna": {
+ "name": "antenna",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "tagStrength": {
+ "name": "tagStrength",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "tagHex": {
+ "name": "tagHex",
+ "columns": [
+ {
+ "expression": "tagHex",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.roles": {
+ "name": "roles",
+ "schema": "",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "role_name": {
+ "name": "role_name",
+ "columns": [
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.serverData": {
+ "name": "serverData",
+ "schema": "",
+ "columns": {
+ "server_id": {
+ "name": "server_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "sName": {
+ "name": "sName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverDNS": {
+ "name": "serverDNS",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "plantToken": {
+ "name": "plantToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "idAddress": {
+ "name": "idAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "greatPlainsPlantCode": {
+ "name": "greatPlainsPlantCode",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "streetAddress": {
+ "name": "streetAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cityState": {
+ "name": "cityState",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "zipcode": {
+ "name": "zipcode",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "contactEmail": {
+ "name": "contactEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "contactPhone": {
+ "name": "contactPhone",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customerTiAcc": {
+ "name": "customerTiAcc",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lstServerPort": {
+ "name": "lstServerPort",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "serverLoc": {
+ "name": "serverLoc",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "oldVersion": {
+ "name": "oldVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lastUpdated": {
+ "name": "lastUpdated",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "shippingHours": {
+ "name": "shippingHours",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[{\"early\": \"06:30\", \"late\": \"23:00\"}]'"
+ },
+ "tiPostTime": {
+ "name": "tiPostTime",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[{\"from\": \"24\", \"to\": \"24\"}]'"
+ },
+ "otherSettings": {
+ "name": "otherSettings",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[{\"specialInstructions\":\"something for ti\",\"active\":false}]'::jsonb"
+ },
+ "isUpgrading": {
+ "name": "isUpgrading",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {
+ "plantToken": {
+ "name": "plantToken",
+ "columns": [
+ {
+ "expression": "plantToken",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.settings": {
+ "name": "settings",
+ "schema": "",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "moduleName": {
+ "name": "moduleName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "roles": {
+ "name": "roles",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'[\"systemAdmin\"]'::jsonb"
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "name": {
+ "name": "name",
+ "columns": [
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.userRoles": {
+ "name": "userRoles",
+ "schema": "",
+ "columns": {
+ "user_id": {
+ "name": "user_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role_id": {
+ "name": "role_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "module_id": {
+ "name": "module_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "user_module_unique": {
+ "name": "user_module_unique",
+ "columns": [
+ {
+ "expression": "user_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "module_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "userRoles_user_id_users_user_id_fk": {
+ "name": "userRoles_user_id_users_user_id_fk",
+ "tableFrom": "userRoles",
+ "tableTo": "users",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "user_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "userRoles_role_id_roles_role_id_fk": {
+ "name": "userRoles_role_id_roles_role_id_fk",
+ "tableFrom": "userRoles",
+ "tableTo": "roles",
+ "columnsFrom": [
+ "role_id"
+ ],
+ "columnsTo": [
+ "role_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "userRoles_module_id_modules_module_id_fk": {
+ "name": "userRoles_module_id_modules_module_id_fk",
+ "tableFrom": "userRoles",
+ "tableTo": "modules",
+ "columnsFrom": [
+ "module_id"
+ ],
+ "columnsTo": [
+ "module_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.users": {
+ "name": "users",
+ "schema": "",
+ "columns": {
+ "user_id": {
+ "name": "user_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "passwordToken": {
+ "name": "passwordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "passwordTokenExpires": {
+ "name": "passwordTokenExpires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "pingcode": {
+ "name": "pingcode",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "lastLogin": {
+ "name": "lastLogin",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "username": {
+ "name": "username",
+ "columns": [
+ {
+ "expression": "username",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {},
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/database/migrations/meta/0031_snapshot.json b/database/migrations/meta/0031_snapshot.json
new file mode 100644
index 0000000..61cd7b8
--- /dev/null
+++ b/database/migrations/meta/0031_snapshot.json
@@ -0,0 +1,1246 @@
+{
+ "id": "8799d968-5cb4-41b5-9b57-c34942048091",
+ "prevId": "a6365fe2-3f43-44c1-983a-8b10eda9a6f8",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.logs": {
+ "name": "logs",
+ "schema": "",
+ "columns": {
+ "log_id": {
+ "name": "log_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "level": {
+ "name": "level",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'LST_Serivce'"
+ },
+ "service": {
+ "name": "service",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'system'"
+ },
+ "message": {
+ "name": "message",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "checked": {
+ "name": "checked",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "checkedAt": {
+ "name": "checkedAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.modules": {
+ "name": "modules",
+ "schema": "",
+ "columns": {
+ "module_id": {
+ "name": "module_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "roles": {
+ "name": "roles",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'[\"view\",\"systemAdmin\"]'::jsonb"
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "module_name": {
+ "name": "module_name",
+ "columns": [
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ocmeData": {
+ "name": "ocmeData",
+ "schema": "",
+ "columns": {
+ "ocme_id": {
+ "name": "ocme_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "sscc": {
+ "name": "sscc",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "runningNr": {
+ "name": "runningNr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "completed": {
+ "name": "completed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "lineNum": {
+ "name": "lineNum",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pickedUp": {
+ "name": "pickedUp",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "areaFrom": {
+ "name": "areaFrom",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.manualPrinting": {
+ "name": "manualPrinting",
+ "schema": "",
+ "columns": {
+ "print_id": {
+ "name": "print_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "line": {
+ "name": "line",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "printReason": {
+ "name": "printReason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "initials": {
+ "name": "initials",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "additionalComments": {
+ "name": "additionalComments",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_date": {
+ "name": "add_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "add_user": {
+ "name": "add_user",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.printers": {
+ "name": "printers",
+ "schema": "",
+ "columns": {
+ "printer_id": {
+ "name": "printer_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "humanReadableId": {
+ "name": "humanReadableId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "port": {
+ "name": "port",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "statusText": {
+ "name": "statusText",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lastTimePrinted": {
+ "name": "lastTimePrinted",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "assigned": {
+ "name": "assigned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "remark": {
+ "name": "remark",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "monitorState": {
+ "name": "monitorState",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "humanReadableId": {
+ "name": "humanReadableId",
+ "columns": [
+ {
+ "expression": "humanReadableId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.prodlabels": {
+ "name": "prodlabels",
+ "schema": "",
+ "columns": {
+ "label_id": {
+ "name": "label_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "printerID": {
+ "name": "printerID",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "printerName": {
+ "name": "printerName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "line": {
+ "name": "line",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "runningNr": {
+ "name": "runningNr",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "add_date": {
+ "name": "add_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {
+ "runningNr": {
+ "name": "runningNr",
+ "columns": [
+ {
+ "expression": "runningNr",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rfidReaders": {
+ "name": "rfidReaders",
+ "schema": "",
+ "columns": {
+ "rfidReader_id": {
+ "name": "rfidReader_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "reader": {
+ "name": "reader",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "readerIP": {
+ "name": "readerIP",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lastHeartBeat": {
+ "name": "lastHeartBeat",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "lastTrigger": {
+ "name": "lastTrigger",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "lastTiggerGood": {
+ "name": "lastTiggerGood",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ }
+ },
+ "indexes": {
+ "reader": {
+ "name": "reader",
+ "columns": [
+ {
+ "expression": "reader",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rfidTags": {
+ "name": "rfidTags",
+ "schema": "",
+ "columns": {
+ "rfidTag_id": {
+ "name": "rfidTag_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "tagHex": {
+ "name": "tagHex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "tag": {
+ "name": "tag",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "timeStamp": {
+ "name": "timeStamp",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "counts": {
+ "name": "counts",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[]'::jsonb"
+ },
+ "lastareaIn": {
+ "name": "lastareaIn",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "runningNumber": {
+ "name": "runningNumber",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "antenna": {
+ "name": "antenna",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "tagStrength": {
+ "name": "tagStrength",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "tagHex": {
+ "name": "tagHex",
+ "columns": [
+ {
+ "expression": "tagHex",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.roles": {
+ "name": "roles",
+ "schema": "",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "role_name": {
+ "name": "role_name",
+ "columns": [
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.serverData": {
+ "name": "serverData",
+ "schema": "",
+ "columns": {
+ "server_id": {
+ "name": "server_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "sName": {
+ "name": "sName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverDNS": {
+ "name": "serverDNS",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "plantToken": {
+ "name": "plantToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "idAddress": {
+ "name": "idAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "greatPlainsPlantCode": {
+ "name": "greatPlainsPlantCode",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "streetAddress": {
+ "name": "streetAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cityState": {
+ "name": "cityState",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "zipcode": {
+ "name": "zipcode",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "contactEmail": {
+ "name": "contactEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "contactPhone": {
+ "name": "contactPhone",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customerTiAcc": {
+ "name": "customerTiAcc",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lstServerPort": {
+ "name": "lstServerPort",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "serverLoc": {
+ "name": "serverLoc",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "oldVersion": {
+ "name": "oldVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lastUpdated": {
+ "name": "lastUpdated",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "shippingHours": {
+ "name": "shippingHours",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[{\"early\": \"06:30\", \"late\": \"23:00\"}]'"
+ },
+ "tiPostTime": {
+ "name": "tiPostTime",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[{\"from\": \"24\", \"to\": \"24\"}]'"
+ },
+ "otherSettings": {
+ "name": "otherSettings",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'[{\"specialInstructions\":\"something for ti\",\"active\":false}]'::jsonb"
+ },
+ "isUpgrading": {
+ "name": "isUpgrading",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {
+ "plantToken": {
+ "name": "plantToken",
+ "columns": [
+ {
+ "expression": "plantToken",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.settings": {
+ "name": "settings",
+ "schema": "",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "moduleName": {
+ "name": "moduleName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "roles": {
+ "name": "roles",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'[\"systemAdmin\"]'::jsonb"
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "name": {
+ "name": "name",
+ "columns": [
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.userRoles": {
+ "name": "userRoles",
+ "schema": "",
+ "columns": {
+ "user_id": {
+ "name": "user_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role_id": {
+ "name": "role_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "module_id": {
+ "name": "module_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "user_module_unique": {
+ "name": "user_module_unique",
+ "columns": [
+ {
+ "expression": "user_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "module_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "userRoles_user_id_users_user_id_fk": {
+ "name": "userRoles_user_id_users_user_id_fk",
+ "tableFrom": "userRoles",
+ "tableTo": "users",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "user_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "userRoles_role_id_roles_role_id_fk": {
+ "name": "userRoles_role_id_roles_role_id_fk",
+ "tableFrom": "userRoles",
+ "tableTo": "roles",
+ "columnsFrom": [
+ "role_id"
+ ],
+ "columnsTo": [
+ "role_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "userRoles_module_id_modules_module_id_fk": {
+ "name": "userRoles_module_id_modules_module_id_fk",
+ "tableFrom": "userRoles",
+ "tableTo": "modules",
+ "columnsFrom": [
+ "module_id"
+ ],
+ "columnsTo": [
+ "module_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.users": {
+ "name": "users",
+ "schema": "",
+ "columns": {
+ "user_id": {
+ "name": "user_id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "passwordToken": {
+ "name": "passwordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "passwordTokenExpires": {
+ "name": "passwordTokenExpires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active": {
+ "name": "active",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "pingcode": {
+ "name": "pingcode",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "lastLogin": {
+ "name": "lastLogin",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "add_User": {
+ "name": "add_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "add_Date": {
+ "name": "add_Date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "upd_User": {
+ "name": "upd_User",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'LST_System'"
+ },
+ "upd_date": {
+ "name": "upd_date",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "username": {
+ "name": "username",
+ "columns": [
+ {
+ "expression": "username",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {},
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/database/migrations/meta/_journal.json b/database/migrations/meta/_journal.json
index c34b106..aadabd7 100644
--- a/database/migrations/meta/_journal.json
+++ b/database/migrations/meta/_journal.json
@@ -211,6 +211,20 @@
"when": 1742917978318,
"tag": "0029_giant_blue_blade",
"breakpoints": true
+ },
+ {
+ "idx": 30,
+ "version": "7",
+ "when": 1742938986653,
+ "tag": "0030_conscious_cable",
+ "breakpoints": true
+ },
+ {
+ "idx": 31,
+ "version": "7",
+ "when": 1742939306614,
+ "tag": "0031_loud_alex_power",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/database/schema/prodLabels.ts b/database/schema/prodLabels.ts
new file mode 100644
index 0000000..2b97dd7
--- /dev/null
+++ b/database/schema/prodLabels.ts
@@ -0,0 +1,29 @@
+import {
+ integer,
+ pgTable,
+ uuid,
+ uniqueIndex,
+ text,
+ timestamp,
+} from "drizzle-orm/pg-core";
+import { createSelectSchema } from "drizzle-zod";
+
+export const prodlabels = pgTable(
+ "prodlabels",
+ {
+ label_id: uuid("label_id").defaultRandom().primaryKey(),
+ printerID: integer("printerID"),
+ printerName: text("printerName"),
+ line: integer("line"),
+ runningNr: integer("runningNr").notNull(),
+ status: text("status"),
+ add_date: timestamp("add_date"),
+ upd_date: timestamp("upd_date"),
+ },
+ (table) => [
+ //uniqueIndex("emailUniqueIndex").on(sql`lower(${table.email})`),
+ uniqueIndex("runningNr").on(table.runningNr),
+ ]
+);
+
+export const prodlabelsSchema = createSelectSchema(prodlabels);
diff --git a/frontend/src/components/production/ocp/LabelLog.tsx b/frontend/src/components/production/ocp/LabelLog.tsx
index d7e563f..a3096dc 100644
--- a/frontend/src/components/production/ocp/LabelLog.tsx
+++ b/frontend/src/components/production/ocp/LabelLog.tsx
@@ -1,23 +1,30 @@
-import {LstCard} from "@/components/extendedUI/LstCard";
+import { LstCard } from "@/components/extendedUI/LstCard";
-import {Skeleton} from "@/components/ui/skeleton";
-import {Table, TableBody, TableCell, TableHead, TableHeader, TableRow} from "@/components/ui/table";
+import { Skeleton } from "@/components/ui/skeleton";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "@/components/ui/table";
// import {useSessionStore} from "@/lib/store/sessionStore";
// import {useSettingStore} from "@/lib/store/useSettings";
-import {useQuery} from "@tanstack/react-query";
-import {getlabels} from "@/utils/querys/production/labels";
-import {format} from "date-fns";
+import { useQuery } from "@tanstack/react-query";
+import { getlabels } from "@/utils/querys/production/labels";
+import { format } from "date-fns";
const labelLogs = [
- {key: "line", label: "Line"},
- {key: "printerName", label: "Printer"},
- {key: "runningNr", label: "Running #"},
- {key: "upd_date", label: "Label date"},
- {key: "status", label: "Label Status"},
+ { key: "line", label: "Line" },
+ { key: "printerName", label: "Printer" },
+ { key: "runningNr", label: "Running #" },
+ { key: "upd_date", label: "Label date" },
+ { key: "status", label: "Label Status" },
//{key: "reprint", label: "Reprint"}, // removing the reprint button for now until repritning is working as intended
];
export default function LabelLog() {
- const {data, isError, isLoading} = useQuery(getlabels("4"));
+ const { data, isError, isLoading } = useQuery(getlabels("4"));
//const {user} = useSessionStore();
//const {settings} = useSettingStore();
//const server = settings.filter((n) => n.name === "server")[0]?.value || "";
@@ -40,26 +47,26 @@ export default function LabelLog() {
{Array(7)
- .fill(0)
- .map((_, i) => (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ))}
+ .fill(0)
+ .map((_, i) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ))}
@@ -82,39 +89,47 @@ export default function LabelLog() {
<>
{Array(7)
- .fill(0)
- .map((_, i) => (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ))}
+ .fill(0)
+ .map((_, i) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ))}
>
) : (
{data?.map((label: any) => (
- {label.line}
- {label.printerName}
- {label.runningNr}
+
+ {label.line}
+
+
+ {label.printerName}
+
+
+ {label.runningNr}
+
{format(label.upd_date, "M/d/yyyy hh:mm")}
- {label.status}
+
+ {label.status}
+
))}
diff --git a/frontend/src/utils/querys/production/labels.tsx b/frontend/src/utils/querys/production/labels.tsx
index ab658ee..3ece375 100644
--- a/frontend/src/utils/querys/production/labels.tsx
+++ b/frontend/src/utils/querys/production/labels.tsx
@@ -1,4 +1,4 @@
-import {queryOptions} from "@tanstack/react-query";
+import { queryOptions } from "@tanstack/react-query";
import axios from "axios";
export function getlabels(hours: string) {
@@ -13,7 +13,7 @@ export function getlabels(hours: string) {
}
const fetchSettings = async (hours: string) => {
- const {data} = await axios.get(`/api/v1/ocp/labels?hours=${hours}`);
+ const { data } = await axios.get(`/api/ocp/getlabels?hours=${hours}`);
// if we are not localhost ignore the devDir setting.
//const url: string = window.location.host.split(":")[0];
return data.data ?? [];
diff --git a/server/services/ocp/controller/labeling/getLabels.ts b/server/services/ocp/controller/labeling/getLabels.ts
new file mode 100644
index 0000000..fe0f7eb
--- /dev/null
+++ b/server/services/ocp/controller/labeling/getLabels.ts
@@ -0,0 +1,32 @@
+import { desc, lte, sql } from "drizzle-orm";
+import { db } from "../../../../../database/dbclient.js";
+import { prodlabels } from "../../../../../database/schema/prodLabels.js";
+import { tryCatch } from "../../../../globalUtils/tryCatch.js";
+export const getLabels = async (hours: string) => {
+ const { data: labelInfo, error: labelError } = await tryCatch(
+ db
+ .select()
+ .from(prodlabels)
+ .where(
+ lte(
+ prodlabels.upd_date,
+ sql.raw(`NOW() - INTERVAL '${hours} hours'`)
+ )
+ )
+ .orderBy(desc(prodlabels.upd_date))
+ );
+
+ if (labelError) {
+ return {
+ success: false,
+ message: "There was an error getting the labels",
+ data: labelError,
+ };
+ }
+
+ return {
+ success: true,
+ message: "Current labels order by upd_Date.",
+ data: labelInfo,
+ };
+};
diff --git a/server/services/ocp/routes/labeling/getLabels.ts b/server/services/ocp/routes/labeling/getLabels.ts
new file mode 100644
index 0000000..f1950b8
--- /dev/null
+++ b/server/services/ocp/routes/labeling/getLabels.ts
@@ -0,0 +1,37 @@
+// an external way to creating logs
+import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi";
+import { responses } from "../../../../globalUtils/routeDefs/responses.js";
+import { tryCatch } from "../../../../globalUtils/tryCatch.js";
+import { getLabels } from "../../controller/labeling/getLabels.js";
+
+const app = new OpenAPIHono({ strict: false });
+
+app.openapi(
+ createRoute({
+ tags: ["ocp"],
+ summary: "Returns current active lots that are tech released",
+ method: "get",
+ path: "/getlabels",
+ responses: responses(),
+ }),
+ async (c) => {
+ const hours = c.req.query("hours");
+ const { data: labelData, error: labelError } = await tryCatch(
+ getLabels(hours ?? "2")
+ );
+
+ if (labelError) {
+ return c.json({
+ success: false,
+ message: "There was an error getting the printers",
+ });
+ }
+
+ return c.json({
+ success: labelData.success,
+ message: labelData.message,
+ data: labelData.data,
+ });
+ }
+);
+export default app;
diff --git a/tsconfig.json b/tsconfig.json
index ba32c48..ba82d6d 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,20 +1,20 @@
{
- "compilerOptions": {
- "target": "ESNext",
- "module": "NodeNext",
- "moduleResolution": "nodenext",
- "strict": true,
- "verbatimModuleSyntax": true,
- "skipLibCheck": true,
- "types": ["node"],
- "jsx": "react-jsx",
- "jsxImportSource": "hono/jsx",
- "outDir": "./dist",
- "removeComments": true,
- "allowJs": true,
- "esModuleInterop": true,
- "resolveJsonModule": true
- },
- "include": ["server", "scripts/**/*.ts"],
- "exclude": ["node_modules", "frontend", "dist", "testFiles"]
+ "compilerOptions": {
+ "target": "ESNext",
+ "module": "NodeNext",
+ "moduleResolution": "nodenext",
+ "strict": true,
+ "verbatimModuleSyntax": true,
+ "skipLibCheck": true,
+ "types": ["node"],
+ "jsx": "react-jsx",
+ "jsxImportSource": "hono/jsx",
+ "outDir": "./dist",
+ "removeComments": true,
+ "allowJs": true,
+ "esModuleInterop": true,
+ "resolveJsonModule": true
+ },
+ "include": ["server", "scripts/**/*.ts"],
+ "exclude": ["node_modules", "frontend", "dist", "testFiles"]
}