Sửa đổi dữ liệu của hệ thống theo ARCHITECTURE.md
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The values [LODGING,DINING] on the enum `ExpenseCategory` will be removed. If these variants are still used in the database, this will fail.
|
||||
- The values [PUBLIC_IN_TOUR,PRIVATE_OWNER] on the enum `PrivacyLevel` will be removed. If these variants are still used in the database, this will fail.
|
||||
- The primary key for the `Expense` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- You are about to drop the column `placeId` on the `Expense` table. All the data in the column will be lost.
|
||||
- The primary key for the `Leg` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- You are about to drop the column `notes` on the `Leg` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `sequenceNumber` on the `Leg` table. All the data in the column will be lost.
|
||||
- The primary key for the `Photo` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- You are about to drop the column `placeId` on the `Photo` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `privacyLevel` on the `Photo` table. All the data in the column will be lost.
|
||||
- The primary key for the `Tour` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- You are about to drop the column `creatorId` on the `Tour` table. All the data in the column will be lost.
|
||||
- The primary key for the `User` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- You are about to drop the `Place` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `Task` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `TourMember` table. If the table is not empty, all the data it contains will be lost.
|
||||
- Added the required column `sequence` to the `Leg` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `createdById` to the `Tour` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- CreateEnum
|
||||
CREATE TYPE "ParticipantRole" AS ENUM ('OWNER', 'MANAGER', 'MEMBER', 'MEMBER_NO_FINANCE', 'VIEWER_ONLY');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "LocationStatus" AS ENUM ('PENDING', 'COMPLETED');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "LocationType" AS ENUM ('MOVE', 'VISIT', 'REST', 'EAT');
|
||||
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "ExpenseCategory_new" AS ENUM ('ACCOMMODATION', 'FOOD', 'TRANSPORT', 'TICKET', 'OTHER');
|
||||
ALTER TABLE "Expense" ALTER COLUMN "category" TYPE "ExpenseCategory_new" USING ("category"::text::"ExpenseCategory_new");
|
||||
ALTER TYPE "ExpenseCategory" RENAME TO "ExpenseCategory_old";
|
||||
ALTER TYPE "ExpenseCategory_new" RENAME TO "ExpenseCategory";
|
||||
DROP TYPE "public"."ExpenseCategory_old";
|
||||
COMMIT;
|
||||
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "PrivacyLevel_new" AS ENUM ('PUBLIC', 'TOUR_ONLY', 'PRIVATE');
|
||||
ALTER TABLE "public"."Photo" ALTER COLUMN "privacyLevel" DROP DEFAULT;
|
||||
ALTER TABLE "Photo" ALTER COLUMN "privacy" TYPE "PrivacyLevel_new" USING ("privacy"::text::"PrivacyLevel_new");
|
||||
ALTER TYPE "PrivacyLevel" RENAME TO "PrivacyLevel_old";
|
||||
ALTER TYPE "PrivacyLevel_new" RENAME TO "PrivacyLevel";
|
||||
DROP TYPE "public"."PrivacyLevel_old";
|
||||
COMMIT;
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Expense" DROP CONSTRAINT "Expense_legId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Expense" DROP CONSTRAINT "Expense_placeId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Leg" DROP CONSTRAINT "Leg_tourId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Photo" DROP CONSTRAINT "Photo_placeId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Photo" DROP CONSTRAINT "Photo_tourId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Photo" DROP CONSTRAINT "Photo_uploaderId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Place" DROP CONSTRAINT "Place_legId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Task" DROP CONSTRAINT "Task_legId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Task" DROP CONSTRAINT "Task_tourId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Tour" DROP CONSTRAINT "Tour_creatorId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "TourMember" DROP CONSTRAINT "TourMember_tourId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "TourMember" DROP CONSTRAINT "TourMember_userId_fkey";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Expense" DROP CONSTRAINT "Expense_pkey",
|
||||
DROP COLUMN "placeId",
|
||||
ADD COLUMN "locationId" TEXT,
|
||||
ALTER COLUMN "id" DROP DEFAULT,
|
||||
ALTER COLUMN "id" SET DATA TYPE TEXT,
|
||||
ALTER COLUMN "legId" SET DATA TYPE TEXT,
|
||||
ADD CONSTRAINT "Expense_pkey" PRIMARY KEY ("id");
|
||||
DROP SEQUENCE "Expense_id_seq";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Leg" DROP CONSTRAINT "Leg_pkey",
|
||||
DROP COLUMN "notes",
|
||||
DROP COLUMN "sequenceNumber",
|
||||
ADD COLUMN "note" TEXT,
|
||||
ADD COLUMN "sequence" INTEGER NOT NULL,
|
||||
ALTER COLUMN "id" DROP DEFAULT,
|
||||
ALTER COLUMN "id" SET DATA TYPE TEXT,
|
||||
ALTER COLUMN "tourId" SET DATA TYPE TEXT,
|
||||
ADD CONSTRAINT "Leg_pkey" PRIMARY KEY ("id");
|
||||
DROP SEQUENCE "Leg_id_seq";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Photo" DROP CONSTRAINT "Photo_pkey",
|
||||
DROP COLUMN "placeId",
|
||||
DROP COLUMN "privacyLevel",
|
||||
ADD COLUMN "locationId" TEXT,
|
||||
ADD COLUMN "metadata" JSONB,
|
||||
ADD COLUMN "privacy" "PrivacyLevel" NOT NULL DEFAULT 'TOUR_ONLY',
|
||||
ALTER COLUMN "id" DROP DEFAULT,
|
||||
ALTER COLUMN "id" SET DATA TYPE TEXT,
|
||||
ALTER COLUMN "tourId" SET DATA TYPE TEXT,
|
||||
ALTER COLUMN "uploaderId" SET DATA TYPE TEXT,
|
||||
ADD CONSTRAINT "Photo_pkey" PRIMARY KEY ("id");
|
||||
DROP SEQUENCE "Photo_id_seq";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Tour" DROP CONSTRAINT "Tour_pkey",
|
||||
DROP COLUMN "creatorId",
|
||||
ADD COLUMN "createdById" TEXT NOT NULL,
|
||||
ADD COLUMN "totalCost" DECIMAL(15,2) NOT NULL DEFAULT 0,
|
||||
ALTER COLUMN "id" DROP DEFAULT,
|
||||
ALTER COLUMN "id" SET DATA TYPE TEXT,
|
||||
ADD CONSTRAINT "Tour_pkey" PRIMARY KEY ("id");
|
||||
DROP SEQUENCE "Tour_id_seq";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "User" DROP CONSTRAINT "User_pkey",
|
||||
ALTER COLUMN "id" DROP DEFAULT,
|
||||
ALTER COLUMN "id" SET DATA TYPE TEXT,
|
||||
ADD CONSTRAINT "User_pkey" PRIMARY KEY ("id");
|
||||
DROP SEQUENCE "User_id_seq";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "Place";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "Task";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "TourMember";
|
||||
|
||||
-- DropEnum
|
||||
DROP TYPE "MemberRole";
|
||||
|
||||
-- DropEnum
|
||||
DROP TYPE "TriggerType";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TourParticipant" (
|
||||
"tourId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"role" "ParticipantRole" NOT NULL DEFAULT 'MEMBER',
|
||||
|
||||
CONSTRAINT "TourParticipant_pkey" PRIMARY KEY ("tourId","userId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Location" (
|
||||
"id" TEXT NOT NULL,
|
||||
"legId" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"address" TEXT,
|
||||
"latitude" DOUBLE PRECISION NOT NULL,
|
||||
"longitude" DOUBLE PRECISION NOT NULL,
|
||||
"plannedStart" TIMESTAMP(3),
|
||||
"plannedEnd" TIMESTAMP(3),
|
||||
"actualStart" TIMESTAMP(3),
|
||||
"actualEnd" TIMESTAMP(3),
|
||||
"status" "LocationStatus" NOT NULL DEFAULT 'PENDING',
|
||||
"type" "LocationType" NOT NULL DEFAULT 'VISIT',
|
||||
|
||||
CONSTRAINT "Location_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Tour" ADD CONSTRAINT "Tour_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TourParticipant" ADD CONSTRAINT "TourParticipant_tourId_fkey" FOREIGN KEY ("tourId") REFERENCES "Tour"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TourParticipant" ADD CONSTRAINT "TourParticipant_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Leg" ADD CONSTRAINT "Leg_tourId_fkey" FOREIGN KEY ("tourId") REFERENCES "Tour"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Location" ADD CONSTRAINT "Location_legId_fkey" FOREIGN KEY ("legId") REFERENCES "Leg"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Expense" ADD CONSTRAINT "Expense_legId_fkey" FOREIGN KEY ("legId") REFERENCES "Leg"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Expense" ADD CONSTRAINT "Expense_locationId_fkey" FOREIGN KEY ("locationId") REFERENCES "Location"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Photo" ADD CONSTRAINT "Photo_tourId_fkey" FOREIGN KEY ("tourId") REFERENCES "Tour"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Photo" ADD CONSTRAINT "Photo_locationId_fkey" FOREIGN KEY ("locationId") REFERENCES "Location"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Photo" ADD CONSTRAINT "Photo_uploaderId_fkey" FOREIGN KEY ("uploaderId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user