16 lines
828 B
SQL
16 lines
828 B
SQL
-- AlterTable: tambah kemampuan admin untuk suspend/ban user (moderasi scam,
|
|
-- harassment, TOS violation). Suspended user diblokir sign-in dan dilarang
|
|
-- melakukan aksi mutatif. Hard-delete dihindari supaya audit trail terjaga.
|
|
ALTER TABLE "User" ADD COLUMN "suspended" BOOLEAN NOT NULL DEFAULT false;
|
|
ALTER TABLE "User" ADD COLUMN "suspendedAt" TIMESTAMP(3);
|
|
ALTER TABLE "User" ADD COLUMN "suspendedReason" TEXT;
|
|
ALTER TABLE "User" ADD COLUMN "suspendedById" TEXT;
|
|
|
|
-- AddForeignKey: admin yang suspend tetap auditable kalau admin dihapus.
|
|
ALTER TABLE "User" ADD CONSTRAINT "User_suspendedById_fkey"
|
|
FOREIGN KEY ("suspendedById") REFERENCES "User"("id")
|
|
ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- CreateIndex: filter user list admin sering pakai suspended status.
|
|
CREATE INDEX "User_suspended_idx" ON "User"("suspended");
|