44 行
1.9 KiB
SQL
44 行
1.9 KiB
SQL
ALTER TABLE "portal_announcements"
|
|
ADD COLUMN "category" TEXT NOT NULL DEFAULT 'general',
|
|
ADD COLUMN "requires_acknowledgement" BOOLEAN NOT NULL DEFAULT false,
|
|
ADD COLUMN "acknowledgement_statement" TEXT,
|
|
ADD COLUMN "acknowledgement_due_at" TIMESTAMP(3);
|
|
|
|
CREATE TABLE "portal_announcement_acknowledgements" (
|
|
"id" UUID NOT NULL,
|
|
"announcement_id" UUID NOT NULL,
|
|
"employee_id" UUID NOT NULL,
|
|
"acknowledged_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"statement_snapshot" TEXT NOT NULL,
|
|
"title_snapshot" TEXT NOT NULL,
|
|
"summary_snapshot" TEXT NOT NULL,
|
|
"actor_id" UUID NOT NULL,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "portal_announcement_acknowledgements_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "portal_announcement_acknowledgements_announcement_id_employee_id_key"
|
|
ON "portal_announcement_acknowledgements"("announcement_id", "employee_id");
|
|
|
|
CREATE INDEX "portal_announcement_acknowledgements_employee_id_acknowledged_at_idx"
|
|
ON "portal_announcement_acknowledgements"("employee_id", "acknowledged_at");
|
|
|
|
CREATE INDEX "portal_announcement_acknowledgements_announcement_id_acknowledged_at_idx"
|
|
ON "portal_announcement_acknowledgements"("announcement_id", "acknowledged_at");
|
|
|
|
ALTER TABLE "portal_announcement_acknowledgements"
|
|
ADD CONSTRAINT "portal_announcement_acknowledgements_announcement_id_fkey"
|
|
FOREIGN KEY ("announcement_id") REFERENCES "portal_announcements"("id")
|
|
ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
ALTER TABLE "portal_announcement_acknowledgements"
|
|
ADD CONSTRAINT "portal_announcement_acknowledgements_employee_id_fkey"
|
|
FOREIGN KEY ("employee_id") REFERENCES "employees"("id")
|
|
ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
ALTER TABLE "portal_announcement_acknowledgements"
|
|
ADD CONSTRAINT "portal_announcement_acknowledgements_actor_id_fkey"
|
|
FOREIGN KEY ("actor_id") REFERENCES "employees"("id")
|
|
ON DELETE RESTRICT ON UPDATE CASCADE;
|