Checkpoint: Application SONUM v1.0 - Cartographie des Solutions Numériques FEHAP. Toutes les fonctionnalités implémentées : charte CGU, moteur de recherche multicritères avec tri, Mes Établissements avec accordéons et édition inline, formulaire de saisie guidé en 3 étapes, fiche établissement avec compteur de consultation, prise de contact, Mes Demandes de Contact avec réponse directe, administration SONUM, gestion des rôles (Référent / Gestionnaire), traçabilité, lien espace adhérent FEHAP. 14 tests Vitest passés.

This commit is contained in:
Manus
2026-04-15 12:14:03 -04:00
parent 48bfbc21c0
commit 522d2e3c87
26 changed files with 4638 additions and 198 deletions

View File

@@ -0,0 +1,89 @@
CREATE TABLE `blocs_fonctionnels` (
`id` int AUTO_INCREMENT NOT NULL,
`nom` varchar(255) NOT NULL,
`estValide` boolean NOT NULL DEFAULT true,
`createdAt` timestamp NOT NULL DEFAULT (now()),
CONSTRAINT `blocs_fonctionnels_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `consultations` (
`id` int AUTO_INCREMENT NOT NULL,
`etablissementId` int NOT NULL,
`consultePar` int NOT NULL,
`consulteParNom` varchar(255),
`createdAt` timestamp NOT NULL DEFAULT (now()),
CONSTRAINT `consultations_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `demandes_contact` (
`id` int AUTO_INCREMENT NOT NULL,
`etablissementCibleId` int NOT NULL,
`demandeurId` int NOT NULL,
`demandeurNom` varchar(255),
`demandeurEmail` varchar(320),
`message` text NOT NULL,
`statut` enum('en_attente','repondu','ferme') NOT NULL DEFAULT 'en_attente',
`reponse` text,
`reponsePar` int,
`reponduAt` timestamp,
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `demandes_contact_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `editeurs` (
`id` int AUTO_INCREMENT NOT NULL,
`nom` varchar(255) NOT NULL,
`estValide` boolean NOT NULL DEFAULT true,
`createdAt` timestamp NOT NULL DEFAULT (now()),
CONSTRAINT `editeurs_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `etablissements` (
`id` int AUTO_INCREMENT NOT NULL,
`finess` varchar(20),
`nom` varchar(255) NOT NULL,
`region` varchar(100),
`departement` varchar(100),
`typeActivite` varchar(100),
`tailleEffectifs` varchar(50),
`referentId` int,
`visibilite` enum('tous','gestionnaires') NOT NULL DEFAULT 'tous',
`accepteMiseEnRelation` boolean NOT NULL DEFAULT true,
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `etablissements_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `logiciels_etablissements` (
`id` int AUTO_INCREMENT NOT NULL,
`etablissementId` int NOT NULL,
`solutionId` int NOT NULL,
`etatDeploiement` enum('demarrage','en_cours','operationnel','en_remplacement') NOT NULL,
`modeHebergement` enum('hds','on_premise','hybride'),
`modeFacturation` enum('saas','achat_maintenance','location'),
`interoperabilite` enum('non','oui_interface','oui_eai'),
`versionMajeure` varchar(50),
`commentaire` text,
`contactNom` varchar(255),
`contactFonction` varchar(255),
`contactEmail` varchar(320),
`saisiePar` int,
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `logiciels_etablissements_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `solutions` (
`id` int AUTO_INCREMENT NOT NULL,
`nom` varchar(255) NOT NULL,
`editeurId` int NOT NULL,
`blocFonctionnelId` int,
`estValide` boolean NOT NULL DEFAULT true,
`createdAt` timestamp NOT NULL DEFAULT (now()),
CONSTRAINT `solutions_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
ALTER TABLE `users` ADD `sonumRole` enum('referent','gestionnaire') DEFAULT 'referent' NOT NULL;--> statement-breakpoint
ALTER TABLE `users` ADD `cguAccepted` boolean DEFAULT false NOT NULL;--> statement-breakpoint
ALTER TABLE `users` ADD `cguAcceptedAt` timestamp;