From 2558b2e5bb68be7a3f46de09bb509c99423adeb6 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Mon, 1 Jun 2026 16:05:36 -0500 Subject: [PATCH] refactor(db): added timezone check in so it comes over correct based on the backend timezone --- backend/db/schema/alplapurchase.schema.ts | 8 ++++---- backend/db/schema/analytics.schema.ts | 4 +++- backend/db/schema/auditLog.schema.ts | 4 ++-- backend/db/schema/auth.schema.ts | 2 +- backend/db/schema/buildHistory.schema.ts | 2 +- backend/db/schema/dailyAnalytics.schema.ts | 12 ++++++++---- backend/db/schema/datamart.schema.ts | 4 ++-- backend/db/schema/dockdoor.schema.ts | 4 ++-- backend/db/schema/historicalInv.schema.ts | 2 +- backend/db/schema/logs.schema.ts | 2 +- backend/db/schema/opendock_apt.schema.ts | 8 ++++++-- backend/db/schema/opendock_articleSetup.ts | 8 ++++++-- backend/db/schema/opendock_docks.ts | 8 ++++++-- backend/db/schema/printerLogs.schema.ts | 2 +- backend/db/schema/printers.schema.ts | 4 ++-- backend/db/schema/scanUsers.ts | 4 ++-- backend/db/schema/scanlog.schema.ts | 2 +- backend/db/schema/serverData.schema.ts | 2 +- backend/db/schema/settings.schema.ts | 4 ++-- backend/db/schema/stats.schema.ts | 6 +++--- 20 files changed, 55 insertions(+), 37 deletions(-) diff --git a/backend/db/schema/alplapurchase.schema.ts b/backend/db/schema/alplapurchase.schema.ts index 40ca9b8..7e75d33 100644 --- a/backend/db/schema/alplapurchase.schema.ts +++ b/backend/db/schema/alplapurchase.schema.ts @@ -17,15 +17,15 @@ export const alplaPurchaseHistory = pgTable("alpla_purchase_history", { status: integer("status"), statusText: text("status_text"), journalNum: integer("journal_num"), - add_date: timestamp("add_date").defaultNow(), + add_date: timestamp("add_date", { withTimezone: true }).defaultNow(), add_user: text("add_user"), upd_user: text("upd_user"), - upd_date: timestamp("upd_date").defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }).defaultNow(), remark: text("remark"), approvedStatus: text("approved_status").default("new"), position: jsonb("position").default([]), - createdAt: timestamp("created_at").defaultNow(), - updatedAt: timestamp("updated_at").defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(), }); export const alplaPurchaseHistorySchema = diff --git a/backend/db/schema/analytics.schema.ts b/backend/db/schema/analytics.schema.ts index a1e1fe0..e610c58 100644 --- a/backend/db/schema/analytics.schema.ts +++ b/backend/db/schema/analytics.schema.ts @@ -3,7 +3,9 @@ import { integer, pgTable, text, timestamp, uuid } from "drizzle-orm/pg-core"; export const analytics = pgTable("analytics", { id: uuid("id").defaultRandom().primaryKey(), - createdAt: timestamp("created_at").defaultNow().notNull(), + createdAt: timestamp("created_at", { withTimezone: true }) + .defaultNow() + .notNull(), method: text("method").notNull(), routePattern: text("route_pattern").notNull(), diff --git a/backend/db/schema/auditLog.schema.ts b/backend/db/schema/auditLog.schema.ts index fe4494f..0dad80a 100644 --- a/backend/db/schema/auditLog.schema.ts +++ b/backend/db/schema/auditLog.schema.ts @@ -16,13 +16,13 @@ export const jobAuditLog = pgTable( id: uuid("id").defaultRandom().primaryKey(), jobName: text("job_name"), startedAt: timestamp("start_at"), - finishedAt: timestamp("finished_at"), + finishedAt: timestamp("finished_at", { withTimezone: true }), durationMs: integer("duration_ms"), status: text("status"), //success | error errorMessage: text("error_message"), errorStack: text("error_stack"), metadata: jsonb("meta_data"), - createdAt: timestamp("created_at").defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), }, (table) => { return { diff --git a/backend/db/schema/auth.schema.ts b/backend/db/schema/auth.schema.ts index 9210462..f1b1b2f 100644 --- a/backend/db/schema/auth.schema.ts +++ b/backend/db/schema/auth.schema.ts @@ -15,7 +15,7 @@ export const user = pgTable("user", { emailVerified: boolean("email_verified").default(false).notNull(), image: text("image"), createdAt: timestamp("created_at").defaultNow().notNull(), - updatedAt: timestamp("updated_at") + updatedAt: timestamp("updated_at", { withTimezone: true }) .defaultNow() .$onUpdate(() => /* @__PURE__ */ new Date()) .notNull(), diff --git a/backend/db/schema/buildHistory.schema.ts b/backend/db/schema/buildHistory.schema.ts index db75755..845bafd 100644 --- a/backend/db/schema/buildHistory.schema.ts +++ b/backend/db/schema/buildHistory.schema.ts @@ -6,5 +6,5 @@ export const deploymentHistory = pgTable("deployment_history", { buildNumber: integer("build_number").notNull(), status: text("status").notNull(), // started, success, failed message: text("message"), - createdAt: timestamp("created_at").defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), }); diff --git a/backend/db/schema/dailyAnalytics.schema.ts b/backend/db/schema/dailyAnalytics.schema.ts index 49b97c2..beb93a0 100644 --- a/backend/db/schema/dailyAnalytics.schema.ts +++ b/backend/db/schema/dailyAnalytics.schema.ts @@ -28,11 +28,15 @@ export const analyticsDaily = pgTable( avgDurationMs: integer("avg_duration_ms").notNull(), maxDurationMs: integer("max_duration_ms").notNull(), - firstHitAt: timestamp("first_hit_at").notNull(), - lastHitAt: timestamp("last_hit_at").notNull(), + firstHitAt: timestamp("first_hit_at", { withTimezone: true }).notNull(), + lastHitAt: timestamp("last_hit_at", { withTimezone: true }).notNull(), - createdAt: timestamp("created_at").defaultNow().notNull(), - updatedAt: timestamp("updated_at").defaultNow().notNull(), + createdAt: timestamp("created_at", { withTimezone: true }) + .defaultNow() + .notNull(), + updatedAt: timestamp("updated_at", { withTimezone: true }) + .defaultNow() + .notNull(), }, (table) => [ unique("analytics_daily_business_route_unique").on( diff --git a/backend/db/schema/datamart.schema.ts b/backend/db/schema/datamart.schema.ts index 0ae6ad5..953dae0 100644 --- a/backend/db/schema/datamart.schema.ts +++ b/backend/db/schema/datamart.schema.ts @@ -18,9 +18,9 @@ export const datamart = pgTable("datamart", { active: boolean("active").default(true), options: text("options").default(""), public: boolean("public_access").default(false), - add_date: timestamp("add_date").defaultNow(), + add_date: timestamp("add_date", { withTimezone: true }).defaultNow(), add_user: text("add_user").default("lst-system"), - upd_date: timestamp("upd_date").defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }).defaultNow(), upd_user: text("upd_user").default("lst-system"), }); diff --git a/backend/db/schema/dockdoor.schema.ts b/backend/db/schema/dockdoor.schema.ts index a5c2b48..9b3a04b 100644 --- a/backend/db/schema/dockdoor.schema.ts +++ b/backend/db/schema/dockdoor.schema.ts @@ -9,9 +9,9 @@ export const dockDoorScanners = pgTable("dock_door_scanners", { dockId: text("dock_id"), active: boolean("active").default(true), currentLoadingOrder: text("current_loading_order").default(""), - add_date: timestamp("add_date").defaultNow(), + add_date: timestamp("add_date", { withTimezone: true }).defaultNow(), add_user: text("add_user").default("lst-system"), - upd_date: timestamp("upd_date").defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }).defaultNow(), upd_user: text("upd_user").default("lst-system"), }); diff --git a/backend/db/schema/historicalInv.schema.ts b/backend/db/schema/historicalInv.schema.ts index 8a761d0..4fe341f 100644 --- a/backend/db/schema/historicalInv.schema.ts +++ b/backend/db/schema/historicalInv.schema.ts @@ -20,7 +20,7 @@ export const invHistoricalData = pgTable("inv_historical_data", { whseId: text("whse_id").default(""), whseName: text("whse_name").default("missing whseName"), upd_user: text("upd_user").default("lst-system"), - upd_date: timestamp("upd_date").defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }).defaultNow(), }); export const invHistoricalDataSchema = createSelectSchema(invHistoricalData); diff --git a/backend/db/schema/logs.schema.ts b/backend/db/schema/logs.schema.ts index beaefa6..849a9df 100644 --- a/backend/db/schema/logs.schema.ts +++ b/backend/db/schema/logs.schema.ts @@ -18,7 +18,7 @@ export const logs = pgTable("logs", { stack: jsonb("stack").default([]), checked: boolean("checked").default(false), hostname: text("hostname"), - createdAt: timestamp("created_at").defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), }); export const logSchema = createSelectSchema(logs); diff --git a/backend/db/schema/opendock_apt.schema.ts b/backend/db/schema/opendock_apt.schema.ts index 0adb942..e6652dd 100644 --- a/backend/db/schema/opendock_apt.schema.ts +++ b/backend/db/schema/opendock_apt.schema.ts @@ -17,8 +17,12 @@ export const opendockApt = pgTable( release: integer("release").notNull().unique("opendock_apt_release_unique"), openDockAptId: text("open_dock_apt_id").notNull(), appointment: jsonb("appointment").notNull().default([]), - upd_date: timestamp("upd_date").notNull().defaultNow(), - createdAt: timestamp("created_at").notNull().defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }) + .notNull() + .defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }) + .notNull() + .defaultNow(), }, (table) => ({ openDockAptIdIdx: index("opendock_apt_opendock_id_idx").on( diff --git a/backend/db/schema/opendock_articleSetup.ts b/backend/db/schema/opendock_articleSetup.ts index 3cea523..e84ef69 100644 --- a/backend/db/schema/opendock_articleSetup.ts +++ b/backend/db/schema/opendock_articleSetup.ts @@ -22,9 +22,13 @@ export const opendockArticleSetup = pgTable( customerDescription: text("customer_description").notNull(), loadType: loadTypeEnum("load_type").notNull().default("drop"), dock: text("dock").notNull(), - upd_date: timestamp("upd_date").notNull().defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }) + .notNull() + .defaultNow(), upd_user: text("upd_user").notNull().default("lst-system"), - createdAt: timestamp("created_at").notNull().defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }) + .notNull() + .defaultNow(), add_user: text("add_user").notNull().default("lst-system"), }, (table) => ({ diff --git a/backend/db/schema/opendock_docks.ts b/backend/db/schema/opendock_docks.ts index c48d87b..7f61d07 100644 --- a/backend/db/schema/opendock_docks.ts +++ b/backend/db/schema/opendock_docks.ts @@ -6,9 +6,13 @@ export const opendockDockSetup = pgTable("opendock_dock_setup", { id: uuid("id").defaultRandom().primaryKey(), name: text("name").notNull(), dockID: text("dock_id").notNull(), - upd_date: timestamp("upd_date").notNull().defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }) + .notNull() + .defaultNow(), upd_user: text("upd_user").notNull().default("lst-system"), - createdAt: timestamp("created_at").notNull().defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }) + .notNull() + .defaultNow(), add_user: text("add_user").notNull().default("lst-system"), }); diff --git a/backend/db/schema/printerLogs.schema.ts b/backend/db/schema/printerLogs.schema.ts index 577d7fc..f1be461 100644 --- a/backend/db/schema/printerLogs.schema.ts +++ b/backend/db/schema/printerLogs.schema.ts @@ -7,5 +7,5 @@ export const printerLog = pgTable("printer_log", { printerSN: text("printer_sn"), condition: text("condition").notNull(), message: text("message"), - createdAt: timestamp("created_at").defaultNow(), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), }); diff --git a/backend/db/schema/printers.schema.ts b/backend/db/schema/printers.schema.ts index 406e498..dcb98f2 100644 --- a/backend/db/schema/printers.schema.ts +++ b/backend/db/schema/printers.schema.ts @@ -28,8 +28,8 @@ export const printerData = pgTable( printDelay: integer("printDelay").default(90), processes: jsonb("processes").default([]), printDelayOverride: boolean("print_delay_override").default(false), // this will be more for if we have the lot time active but want to over ride this single line for some reason - add_Date: timestamp("add_Date").defaultNow(), - upd_date: timestamp("upd_date").defaultNow(), + add_Date: timestamp("add_Date", { withTimezone: true }).defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }).defaultNow(), }, (table) => [ //uniqueIndex("emailUniqueIndex").on(sql`lower(${table.email})`), diff --git a/backend/db/schema/scanUsers.ts b/backend/db/schema/scanUsers.ts index 74589ac..cbcd765 100644 --- a/backend/db/schema/scanUsers.ts +++ b/backend/db/schema/scanUsers.ts @@ -30,8 +30,8 @@ export const scanUser = pgTable( role: mobileRoleEnum("role").notNull().default("user"), active: boolean("active").default(true), lastScan: timestamp("last_scan").defaultNow(), - add_Date: timestamp("add_Date").defaultNow(), - upd_date: timestamp("upd_date").defaultNow(), + add_Date: timestamp("add_Date", { withTimezone: true }).defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }).defaultNow(), }, (table) => ({ userNotificationUnique: unique("scan_user_unique").on( diff --git a/backend/db/schema/scanlog.schema.ts b/backend/db/schema/scanlog.schema.ts index 18f7c73..337545b 100644 --- a/backend/db/schema/scanlog.schema.ts +++ b/backend/db/schema/scanlog.schema.ts @@ -13,7 +13,7 @@ export const scanLog = pgTable("scan_log", { status: text("status"), scannerVersion: text("scanner_version").default("0"), lines: jsonb("lines").default([]), - add_Date: timestamp("add_date").defaultNow(), + add_Date: timestamp("add_date", { withTimezone: true }).defaultNow(), }); export const scanLogSchema = createSelectSchema(scanLog); diff --git a/backend/db/schema/serverData.schema.ts b/backend/db/schema/serverData.schema.ts index 7fb8d32..6fe67dd 100644 --- a/backend/db/schema/serverData.schema.ts +++ b/backend/db/schema/serverData.schema.ts @@ -22,7 +22,7 @@ export const serverData = pgTable( contactPhone: text("contact_phone"), active: boolean("active").default(true), serverLoc: text("server_loc"), - lastUpdated: timestamp("last_updated").defaultNow(), + lastUpdated: timestamp("last_updated", { withTimezone: true }).defaultNow(), buildNumber: integer("build_number"), isUpgrading: boolean("is_upgrading").default(false), }, diff --git a/backend/db/schema/settings.schema.ts b/backend/db/schema/settings.schema.ts index 92b39ef..e7926b2 100644 --- a/backend/db/schema/settings.schema.ts +++ b/backend/db/schema/settings.schema.ts @@ -32,9 +32,9 @@ export const settings = pgTable( settingType: settingType(), seedVersion: integer("seed_version").default(1), // this is intended for if we want to update the settings. add_User: text("add_User").default("LST_System").notNull(), - add_Date: timestamp("add_Date").defaultNow(), + add_Date: timestamp("add_Date", { withTimezone: true }).defaultNow(), upd_user: text("upd_User").default("LST_System").notNull(), - upd_date: timestamp("upd_date").defaultNow(), + upd_date: timestamp("upd_date", { withTimezone: true }).defaultNow(), }, (table) => [ // uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`), diff --git a/backend/db/schema/stats.schema.ts b/backend/db/schema/stats.schema.ts index e4572db..d729494 100644 --- a/backend/db/schema/stats.schema.ts +++ b/backend/db/schema/stats.schema.ts @@ -12,11 +12,11 @@ import type z from "zod"; export const appStats = pgTable("app_stats", { id: text("id").primaryKey().default("primary"), currentBuild: integer("current_build").notNull().default(1), - lastBuildAt: timestamp("last_build_at"), - lastDeployAt: timestamp("last_deploy_at"), + lastBuildAt: timestamp("last_build_at", { withTimezone: true }), + lastDeployAt: timestamp("last_deploy_at", { withTimezone: true }), building: boolean("building").notNull().default(false), updating: boolean("updating").notNull().default(false), - lastUpdated: timestamp("last_updated").defaultNow(), + lastUpdated: timestamp("last_updated", { withTimezone: true }).defaultNow(), meta: jsonb("meta").$type>().default({}), });