diff --git a/client/src/pages/Inscription.tsx b/client/src/pages/Inscription.tsx
index f26ff9a..8a4c033 100644
--- a/client/src/pages/Inscription.tsx
+++ b/client/src/pages/Inscription.tsx
@@ -68,15 +68,12 @@ export default function Inscription() {
const publicCibleMap: Record = {
"directeur": "directeur",
"chef_service": "chef_service",
- "tous": "tous",
"autre": "autre"
};
- // Si le public cible est "tous", ne pas afficher d'alerte
- if (selectedSequence.publicCible !== "tous" && publicCibleMap[selectedSequence.publicCible] !== formData.fonction) {
+ if (publicCibleMap[selectedSequence.publicCible] !== formData.fonction) {
const publicCibleLabel = selectedSequence.publicCible === "directeur" ? "Directeurs" :
- selectedSequence.publicCible === "chef_service" ? "Chefs de service" :
- selectedSequence.publicCible === "tous" ? "Tous" : "Autre";
+ selectedSequence.publicCible === "chef_service" ? "Chefs de service" : "Autre";
const fonctionLabel = formData.fonction === "directeur" ? "Directeur" :
formData.fonction === "chef_service" ? "Chef de service" : "Autre";
@@ -303,7 +300,7 @@ export default function Inscription() {
diff --git a/drizzle/0010_flat_clint_barton.sql b/drizzle/0010_flat_clint_barton.sql
deleted file mode 100644
index b1cb996..0000000
--- a/drizzle/0010_flat_clint_barton.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-ALTER TABLE `users` DROP INDEX `users_openId_unique`;--> statement-breakpoint
-ALTER TABLE `users` MODIFY COLUMN `email` varchar(320) NOT NULL;--> statement-breakpoint
-ALTER TABLE `users` ADD `password` varchar(255) NOT NULL;--> statement-breakpoint
-ALTER TABLE `users` ADD `emailVerified` boolean DEFAULT false NOT NULL;--> statement-breakpoint
-ALTER TABLE `users` ADD CONSTRAINT `users_email_unique` UNIQUE(`email`);--> statement-breakpoint
-ALTER TABLE `users` DROP COLUMN `openId`;--> statement-breakpoint
-ALTER TABLE `users` DROP COLUMN `loginMethod`;
\ No newline at end of file
diff --git a/drizzle/0011_talented_toad_men.sql b/drizzle/0011_talented_toad_men.sql
deleted file mode 100644
index 3beec54..0000000
--- a/drizzle/0011_talented_toad_men.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-ALTER TABLE `users` MODIFY COLUMN `password` varchar(255);--> statement-breakpoint
-ALTER TABLE `users` ADD `openId` varchar(64);--> statement-breakpoint
-ALTER TABLE `users` ADD CONSTRAINT `users_openId_unique` UNIQUE(`openId`);
\ No newline at end of file
diff --git a/drizzle/0012_perfect_night_thrasher.sql b/drizzle/0012_perfect_night_thrasher.sql
deleted file mode 100644
index 7dd472a..0000000
--- a/drizzle/0012_perfect_night_thrasher.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-ALTER TABLE `users` DROP INDEX `users_openId_unique`;--> statement-breakpoint
-ALTER TABLE `users` MODIFY COLUMN `password` varchar(255) NOT NULL;--> statement-breakpoint
-ALTER TABLE `users` DROP COLUMN `openId`;
\ No newline at end of file
diff --git a/drizzle/0015_brainy_terrax.sql b/drizzle/0015_brainy_terrax.sql
deleted file mode 100644
index ee7dfa1..0000000
--- a/drizzle/0015_brainy_terrax.sql
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE `sequences` MODIFY COLUMN `publicCible` enum('directeur','chef_service','tous','autre') NOT NULL;
\ No newline at end of file
diff --git a/drizzle/0016_chunky_landau.sql b/drizzle/0016_chunky_landau.sql
deleted file mode 100644
index 47a2637..0000000
--- a/drizzle/0016_chunky_landau.sql
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE `sequences` ADD `formateur` varchar(255);
\ No newline at end of file
diff --git a/drizzle/0017_dear_tana_nile.sql b/drizzle/0017_dear_tana_nile.sql
deleted file mode 100644
index 1fb653d..0000000
--- a/drizzle/0017_dear_tana_nile.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-CREATE TABLE `formateurs` (
- `id` int AUTO_INCREMENT NOT NULL,
- `nom` varchar(255) 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 `formateurs_id` PRIMARY KEY(`id`),
- CONSTRAINT `formateurs_nom_unique` UNIQUE(`nom`)
-);
diff --git a/drizzle/0018_breezy_thundra.sql b/drizzle/0018_breezy_thundra.sql
deleted file mode 100644
index 28a5c22..0000000
--- a/drizzle/0018_breezy_thundra.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-CREATE TABLE `rappels` (
- `id` int AUTO_INCREMENT NOT NULL,
- `nom` varchar(255) NOT NULL,
- `joursAvant` int NOT NULL,
- `emailTemplate` text 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 `rappels_id` PRIMARY KEY(`id`)
-);
---> statement-breakpoint
-CREATE TABLE `rappelsEnvoyes` (
- `id` int AUTO_INCREMENT NOT NULL,
- `rappelId` int NOT NULL,
- `inscriptionId` int NOT NULL,
- `dateEnvoi` timestamp NOT NULL DEFAULT (now()),
- CONSTRAINT `rappelsEnvoyes_id` PRIMARY KEY(`id`)
-);
diff --git a/drizzle/meta/0010_snapshot.json b/drizzle/meta/0010_snapshot.json
deleted file mode 100644
index e04bd74..0000000
--- a/drizzle/meta/0010_snapshot.json
+++ /dev/null
@@ -1,780 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "e34c8fec-5308-4ce7-b687-d27c3093036c",
- "prevId": "a099e856-0b0c-430d-8160-ca950c994fe5",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "password": {
- "name": "password",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "emailVerified": {
- "name": "emailVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "users_email_unique": {
- "name": "users_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0011_snapshot.json b/drizzle/meta/0011_snapshot.json
deleted file mode 100644
index 0138615..0000000
--- a/drizzle/meta/0011_snapshot.json
+++ /dev/null
@@ -1,793 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "f5aefc56-4bb4-42a1-a7f3-2b872c62eb11",
- "prevId": "e34c8fec-5308-4ce7-b687-d27c3093036c",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "openId": {
- "name": "openId",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "password": {
- "name": "password",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "emailVerified": {
- "name": "emailVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "users_openId_unique": {
- "name": "users_openId_unique",
- "columns": [
- "openId"
- ]
- },
- "users_email_unique": {
- "name": "users_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0012_snapshot.json b/drizzle/meta/0012_snapshot.json
deleted file mode 100644
index aff95d1..0000000
--- a/drizzle/meta/0012_snapshot.json
+++ /dev/null
@@ -1,780 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "a022fe49-c9e0-4690-9e4c-954dea9e2b56",
- "prevId": "f5aefc56-4bb4-42a1-a7f3-2b872c62eb11",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "password": {
- "name": "password",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "emailVerified": {
- "name": "emailVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "users_email_unique": {
- "name": "users_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0013_snapshot.json b/drizzle/meta/0013_snapshot.json
deleted file mode 100644
index 97bd6aa..0000000
--- a/drizzle/meta/0013_snapshot.json
+++ /dev/null
@@ -1,779 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "021b7d14-5496-480a-8a5e-9fb57facc5f3",
- "prevId": "a022fe49-c9e0-4690-9e4c-954dea9e2b56",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "openId": {
- "name": "openId",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "loginMethod": {
- "name": "loginMethod",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "users_openId_unique": {
- "name": "users_openId_unique",
- "columns": [
- "openId"
- ]
- }
- },
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0014_snapshot.json b/drizzle/meta/0014_snapshot.json
deleted file mode 100644
index 76e155e..0000000
--- a/drizzle/meta/0014_snapshot.json
+++ /dev/null
@@ -1,772 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "ed024a5d-e1f8-452d-aa76-cab1195187c1",
- "prevId": "021b7d14-5496-480a-8a5e-9fb57facc5f3",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "openId": {
- "name": "openId",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "loginMethod": {
- "name": "loginMethod",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0015_snapshot.json b/drizzle/meta/0015_snapshot.json
deleted file mode 100644
index 705acd7..0000000
--- a/drizzle/meta/0015_snapshot.json
+++ /dev/null
@@ -1,772 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "227aca0a-a830-4a26-9bd7-edca209e040b",
- "prevId": "ed024a5d-e1f8-452d-aa76-cab1195187c1",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','tous','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "openId": {
- "name": "openId",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "loginMethod": {
- "name": "loginMethod",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0016_snapshot.json b/drizzle/meta/0016_snapshot.json
deleted file mode 100644
index b6ec820..0000000
--- a/drizzle/meta/0016_snapshot.json
+++ /dev/null
@@ -1,779 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "860496d9-3739-4694-b45d-725a447f3eee",
- "prevId": "227aca0a-a830-4a26-9bd7-edca209e040b",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','tous','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "formateur": {
- "name": "formateur",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "openId": {
- "name": "openId",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "loginMethod": {
- "name": "loginMethod",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0017_snapshot.json b/drizzle/meta/0017_snapshot.json
deleted file mode 100644
index 5ad1b73..0000000
--- a/drizzle/meta/0017_snapshot.json
+++ /dev/null
@@ -1,842 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "d7d07602-ed71-4c09-b5d4-3ebd05e45303",
- "prevId": "860496d9-3739-4694-b45d-725a447f3eee",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formateurs": {
- "name": "formateurs",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formateurs_id": {
- "name": "formateurs_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formateurs_nom_unique": {
- "name": "formateurs_nom_unique",
- "columns": [
- "nom"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','tous','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "formateur": {
- "name": "formateur",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "openId": {
- "name": "openId",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "loginMethod": {
- "name": "loginMethod",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/0018_snapshot.json b/drizzle/meta/0018_snapshot.json
deleted file mode 100644
index 91d6009..0000000
--- a/drizzle/meta/0018_snapshot.json
+++ /dev/null
@@ -1,958 +0,0 @@
-{
- "version": "5",
- "dialect": "mysql",
- "id": "634fe51e-8827-4f0f-b033-dcd01c3acb21",
- "prevId": "d7d07602-ed71-4c09-b5d4-3ebd05e45303",
- "tables": {
- "apprenants": {
- "name": "apprenants",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "prenom": {
- "name": "prenom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "codeEtablissement": {
- "name": "codeEtablissement",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fonction": {
- "name": "fonction",
- "type": "enum('directeur','chef_service','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "apprenants_id": {
- "name": "apprenants_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "apprenants_email_unique": {
- "name": "apprenants_email_unique",
- "columns": [
- "email"
- ]
- }
- },
- "checkConstraint": {}
- },
- "datesFormation": {
- "name": "datesFormation",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateDebut": {
- "name": "dateDebut",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateFin": {
- "name": "dateFin",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "ordre": {
- "name": "ordre",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "datesFormation_id": {
- "name": "datesFormation_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailConfig": {
- "name": "emailConfig",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "provider": {
- "name": "provider",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'resend'"
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "fromEmail": {
- "name": "fromEmail",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "fromName": {
- "name": "fromName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "mode": {
- "name": "mode",
- "type": "enum('simulation','production')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'simulation'"
- },
- "domainVerified": {
- "name": "domainVerified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailConfig_id": {
- "name": "emailConfig_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "emailTemplates": {
- "name": "emailTemplates",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "type": {
- "name": "type",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "logoUrl": {
- "name": "logoUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "primaryColor": {
- "name": "primaryColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerBgColor": {
- "name": "headerBgColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#2563eb'"
- },
- "headerTextColor": {
- "name": "headerTextColor",
- "type": "varchar(7)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'#ffffff'"
- },
- "headerTitle": {
- "name": "headerTitle",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'Formation Manager Itinova'"
- },
- "footerText": {
- "name": "footerText",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "active": {
- "name": "active",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "emailTemplates_id": {
- "name": "emailTemplates_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "emailTemplates_type_unique": {
- "name": "emailTemplates_type_unique",
- "columns": [
- "type"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formateurs": {
- "name": "formateurs",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formateurs_id": {
- "name": "formateurs_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formateurs_nom_unique": {
- "name": "formateurs_nom_unique",
- "columns": [
- "nom"
- ]
- }
- },
- "checkConstraint": {}
- },
- "formations": {
- "name": "formations",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "lienUnique": {
- "name": "lienUnique",
- "type": "varchar(100)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "formations_id": {
- "name": "formations_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "formations_lienUnique_unique": {
- "name": "formations_lienUnique_unique",
- "columns": [
- "lienUnique"
- ]
- }
- },
- "checkConstraint": {}
- },
- "inscriptions": {
- "name": "inscriptions",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "apprenantId": {
- "name": "apprenantId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "sequenceId": {
- "name": "sequenceId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('confirmee','liste_attente','annulee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateInscription": {
- "name": "dateInscription",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "inscriptions_id": {
- "name": "inscriptions_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "passwordResetTokens": {
- "name": "passwordResetTokens",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "userId": {
- "name": "userId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "token": {
- "name": "token",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "used": {
- "name": "used",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "passwordResetTokens_id": {
- "name": "passwordResetTokens_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {
- "passwordResetTokens_token_unique": {
- "name": "passwordResetTokens_token_unique",
- "columns": [
- "token"
- ]
- }
- },
- "checkConstraint": {}
- },
- "rappels": {
- "name": "rappels",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "joursAvant": {
- "name": "joursAvant",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "emailTemplate": {
- "name": "emailTemplate",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "actif": {
- "name": "actif",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "rappels_id": {
- "name": "rappels_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "rappelsEnvoyes": {
- "name": "rappelsEnvoyes",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "rappelId": {
- "name": "rappelId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "inscriptionId": {
- "name": "inscriptionId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "dateEnvoi": {
- "name": "dateEnvoi",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "rappelsEnvoyes_id": {
- "name": "rappelsEnvoyes_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "sequences": {
- "name": "sequences",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "formationId": {
- "name": "formationId",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "nom": {
- "name": "nom",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "lieu": {
- "name": "lieu",
- "type": "varchar(500)",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "publicCible": {
- "name": "publicCible",
- "type": "enum('directeur','chef_service','tous','autre')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "formateur": {
- "name": "formateur",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "capaciteMax": {
- "name": "capaciteMax",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": 12
- },
- "dateBlocage": {
- "name": "dateBlocage",
- "type": "datetime",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false
- },
- "statut": {
- "name": "statut",
- "type": "enum('ouverte','bloquee','terminee')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'ouverte'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "sequences_id": {
- "name": "sequences_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- },
- "users": {
- "name": "users",
- "columns": {
- "id": {
- "name": "id",
- "type": "int",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": true
- },
- "openId": {
- "name": "openId",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "email": {
- "name": "email",
- "type": "varchar(320)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "loginMethod": {
- "name": "loginMethod",
- "type": "varchar(64)",
- "primaryKey": false,
- "notNull": false,
- "autoincrement": false
- },
- "role": {
- "name": "role",
- "type": "enum('user','admin')",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "'user'"
- },
- "isActive": {
- "name": "isActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- },
- "updatedAt": {
- "name": "updatedAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "onUpdate": true,
- "default": "(now())"
- },
- "lastSignedIn": {
- "name": "lastSignedIn",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "autoincrement": false,
- "default": "(now())"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {
- "users_id": {
- "name": "users_id",
- "columns": [
- "id"
- ]
- }
- },
- "uniqueConstraints": {},
- "checkConstraint": {}
- }
- },
- "views": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- },
- "internal": {
- "tables": {},
- "indexes": {}
- }
-}
\ No newline at end of file
diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json
index 531b438..5dc40cf 100644
--- a/drizzle/meta/_journal.json
+++ b/drizzle/meta/_journal.json
@@ -71,69 +71,6 @@
"when": 1763448844826,
"tag": "0009_polite_senator_kelly",
"breakpoints": true
- },
- {
- "idx": 10,
- "version": "5",
- "when": 1763544545719,
- "tag": "0010_flat_clint_barton",
- "breakpoints": true
- },
- {
- "idx": 11,
- "version": "5",
- "when": 1763553528196,
- "tag": "0011_talented_toad_men",
- "breakpoints": true
- },
- {
- "idx": 12,
- "version": "5",
- "when": 1763559297757,
- "tag": "0012_perfect_night_thrasher",
- "breakpoints": true
- },
- {
- "idx": 13,
- "version": "5",
- "when": 1763560331864,
- "tag": "0013_bitter_switch",
- "breakpoints": true
- },
- {
- "idx": 14,
- "version": "5",
- "when": 1763560452219,
- "tag": "0014_silky_mac_gargan",
- "breakpoints": true
- },
- {
- "idx": 15,
- "version": "5",
- "when": 1763561100930,
- "tag": "0015_brainy_terrax",
- "breakpoints": true
- },
- {
- "idx": 16,
- "version": "5",
- "when": 1763562352026,
- "tag": "0016_chunky_landau",
- "breakpoints": true
- },
- {
- "idx": 17,
- "version": "5",
- "when": 1763563084443,
- "tag": "0017_dear_tana_nile",
- "breakpoints": true
- },
- {
- "idx": 18,
- "version": "5",
- "when": 1763564375261,
- "tag": "0018_breezy_thundra",
- "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/drizzle/schema.ts b/drizzle/schema.ts
index 1a590d7..c68adc0 100644
--- a/drizzle/schema.ts
+++ b/drizzle/schema.ts
@@ -12,7 +12,7 @@ export const users = mysqlTable("users", {
*/
id: int("id").autoincrement().primaryKey(),
/** Manus OAuth identifier (openId) returned from the OAuth callback. Unique per user. */
- openId: varchar("openId", { length: 64 }),
+ openId: varchar("openId", { length: 64 }).notNull().unique(),
name: text("name"),
email: varchar("email", { length: 320 }),
loginMethod: varchar("loginMethod", { length: 64 }),
@@ -61,20 +61,6 @@ export const apprenants = mysqlTable("apprenants", {
export type Apprenant = typeof apprenants.$inferSelect;
export type InsertApprenant = typeof apprenants.$inferInsert;
-/**
- * Table des formateurs
- */
-export const formateurs = mysqlTable("formateurs", {
- id: int("id").autoincrement().primaryKey(),
- nom: varchar("nom", { length: 255 }).notNull().unique(),
- actif: boolean("actif").default(true).notNull(),
- createdAt: timestamp("createdAt").defaultNow().notNull(),
- updatedAt: timestamp("updatedAt").defaultNow().onUpdateNow().notNull(),
-});
-
-export type Formateur = typeof formateurs.$inferSelect;
-export type InsertFormateur = typeof formateurs.$inferInsert;
-
/**
* Table des séquences de formation
* Une séquence peut contenir jusqu'à 4 dates de formation
@@ -85,10 +71,8 @@ export const sequences = mysqlTable("sequences", {
nom: varchar("nom", { length: 255 }).notNull(),
/** Lieu de la formation */
lieu: varchar("lieu", { length: 500 }).notNull(),
- /** Public cible de la séquence (Directeur, Chef de service, Tous, Autre) */
- publicCible: mysqlEnum("publicCible", ["directeur", "chef_service", "tous", "autre"]).notNull(),
- /** Nom du formateur (optionnel) */
- formateur: varchar("formateur", { length: 255 }),
+ /** Public cible de la séquence (Directeur, Chef de service, Autre) */
+ publicCible: mysqlEnum("publicCible", ["directeur", "chef_service", "autre"]).notNull(),
/** Capacité maximale (12 par défaut) */
capaciteMax: int("capaciteMax").default(12).notNull(),
/** Date de blocage des inscriptions (J-15 avant la première date) */
@@ -158,41 +142,6 @@ export const passwordResetTokens = mysqlTable("passwordResetTokens", {
export type PasswordResetToken = typeof passwordResetTokens.$inferSelect;
export type InsertPasswordResetToken = typeof passwordResetTokens.$inferInsert;
-/**
- * Table des rappels automatiques
- * Configure les rappels à envoyer avant les formations
- */
-export const rappels = mysqlTable("rappels", {
- id: int("id").autoincrement().primaryKey(),
- /** Nom du rappel (ex: "Rappel J-15") */
- nom: varchar("nom", { length: 255 }).notNull(),
- /** Nombre de jours avant la formation (ex: 15 pour J-15) */
- joursAvant: int("joursAvant").notNull(),
- /** Template d'email à utiliser */
- emailTemplate: text("emailTemplate").notNull(),
- /** Actif ou non */
- actif: boolean("actif").default(true).notNull(),
- createdAt: timestamp("createdAt").defaultNow().notNull(),
- updatedAt: timestamp("updatedAt").defaultNow().onUpdateNow().notNull(),
-});
-
-export type Rappel = typeof rappels.$inferSelect;
-export type InsertRappel = typeof rappels.$inferInsert;
-
-/**
- * Table des envois de rappels
- * Historique des rappels envoyés pour éviter les doublons
- */
-export const rappelsEnvoyes = mysqlTable("rappelsEnvoyes", {
- id: int("id").autoincrement().primaryKey(),
- rappelId: int("rappelId").notNull(),
- inscriptionId: int("inscriptionId").notNull(),
- dateEnvoi: timestamp("dateEnvoi").defaultNow().notNull(),
-});
-
-export type RappelEnvoye = typeof rappelsEnvoyes.$inferSelect;
-export type InsertRappelEnvoye = typeof rappelsEnvoyes.$inferInsert;
-
/**
* Table des templates d'emails personnalisables
*/
diff --git a/server/_core/oauth.ts b/server/_core/oauth.ts
index dcd65da..fd45373 100644
--- a/server/_core/oauth.ts
+++ b/server/_core/oauth.ts
@@ -20,16 +20,10 @@ export function registerOAuthRoutes(app: Express) {
}
try {
- console.log("[OAuth] Starting callback with code:", code?.substring(0, 10) + "...");
-
const tokenResponse = await sdk.exchangeCodeForToken(code, state);
- console.log("[OAuth] Token exchange successful");
-
const userInfo = await sdk.getUserInfo(tokenResponse.accessToken);
- console.log("[OAuth] User info received:", { openId: userInfo.openId, email: userInfo.email, name: userInfo.name });
if (!userInfo.openId) {
- console.error("[OAuth] Missing openId in user info");
res.status(400).json({ error: "openId missing from user info" });
return;
}
@@ -41,17 +35,14 @@ export function registerOAuthRoutes(app: Express) {
loginMethod: userInfo.loginMethod ?? userInfo.platform ?? null,
lastSignedIn: new Date(),
});
- console.log("[OAuth] User upserted successfully");
const sessionToken = await sdk.createSessionToken(userInfo.openId, {
name: userInfo.name || "",
expiresInMs: ONE_YEAR_MS,
});
- console.log("[OAuth] Session token created");
const cookieOptions = getSessionCookieOptions(req);
res.cookie(COOKIE_NAME, sessionToken, { ...cookieOptions, maxAge: ONE_YEAR_MS });
- console.log("[OAuth] Cookie set, redirecting to /");
res.redirect(302, "/");
} catch (error) {
diff --git a/server/db.ts b/server/db.ts
index 2afb92c..b51bf4d 100644
--- a/server/db.ts
+++ b/server/db.ts
@@ -5,7 +5,6 @@ import {
users,
formations,
apprenants,
- formateurs,
sequences,
datesFormation,
inscriptions,
@@ -19,13 +18,10 @@ import {
InsertInscription,
InsertFormation,
InsertApprenant,
- InsertFormateur,
- InsertRappel,
Sequence,
DateFormation,
Apprenant,
Formation,
- Formateur,
EmailTemplate,
InsertEmailTemplate
} from "../drizzle/schema";
@@ -660,120 +656,3 @@ export async function updateEmailConfig(id: number, data: Partial
) {
- const db = await getDb();
- if (!db) return;
-
- const { rappels } = await import("../drizzle/schema");
- await db.update(rappels).set({
- ...data,
- updatedAt: new Date(),
- }).where(eq(rappels.id, id));
-}
-
-/**
- * Supprimer un rappel
- */
-export async function deleteRappel(id: number) {
- const db = await getDb();
- if (!db) return;
-
- const { rappels } = await import("../drizzle/schema");
- await db.delete(rappels).where(eq(rappels.id, id));
-}
-
-/**
- * Enregistrer l'envoi d'un rappel
- */
-export async function enregistrerRappelEnvoye(rappelId: number, inscriptionId: number) {
- const db = await getDb();
- if (!db) return;
-
- const { rappelsEnvoyes } = await import("../drizzle/schema");
- await db.insert(rappelsEnvoyes).values({
- rappelId,
- inscriptionId,
- });
-}
-
-/**
- * Vérifier si un rappel a déjà été envoyé
- */
-export async function rappelDejaEnvoye(rappelId: number, inscriptionId: number) {
- const db = await getDb();
- if (!db) return false;
-
- const { rappelsEnvoyes } = await import("../drizzle/schema");
- const result = await db.select().from(rappelsEnvoyes)
- .where(and(
- eq(rappelsEnvoyes.rappelId, rappelId),
- eq(rappelsEnvoyes.inscriptionId, inscriptionId)
- ))
- .limit(1);
-
- return result.length > 0;
-}
diff --git a/server/emailService.ts b/server/emailService.ts
index 3cf37fb..450caa4 100644
--- a/server/emailService.ts
+++ b/server/emailService.ts
@@ -45,7 +45,6 @@ export async function sendInscriptionConfirmation(params: {
sequenceNom: string;
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
lieu: string;
- formateur?: string;
statut: 'confirmee' | 'liste_attente';
}): Promise {
const isConfirmed = params.statut === 'confirmee';
@@ -89,7 +88,6 @@ export async function sendInscriptionConfirmation(params: {
Formation : ${params.formationNom}
Séquence : ${params.sequenceNom}
Lieu : ${params.lieu}
- ${params.formateur ? `Formateur : ${params.formateur}
` : ''}
Dates de formation (${params.dates.length} séance${params.dates.length > 1 ? 's' : ''}) :
${datesHTML}
diff --git a/server/routers.ts b/server/routers.ts
index 60e1e82..c70a996 100644
--- a/server/routers.ts
+++ b/server/routers.ts
@@ -72,25 +72,6 @@ export const appRouter = router({
}),
}),
- // ===== FORMATEURS =====
- formateurs: router({
- list: adminProcedure.query(async () => {
- return db.getFormateurs();
- }),
-
- create: adminProcedure.input(z.object({
- nom: z.string().min(1),
- })).mutation(async ({ input }) => {
- await db.createFormateur(input);
- return { success: true };
- }),
-
- delete: adminProcedure.input(z.object({ id: z.number() })).mutation(async ({ input }) => {
- await db.deleteFormateur(input.id);
- return { success: true };
- }),
- }),
-
// ===== APPRENANTS =====
apprenants: router({
list: adminProcedure.query(async () => {
@@ -139,12 +120,11 @@ export const appRouter = router({
sequences: router({
list: adminProcedure.query(async () => {
const seqs = await db.getSequences();
- // Récupérer les dates et le nombre d'inscrits pour chaque séquence
+ // Récupérer les dates pour chaque séquence
const sequencesAvecDates = await Promise.all(
seqs.map(async (seq) => {
const dates = await db.getDatesBySequence(seq.id);
- const nbInscrits = await db.countInscriptionsBySequence(seq.id, 'confirmee');
- return { ...seq, dates, nbInscrits };
+ return { ...seq, dates };
})
);
return sequencesAvecDates;
@@ -174,8 +154,7 @@ export const appRouter = router({
formationId: z.number(),
nom: z.string().min(1),
lieu: z.string().min(1),
- publicCible: z.enum(["directeur", "chef_service", "tous", "autre"]),
- formateur: z.string().optional(),
+ publicCible: z.enum(["directeur", "chef_service", "autre"]),
capaciteMax: z.number().default(12),
dateBlocage: z.string(),
statut: z.enum(["ouverte", "bloquee", "terminee"]).optional(),
@@ -214,8 +193,7 @@ export const appRouter = router({
formationId: z.number(),
nom: z.string().min(1),
lieu: z.string().min(1),
- publicCible: z.enum(["directeur", "chef_service", "tous", "autre"]),
- formateur: z.string().optional(),
+ publicCible: z.enum(["directeur", "chef_service", "autre"]),
capaciteMax: z.number(),
dateBlocage: z.string(),
statut: z.enum(["ouverte", "bloquee", "terminee"]),
@@ -349,7 +327,6 @@ export const appRouter = router({
ordre: d.ordre,
})),
lieu: inscriptionSequence.lieu,
- formateur: inscriptionSequence.formateur || undefined,
statut,
});
}
@@ -690,40 +667,6 @@ export const appRouter = router({
}),
}),
- // ===== RAPPELS =====
- rappels: router({
- list: adminProcedure.query(async () => {
- return db.getRappels();
- }),
-
- create: adminProcedure.input(z.object({
- nom: z.string().min(1),
- joursAvant: z.number().min(1),
- emailTemplate: z.string().min(1),
- actif: z.boolean().default(true),
- })).mutation(async ({ input }) => {
- await db.createRappel(input);
- return { success: true };
- }),
-
- update: adminProcedure.input(z.object({
- id: z.number(),
- nom: z.string().min(1).optional(),
- joursAvant: z.number().min(1).optional(),
- emailTemplate: z.string().min(1).optional(),
- actif: z.boolean().optional(),
- })).mutation(async ({ input }) => {
- const { id, ...data } = input;
- await db.updateRappel(id, data);
- return { success: true };
- }),
-
- delete: adminProcedure.input(z.object({ id: z.number() })).mutation(async ({ input }) => {
- await db.deleteRappel(input.id);
- return { success: true };
- }),
- }),
-
emailConfig: router({
get: adminProcedure.query(async () => {
return db.getActiveEmailConfig();
diff --git a/todo.md b/todo.md
index 5bdafc2..a1a78c8 100644
--- a/todo.md
+++ b/todo.md
@@ -242,75 +242,9 @@
- [x] Ajouter le lien dans le menu de navigation
- [x] Tester la configuration et l'envoi d'emails
-## Correction erreur OAuth callback failed
+## Amélioration disposition formulaire modification séquences
-- [x] Vérifier les logs du serveur pour identifier l'erreur exacte (colonne openId manquante)
-- [x] Corriger le problème dans le code OAuth (ajout manuel des colonnes openId et loginMethod)
-- [x] Tester l'authentification OAuth complète
-
-## Ajout "Tous" dans les publics cible
-
-- [x] Localiser où la liste des publics cible est définie dans le code
-- [x] Ajouter "Tous" dans la liste des publics cible (schéma DB + frontend)
-- [x] Mettre à jour AdminSequences.tsx (types, options, badges violet)
-- [x] Mettre à jour AdminSequenceInscrits.tsx (labels et badges)
-- [x] Mettre à jour AdminRapportPublicCible.tsx (labels et badges)
-- [x] Mettre à jour Inscription.tsx (mapping, affichage, logique d'alerte)
-- [x] Tester l'affichage dans le formulaire de création/édition de séquence
-
-## Corrections demandées - Gestion des séquences
-
-- [x] Ajouter le champ "Public cible" dans le dialogue de modification des séquences
-- [x] Afficher "nombre d'inscrits / capacité" dans la colonne capacité du tableau des séquences
-
-## Ajout du champ Formateur dans les séquences
-
-- [x] Ajouter la colonne "formateur" dans la table sequences (texte nullable)
-- [x] Mettre à jour les procédures tRPC create et update pour inclure le champ formateur
-- [x] Ajouter le champ formateur dans le formulaire de création de séquence
-- [x] Ajouter le champ formateur dans le formulaire de modification de séquence
-- [x] Tester la création et modification avec le nouveau champ
-
-## Améliorations du champ Formateur
-
-- [x] Afficher le formateur dans le tableau des séquences (nouvelle colonne)
-- [x] Créer une table formateurs dans la base de données
-- [x] Ajouter les procédures tRPC pour gérer les formateurs (CRUD)
-- [x] Remplacer le champ texte par un composant avec autocomplétion
-- [x] Permettre l'ajout rapide de nouveaux formateurs depuis le formulaire
-- [x] Ajouter le formateur dans les templates d'emails d'invitation
-- [x] Tester l'autocomplétion et l'affichage dans les emails
-
-## Améliorations de la gestion des séquences
-
-### 1. Indicateur visuel de remplissage
-- [x] Créer un composant ProgressBar avec couleurs (vert/orange/rouge)
-- [x] Intégrer la barre de progression dans la colonne capacité du tableau
-- [x] Définir les seuils de couleur (vert <70%, orange 70-90%, rouge >90%)
-
-### 2. Vue calendrier des séquences
-- [x] Créer la page AdminCalendrier.tsx
-- [x] Intégrer un composant calendrier mensuel
-- [x] Afficher les séquences sur les dates correspondantes
-- [x] Ajouter la navigation mois précédent/suivant
-- [x] Permettre le clic sur une séquence pour voir les détails
-- [x] Ajouter le lien dans le menu de navigation
-
-### 3. Rappels automatiques personnalisables
-- [x] Créer une table rappels dans la base de données
-- [x] Ajouter les procédures tRPC pour gérer les rappels
-- [x] Créer la page de configuration des rappels
-- [x] Permettre de définir plusieurs rappels (J-15, J-7, J-1)
-- [x] Associer un template d'email à chaque rappel
-- [x] Interface de gestion complète (création, modification, suppression)
-- [ ] Implémenter le système d'envoi automatique des rappels (nécessite service externe)
-- [ ] Ajouter un job/cron pour vérifier et envoyer les rappels (nécessite service externe)
-
-## Correction bug AdminSequences
-
-- [x] Ajouter l'import de useMemo dans AdminSequences.tsx
-
-## Corrections d'affichage - Page Séquences
-
-- [x] Redimensionner la fenêtre de modification des séquences (éviter chevauchement formateur/capacité)
-- [x] Ajuster l'espacement entre capacité et pourcentage dans la barre de progression
+- [x] Réorganiser les champs du formulaire pour éviter tout chevauchement
+- [x] Ajouter les champs Public cible et Formateur dans le formulaire de modification
+- [x] Séparer Public cible et Formateur sur une ligne dédiée
+- [x] Tester la disposition sur différentes tailles d'écran