modification de la base de donnée

This commit is contained in:
951095 2025-09-08 11:07:16 +02:00
parent 5c21597826
commit 228e46c59d

33
BDD.sql
View File

@ -5,10 +5,10 @@ CREATE EXTENSION IF NOT EXISTS "pgcrypto";
-- ========================================================== -- ==========================================================
DO $$ BEGIN DO $$ BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'role_type') THEN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'role_type') THEN
CREATE TYPE role_type AS ENUM ('parent', 'gestionnaire', 'super_admin', 'assistante_maternelle'); CREATE TYPE role_type AS ENUM ('parent', 'gestionnaire', 'super_admin', 'administrateur', 'assistante_maternelle');
END IF; END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'genre_type') THEN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'genre_type') THEN
CREATE TYPE genre_type AS ENUM ('H', 'F', 'Autre'); CREATE TYPE genre_type AS ENUM ('H', 'F');
END IF; END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_utilisateur_type') THEN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_utilisateur_type') THEN
CREATE TYPE statut_utilisateur_type AS ENUM ('en_attente','actif','suspendu'); CREATE TYPE statut_utilisateur_type AS ENUM ('en_attente','actif','suspendu');
@ -19,7 +19,7 @@ DO $$ BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_dossier_type') THEN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_dossier_type') THEN
CREATE TYPE statut_dossier_type AS ENUM ('envoye','accepte','refuse'); CREATE TYPE statut_dossier_type AS ENUM ('envoye','accepte','refuse');
END IF; END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_contrat_type') THEN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_contrat_type') THEN
CREATE TYPE statut_contrat_type AS ENUM ('brouillon','en_attente_signature','valide','resilie'); CREATE TYPE statut_contrat_type AS ENUM ('brouillon','en_attente_signature','valide','resilie');
END IF; END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_avenant_type') THEN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_avenant_type') THEN
@ -34,6 +34,9 @@ DO $$ BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_validation_type') THEN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_validation_type') THEN
CREATE TYPE statut_validation_type AS ENUM ('en_attente','valide','refuse'); CREATE TYPE statut_validation_type AS ENUM ('en_attente','valide','refuse');
END IF; END IF;
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'situation_familiale_type') THEN
CREATE TYPE situation_familiale_type AS ENUM ('celibataire','marie','concubinage','pacse','separe','divorce','veuf','parent_isole');
END IF;
END $$; END $$;
-- ========================================================== -- ==========================================================
@ -41,16 +44,18 @@ END $$;
-- ========================================================== -- ==========================================================
CREATE TABLE utilisateurs ( CREATE TABLE utilisateurs (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(), id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
courriel VARCHAR(255) NOT NULL UNIQUE, email VARCHAR(255) NOT NULL UNIQUE,
CHECK (courriel ~* '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$'), CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'),
mot_de_passe_hash TEXT NOT NULL, password TEXT NOT NULL,
prenom VARCHAR(100), prenom VARCHAR(100),
nom VARCHAR(100), nom VARCHAR(100),
genre genre_type, genre genre_type,
role role_type NOT NULL, role role_type NOT NULL,
statut statut_utilisateur_type DEFAULT 'en_attente', statut statut_utilisateur_type DEFAULT 'en_attente',
telephone VARCHAR(20), mobile VARCHAR(20),
telephone_fixe VARCHAR(20),
adresse TEXT, adresse TEXT,
date_naissance DATE,
photo_url TEXT, photo_url TEXT,
consentement_photo BOOLEAN DEFAULT false, consentement_photo BOOLEAN DEFAULT false,
date_consentement_photo TIMESTAMPTZ, date_consentement_photo TIMESTAMPTZ,
@ -58,7 +63,9 @@ CREATE TABLE utilisateurs (
cree_le TIMESTAMPTZ DEFAULT now(), cree_le TIMESTAMPTZ DEFAULT now(),
modifie_le TIMESTAMPTZ DEFAULT now(), modifie_le TIMESTAMPTZ DEFAULT now(),
ville VARCHAR(150), ville VARCHAR(150),
code_postal VARCHAR(10) code_postal VARCHAR(10),
profession VARCHAR(150),
situation_familiale situation_familiale_type
); );
-- ========================================================== -- ==========================================================
@ -67,14 +74,14 @@ CREATE TABLE utilisateurs (
CREATE TABLE assistantes_maternelles ( CREATE TABLE assistantes_maternelles (
id_utilisateur UUID PRIMARY KEY REFERENCES utilisateurs(id) ON DELETE CASCADE, id_utilisateur UUID PRIMARY KEY REFERENCES utilisateurs(id) ON DELETE CASCADE,
numero_agrement VARCHAR(50), numero_agrement VARCHAR(50),
date_naissance DATE, date_agrement DATE,
ville_naissance VARCHAR(100),
pays_naissance CHAR(2),
nir_chiffre CHAR(15), nir_chiffre CHAR(15),
annee_experience SMALLINT,
specialite VARCHAR (100),
nb_max_enfants INT, nb_max_enfants INT,
place_disponible INT,
biographie TEXT, biographie TEXT,
disponible BOOLEAN DEFAULT true, disponible BOOLEAN DEFAULT true
ville_residence VARCHAR(100)
); );
-- ========================================================== -- ==========================================================