add form site

This commit is contained in:
Puechberty Arthur
2026-03-02 13:38:13 +01:00
parent c6d7ce8900
commit 1611ad7440
43 changed files with 2805 additions and 97 deletions
@@ -0,0 +1,26 @@
-- CreateTable
CREATE TABLE "Form" (
"id" TEXT NOT NULL PRIMARY KEY,
"title" TEXT NOT NULL,
"description" TEXT,
"fields" TEXT NOT NULL,
"secretKey" TEXT NOT NULL,
"publicId" TEXT NOT NULL,
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL
);
-- CreateTable
CREATE TABLE "Response" (
"id" TEXT NOT NULL PRIMARY KEY,
"formId" TEXT NOT NULL,
"data" TEXT NOT NULL,
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Response_formId_fkey" FOREIGN KEY ("formId") REFERENCES "Form" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateIndex
CREATE UNIQUE INDEX "Form_secretKey_key" ON "Form"("secretKey");
-- CreateIndex
CREATE UNIQUE INDEX "Form_publicId_key" ON "Form"("publicId");
+3
View File
@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "sqlite"
+33
View File
@@ -0,0 +1,33 @@
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
// Modèle pour les formulaires
model Form {
id String @id @default(uuid())
title String
description String?
fields String // JSON stringified des champs du formulaire
secretKey String @unique // Clé secrète pour accéder aux résultats
publicId String @unique // ID public pour partager le formulaire
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
responses Response[]
}
// Modèle pour les réponses aux formulaires
model Response {
id String @id @default(uuid())
formId String
form Form @relation(fields: [formId], references: [id], onDelete: Cascade)
data String // JSON stringified des réponses
createdAt DateTime @default(now())
}