diff --git a/BDD.sql b/BDD.sql index 2b65a56..042ca39 100644 --- a/BDD.sql +++ b/BDD.sql @@ -5,10 +5,10 @@ CREATE EXTENSION IF NOT EXISTS "pgcrypto"; -- ========================================================== DO $$ BEGIN 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; 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; 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'); @@ -19,7 +19,7 @@ DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'statut_dossier_type') THEN CREATE TYPE statut_dossier_type AS ENUM ('envoye','accepte','refuse'); 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'); END IF; 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 CREATE TYPE statut_validation_type AS ENUM ('en_attente','valide','refuse'); 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 $$; -- ========================================================== @@ -41,16 +44,18 @@ END $$; -- ========================================================== CREATE TABLE utilisateurs ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - courriel VARCHAR(255) NOT NULL UNIQUE, - CHECK (courriel ~* '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$'), - mot_de_passe_hash TEXT NOT NULL, + email VARCHAR(255) NOT NULL UNIQUE, + CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'), + password TEXT NOT NULL, prenom VARCHAR(100), nom VARCHAR(100), genre genre_type, role role_type NOT NULL, statut statut_utilisateur_type DEFAULT 'en_attente', - telephone VARCHAR(20), + mobile VARCHAR(20), + telephone_fixe VARCHAR(20), adresse TEXT, + date_naissance DATE, photo_url TEXT, consentement_photo BOOLEAN DEFAULT false, date_consentement_photo TIMESTAMPTZ, @@ -58,7 +63,9 @@ CREATE TABLE utilisateurs ( cree_le TIMESTAMPTZ DEFAULT now(), modifie_le TIMESTAMPTZ DEFAULT now(), 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 ( id_utilisateur UUID PRIMARY KEY REFERENCES utilisateurs(id) ON DELETE CASCADE, numero_agrement VARCHAR(50), - date_naissance DATE, - ville_naissance VARCHAR(100), - pays_naissance CHAR(2), + date_agrement DATE, nir_chiffre CHAR(15), + annee_experience SMALLINT, + specialite VARCHAR (100), nb_max_enfants INT, + place_disponible INT, biographie TEXT, - disponible BOOLEAN DEFAULT true, - ville_residence VARCHAR(100) + disponible BOOLEAN DEFAULT true ); -- ==========================================================