Files
formation-manager-itinova/drizzle/0001_smooth_warbird.sql

55 lines
2.2 KiB
SQL

CREATE TABLE `apprenants` (
`id` int AUTO_INCREMENT NOT NULL,
`nom` varchar(255) NOT NULL,
`prenom` varchar(255) NOT NULL,
`email` varchar(320) NOT NULL,
`codeEtablissement` varchar(50) NOT NULL,
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `apprenants_id` PRIMARY KEY(`id`),
CONSTRAINT `apprenants_email_unique` UNIQUE(`email`)
);
--> statement-breakpoint
CREATE TABLE `formations` (
`id` int AUTO_INCREMENT NOT NULL,
`nom` varchar(255) NOT NULL,
`description` text,
`lienUnique` varchar(100) NOT NULL,
`actif` boolean NOT NULL DEFAULT true,
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `formations_id` PRIMARY KEY(`id`),
CONSTRAINT `formations_lienUnique_unique` UNIQUE(`lienUnique`)
);
--> statement-breakpoint
CREATE TABLE `inscriptions` (
`id` int AUTO_INCREMENT NOT NULL,
`apprenantId` int NOT NULL,
`sessionId` int NOT NULL,
`statut` enum('confirmee','liste_attente','annulee') NOT NULL DEFAULT 'confirmee',
`dateInscription` timestamp NOT NULL DEFAULT (now()),
`invitationEnvoyee` boolean NOT NULL DEFAULT false,
`emailConfirmationEnvoye` boolean NOT NULL DEFAULT false,
`emailTeaserEnvoye` boolean NOT NULL DEFAULT false,
`emailRappelEnvoye` boolean NOT NULL DEFAULT false,
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `inscriptions_id` PRIMARY KEY(`id`),
CONSTRAINT `inscriptions_apprenantId_sessionId_unique` UNIQUE(`apprenantId`,`sessionId`)
);
--> statement-breakpoint
CREATE TABLE `sessions` (
`id` int AUTO_INCREMENT NOT NULL,
`formationId` int NOT NULL,
`nom` varchar(255) NOT NULL,
`dateDebut` datetime NOT NULL,
`dateFin` datetime NOT NULL,
`lieu` varchar(500) NOT NULL,
`capaciteMax` int NOT NULL DEFAULT 12,
`dateBlocage` datetime NOT NULL,
`statut` enum('ouverte','bloquee','terminee') NOT NULL DEFAULT 'ouverte',
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `sessions_id` PRIMARY KEY(`id`)
);