75 lines
2.6 KiB
SQL
75 lines
2.6 KiB
SQL
-- AlterTable
|
|
ALTER TABLE "profiles" ADD COLUMN "marriageDate" TIMESTAMP(3),
|
|
ADD COLUMN "phone" TEXT;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "family_members" (
|
|
"id" TEXT NOT NULL,
|
|
"profile_id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"birthDate" TIMESTAMP(3),
|
|
"relation" TEXT NOT NULL,
|
|
"nativePlace" TEXT,
|
|
"employer" TEXT,
|
|
"address" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
"deletedAt" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "family_members_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "applications" (
|
|
"id" TEXT NOT NULL,
|
|
"profile_id" TEXT NOT NULL,
|
|
"family_member_id" TEXT NOT NULL,
|
|
"applyDays" INTEGER NOT NULL,
|
|
"plannedCheckIn" TIMESTAMP(3) NOT NULL,
|
|
"plannedCheckOut" TIMESTAMP(3) NOT NULL,
|
|
"reason" TEXT,
|
|
"usedDaysThisYear" INTEGER NOT NULL DEFAULT 0,
|
|
"remainingDays" INTEGER NOT NULL DEFAULT 0,
|
|
"groupOpinion" TEXT,
|
|
"hrOpinion" TEXT,
|
|
"barracksOpinion" TEXT,
|
|
"guaranteeOpinion" TEXT,
|
|
"leaderOpinion" TEXT,
|
|
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
"deletedAt" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "applications_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "family_members_profile_id_deletedAt_idx" ON "family_members"("profile_id", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "family_members_relation_idx" ON "family_members"("relation");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "applications_profile_id_deletedAt_idx" ON "applications"("profile_id", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "applications_family_member_id_deletedAt_idx" ON "applications"("family_member_id", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "applications_status_deletedAt_idx" ON "applications"("status", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "applications_plannedCheckIn_plannedCheckOut_idx" ON "applications"("plannedCheckIn", "plannedCheckOut");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "profiles_phone_idx" ON "profiles"("phone");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "family_members" ADD CONSTRAINT "family_members_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "profiles"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "applications" ADD CONSTRAINT "applications_profile_id_fkey" FOREIGN KEY ("profile_id") REFERENCES "profiles"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "applications" ADD CONSTRAINT "applications_family_member_id_fkey" FOREIGN KEY ("family_member_id") REFERENCES "family_members"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|