add review and booking policies
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "ReservationPhotoType" AS ENUM ('PICKUP', 'DROPOFF');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "reservation_photos" (
|
||||
"id" TEXT NOT NULL,
|
||||
"reservationId" TEXT NOT NULL,
|
||||
"type" "ReservationPhotoType" NOT NULL,
|
||||
"url" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "reservation_photos_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "reservation_photos_reservationId_idx" ON "reservation_photos"("reservationId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "reservation_photos" ADD CONSTRAINT "reservation_photos_reservationId_fkey" FOREIGN KEY ("reservationId") REFERENCES "reservations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -0,0 +1,6 @@
|
||||
-- AlterEnum (PostgreSQL enum values must be added outside a transaction)
|
||||
ALTER TYPE "VehicleStatus" ADD VALUE 'RESERVED';
|
||||
ALTER TYPE "VehicleStatus" ADD VALUE 'READY';
|
||||
ALTER TYPE "VehicleStatus" ADD VALUE 'RETURNED';
|
||||
ALTER TYPE "VehicleStatus" ADD VALUE 'NEEDS_CLEANING';
|
||||
ALTER TYPE "VehicleStatus" ADD VALUE 'DAMAGE_REVIEW';
|
||||
@@ -0,0 +1,83 @@
|
||||
-- CreateEnum: FeedbackCategory
|
||||
CREATE TYPE "FeedbackCategory" AS ENUM (
|
||||
'BOOKING',
|
||||
'PICKUP',
|
||||
'VEHICLE_CLEANLINESS',
|
||||
'VEHICLE_CONDITION',
|
||||
'STAFF_SERVICE',
|
||||
'PRICING',
|
||||
'DEPOSIT',
|
||||
'INSURANCE',
|
||||
'DAMAGE_CLAIM',
|
||||
'RETURN_PROCESS',
|
||||
'COMMUNICATION',
|
||||
'ROADSIDE_ASSISTANCE',
|
||||
'BILLING',
|
||||
'OTHER'
|
||||
);
|
||||
|
||||
-- CreateEnum: ComplaintSeverity
|
||||
CREATE TYPE "ComplaintSeverity" AS ENUM ('LEVEL_1', 'LEVEL_2', 'LEVEL_3');
|
||||
|
||||
-- CreateEnum: ComplaintStatus
|
||||
CREATE TYPE "ComplaintStatus" AS ENUM ('OPEN', 'INVESTIGATING', 'RESOLVED', 'CLOSED');
|
||||
|
||||
-- AlterTable: reviews — add category column
|
||||
ALTER TABLE "reviews" ADD COLUMN "category" "FeedbackCategory";
|
||||
|
||||
-- AlterTable: reservations — add review tracking columns
|
||||
ALTER TABLE "reservations"
|
||||
ADD COLUMN "reviewRequestSentAt" TIMESTAMP(3),
|
||||
ADD COLUMN "reviewReminderSentAt" TIMESTAMP(3),
|
||||
ADD COLUMN "reviewFinalReminderSentAt" TIMESTAMP(3),
|
||||
ADD COLUMN "reviewPaused" BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
-- AlterTable: customers — add reviewOptOut column
|
||||
ALTER TABLE "customers" ADD COLUMN "reviewOptOut" BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
-- CreateTable: complaints
|
||||
CREATE TABLE "complaints" (
|
||||
"id" TEXT NOT NULL,
|
||||
"companyId" TEXT NOT NULL,
|
||||
"reservationId" TEXT,
|
||||
"reviewId" TEXT,
|
||||
"customerId" TEXT,
|
||||
"severity" "ComplaintSeverity" NOT NULL DEFAULT 'LEVEL_1',
|
||||
"status" "ComplaintStatus" NOT NULL DEFAULT 'OPEN',
|
||||
"category" "FeedbackCategory" NOT NULL,
|
||||
"subject" TEXT NOT NULL,
|
||||
"description" TEXT,
|
||||
"resolution" TEXT,
|
||||
"notes" TEXT,
|
||||
"assignedTo" TEXT,
|
||||
"resolvedAt" TIMESTAMP(3),
|
||||
"resolvedBy" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "complaints_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "complaints_companyId_idx" ON "complaints"("companyId");
|
||||
CREATE INDEX "complaints_reservationId_idx" ON "complaints"("reservationId");
|
||||
|
||||
-- AddForeignKey: complaints → companies
|
||||
ALTER TABLE "complaints"
|
||||
ADD CONSTRAINT "complaints_companyId_fkey"
|
||||
FOREIGN KEY ("companyId") REFERENCES "companies"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey: complaints → reservations
|
||||
ALTER TABLE "complaints"
|
||||
ADD CONSTRAINT "complaints_reservationId_fkey"
|
||||
FOREIGN KEY ("reservationId") REFERENCES "reservations"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey: complaints → reviews
|
||||
ALTER TABLE "complaints"
|
||||
ADD CONSTRAINT "complaints_reviewId_fkey"
|
||||
FOREIGN KEY ("reviewId") REFERENCES "reviews"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey: complaints → customers
|
||||
ALTER TABLE "complaints"
|
||||
ADD CONSTRAINT "complaints_customerId_fkey"
|
||||
FOREIGN KEY ("customerId") REFERENCES "customers"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user