58 lines
2.1 KiB
SQL
58 lines
2.1 KiB
SQL
-- Idempotent: safe when objects already exist (partial / db push / re-apply after resolve).
|
|
|
|
DO $$
|
|
BEGIN
|
|
CREATE TYPE "SupplierAutomationKind" AS ENUM ('LOW_STOCK', 'ASK_SUPPLIER');
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN NULL;
|
|
END $$;
|
|
|
|
ALTER TABLE "Store" ADD COLUMN IF NOT EXISTS "lowStockThreshold" INTEGER;
|
|
|
|
CREATE TABLE IF NOT EXISTS "LowStockAlertState" (
|
|
"id" TEXT NOT NULL,
|
|
"storeId" TEXT NOT NULL,
|
|
"shopifyProductId" TEXT NOT NULL,
|
|
"lastSeenTotalQty" INTEGER,
|
|
"lastNotifiedBelowAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "LowStockAlertState_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS "SupplierAutomationLog" (
|
|
"id" TEXT NOT NULL,
|
|
"storeId" TEXT NOT NULL,
|
|
"kind" "SupplierAutomationKind" NOT NULL,
|
|
"shopifyProductId" TEXT,
|
|
"supplierUserId" TEXT,
|
|
"ticketKey" TEXT,
|
|
"messagePreview" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "SupplierAutomationLog_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS "LowStockAlertState_storeId_shopifyProductId_key" ON "LowStockAlertState"("storeId", "shopifyProductId");
|
|
|
|
CREATE INDEX IF NOT EXISTS "LowStockAlertState_storeId_idx" ON "LowStockAlertState"("storeId");
|
|
|
|
CREATE INDEX IF NOT EXISTS "SupplierAutomationLog_storeId_kind_createdAt_idx" ON "SupplierAutomationLog"("storeId", "kind", "createdAt");
|
|
|
|
CREATE INDEX IF NOT EXISTS "SupplierAutomationLog_storeId_shopifyProductId_supplierUserId_createdAt_idx" ON "SupplierAutomationLog"("storeId", "shopifyProductId", "supplierUserId", "createdAt");
|
|
|
|
DO $$
|
|
BEGIN
|
|
ALTER TABLE "LowStockAlertState" ADD CONSTRAINT "LowStockAlertState_storeId_fkey" FOREIGN KEY ("storeId") REFERENCES "Store"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN NULL;
|
|
END $$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
ALTER TABLE "SupplierAutomationLog" ADD CONSTRAINT "SupplierAutomationLog_storeId_fkey" FOREIGN KEY ("storeId") REFERENCES "Store"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN NULL;
|
|
END $$;
|