-- CreateEnum CREATE TYPE "DocumentType" AS ENUM ('SO_DO', 'SO_HONG', 'GCNQSD', 'OTHER'); -- CreateEnum CREATE TYPE "DocumentVerificationStatus" AS ENUM ('PENDING_REVIEW', 'APPROVED', 'REJECTED'); -- CreateTable CREATE TABLE "PropertyDocument" ( "id" TEXT NOT NULL, "propertyId" TEXT NOT NULL, "uploadedById" TEXT NOT NULL, "documentType" "DocumentType" NOT NULL, "status" "DocumentVerificationStatus" NOT NULL DEFAULT 'PENDING_REVIEW', "url" TEXT NOT NULL, "fileName" TEXT NOT NULL, "mimeType" TEXT NOT NULL, "fileSizeBytes" INTEGER NOT NULL, "description" TEXT, "rejectionReason" TEXT, "reviewedById" TEXT, "reviewedAt" TIMESTAMP(3), "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "PropertyDocument_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE INDEX "PropertyDocument_propertyId_idx" ON "PropertyDocument"("propertyId"); -- CreateIndex CREATE INDEX "PropertyDocument_status_createdAt_idx" ON "PropertyDocument"("status", "createdAt"); -- CreateIndex CREATE INDEX "PropertyDocument_uploadedById_idx" ON "PropertyDocument"("uploadedById"); -- AddForeignKey ALTER TABLE "PropertyDocument" ADD CONSTRAINT "PropertyDocument_propertyId_fkey" FOREIGN KEY ("propertyId") REFERENCES "Property"("id") ON DELETE CASCADE ON UPDATE CASCADE;