27 lines
1.4 KiB
SQL
27 lines
1.4 KiB
SQL
CREATE TABLE "Project" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"projectNumber" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL,
|
|
"priority" TEXT NOT NULL,
|
|
"customerId" TEXT NOT NULL,
|
|
"salesQuoteId" TEXT,
|
|
"salesOrderId" TEXT,
|
|
"shipmentId" TEXT,
|
|
"ownerId" TEXT,
|
|
"dueDate" DATETIME,
|
|
"notes" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "Project_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "Customer" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
CONSTRAINT "Project_salesQuoteId_fkey" FOREIGN KEY ("salesQuoteId") REFERENCES "SalesQuote" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
CONSTRAINT "Project_salesOrderId_fkey" FOREIGN KEY ("salesOrderId") REFERENCES "SalesOrder" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
CONSTRAINT "Project_shipmentId_fkey" FOREIGN KEY ("shipmentId") REFERENCES "Shipment" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
CONSTRAINT "Project_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "Project_projectNumber_key" ON "Project"("projectNumber");
|
|
CREATE INDEX "Project_customerId_createdAt_idx" ON "Project"("customerId", "createdAt");
|
|
CREATE INDEX "Project_ownerId_dueDate_idx" ON "Project"("ownerId", "dueDate");
|
|
CREATE INDEX "Project_status_priority_idx" ON "Project"("status", "priority");
|