47 lines
2.1 KiB
SQL
47 lines
2.1 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "MaintenanceRequestStatus" AS ENUM ('OPEN', 'CLAIMED', 'RESOLVED');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "MaintenanceRequest" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"workstationId" TEXT NOT NULL,
|
|
"reportedByUserId" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"photoKey" TEXT,
|
|
"status" "MaintenanceRequestStatus" NOT NULL DEFAULT 'OPEN',
|
|
"clientRequestId" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"claimedByUserId" TEXT,
|
|
"claimedAt" TIMESTAMP(3),
|
|
"resolvedByUserId" TEXT,
|
|
"resolvedAt" TIMESTAMP(3),
|
|
"resolutionNote" TEXT,
|
|
|
|
CONSTRAINT "MaintenanceRequest_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MaintenanceRequest_tenantId_status_createdAt_idx" ON "MaintenanceRequest"("tenantId", "status", "createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MaintenanceRequest_tenantId_reportedByUserId_idx" ON "MaintenanceRequest"("tenantId", "reportedByUserId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "MaintenanceRequest_tenantId_clientRequestId_key" ON "MaintenanceRequest"("tenantId", "clientRequestId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MaintenanceRequest" ADD CONSTRAINT "MaintenanceRequest_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MaintenanceRequest" ADD CONSTRAINT "MaintenanceRequest_workstationId_fkey" FOREIGN KEY ("workstationId") REFERENCES "Workstation"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MaintenanceRequest" ADD CONSTRAINT "MaintenanceRequest_reportedByUserId_fkey" FOREIGN KEY ("reportedByUserId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MaintenanceRequest" ADD CONSTRAINT "MaintenanceRequest_claimedByUserId_fkey" FOREIGN KEY ("claimedByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MaintenanceRequest" ADD CONSTRAINT "MaintenanceRequest_resolvedByUserId_fkey" FOREIGN KEY ("resolvedByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|