50 lines
1.6 KiB
SQL
50 lines
1.6 KiB
SQL
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "Facility" (
|
||
|
|
"id" SERIAL NOT NULL,
|
||
|
|
"facilityId" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"slug" TEXT NOT NULL,
|
||
|
|
"shortDescription" TEXT,
|
||
|
|
"description" TEXT,
|
||
|
|
"videoUrl" TEXT,
|
||
|
|
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
"isFeatured" BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 1000,
|
||
|
|
"departmentId" INTEGER,
|
||
|
|
"seoId" INTEGER,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "Facility_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "FacilityImage" (
|
||
|
|
"id" SERIAL NOT NULL,
|
||
|
|
"url" TEXT NOT NULL,
|
||
|
|
"altText" TEXT,
|
||
|
|
"description" TEXT,
|
||
|
|
"facilityId" INTEGER NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
|
||
|
|
CONSTRAINT "FacilityImage_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "Facility_facilityId_key" ON "Facility"("facilityId");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "Facility_slug_key" ON "Facility"("slug");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "Facility_seoId_key" ON "Facility"("seoId");
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "Facility" ADD CONSTRAINT "Facility_departmentId_fkey" FOREIGN KEY ("departmentId") REFERENCES "Department"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "Facility" ADD CONSTRAINT "Facility_seoId_fkey" FOREIGN KEY ("seoId") REFERENCES "Seo"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "FacilityImage" ADD CONSTRAINT "FacilityImage_facilityId_fkey" FOREIGN KEY ("facilityId") REFERENCES "Facility"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|