Fix sql e migration

This commit is contained in:
Lorenzo Sanesi
2026-07-25 12:38:44 +02:00
parent a4cca3f2c1
commit 1326a3c887
3 changed files with 319 additions and 0 deletions
@@ -0,0 +1,90 @@
-- CreateEnum
CREATE TYPE "StatoRichiesta" AS ENUM ('PENDING', 'APPROVATA', 'RIFIUTATA');
-- CreateEnum
CREATE TYPE "OrigineRichiesta" AS ENUM ('LINK', 'PROFILO');
-- CreateTable
CREATE TABLE "gruppo_scout" (
"org_id" TEXT NOT NULL,
"nome" TEXT NOT NULL,
"regione" TEXT,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "gruppo_scout_pkey" PRIMARY KEY ("org_id")
);
-- CreateTable
CREATE TABLE "invito" (
"id" TEXT NOT NULL,
"token" TEXT NOT NULL,
"email" TEXT NOT NULL,
"org_id" TEXT NOT NULL,
"ruolo" TEXT NOT NULL,
"scadenza" TIMESTAMP(3) NOT NULL,
"stato" TEXT NOT NULL,
CONSTRAINT "invito_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "richiesta_ingresso" (
"id" TEXT NOT NULL,
"user_id" TEXT NOT NULL,
"email" TEXT NOT NULL,
"org_id" TEXT NOT NULL,
"stato" "StatoRichiesta" NOT NULL DEFAULT 'PENDING',
"origine" "OrigineRichiesta" NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "richiesta_ingresso_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "link_ingresso" (
"id" TEXT NOT NULL,
"token" TEXT NOT NULL,
"org_id" TEXT NOT NULL,
"attivo" BOOLEAN NOT NULL DEFAULT true,
"creato_da" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "link_ingresso_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "richiesta_creazione_gruppo" (
"id" TEXT NOT NULL,
"user_id" TEXT NOT NULL,
"email" TEXT NOT NULL,
"nome_proposto" TEXT NOT NULL,
"regione" TEXT,
"stato" "StatoRichiesta" NOT NULL DEFAULT 'PENDING',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "richiesta_creazione_gruppo_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "invito_token_key" ON "invito"("token");
-- CreateIndex
CREATE INDEX "richiesta_ingresso_email_idx" ON "richiesta_ingresso"("email");
-- CreateIndex
CREATE UNIQUE INDEX "link_ingresso_token_key" ON "link_ingresso"("token");
-- CreateIndex
CREATE INDEX "richiesta_creazione_gruppo_email_idx" ON "richiesta_creazione_gruppo"("email");
-- AddForeignKey
ALTER TABLE "invito" ADD CONSTRAINT "invito_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "gruppo_scout"("org_id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "richiesta_ingresso" ADD CONSTRAINT "richiesta_ingresso_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "gruppo_scout"("org_id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "link_ingresso" ADD CONSTRAINT "link_ingresso_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "gruppo_scout"("org_id") ON DELETE RESTRICT ON UPDATE CASCADE;