216 lines
8.0 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- 02_seed.sql : Données de test réalistes (conformes à 01_init.sql)
-- - Idempotent : ON CONFLICT DO NOTHING
-- - Utilise des UUID fixes pour faciliter les tests
-- ============================================================
BEGIN;
-- ==============================
-- Utilisateurs (rôles & statuts)
-- ==============================
-- super_admin
INSERT INTO utilisateurs (id, courriel, mot_de_passe_hash, prenom, nom, role, statut)
VALUES ('11111111-1111-1111-1111-111111111111', 'admin@ptits-pas.fr', '$2y$10$hashAdminIci', 'Super', 'Admin', 'super_admin', 'accepte')
ON CONFLICT (id) DO NOTHING;
-- gestionnaire
INSERT INTO utilisateurs (id, courriel, mot_de_passe_hash, prenom, nom, role, statut)
VALUES ('22222222-2222-2222-2222-222222222222', 'gestion@ptits-pas.fr', '$2y$10$hashGestionIci', 'Gina', 'Gestion', 'gestionnaire', 'accepte')
ON CONFLICT (id) DO NOTHING;
-- parent #1
INSERT INTO utilisateurs (id, courriel, mot_de_passe_hash, prenom, nom, role, statut)
VALUES ('33333333-3333-3333-3333-333333333333', 'parent1@example.com', '$2y$10$hashParent1', 'Paul', 'Parent', 'parent', 'accepte')
ON CONFLICT (id) DO NOTHING;
-- co-parent du parent #1
INSERT INTO utilisateurs (id, courriel, mot_de_passe_hash, prenom, nom, role, statut)
VALUES ('44444444-4444-4444-4444-444444444444', 'coparent1@example.com', '$2y$10$hashCoParent1', 'Clara', 'CoParent', 'parent', 'accepte')
ON CONFLICT (id) DO NOTHING;
-- parent #2
INSERT INTO utilisateurs (id, courriel, mot_de_passe_hash, prenom, nom, role, statut)
VALUES ('55555555-5555-5555-5555-555555555555', 'parent2@example.com', '$2y$10$hashParent2', 'Nora', 'Parent', 'parent', 'en_attente')
ON CONFLICT (id) DO NOTHING;
-- assistante maternelle
INSERT INTO utilisateurs (id, courriel, mot_de_passe_hash, prenom, nom, role, statut)
VALUES ('66666666-6666-6666-6666-666666666666', 'am1@example.com', '$2y$10$hashAM1', 'Alice', 'AM', 'am', 'accepte')
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Parents & co-parents (extensions)
-- ==============================
INSERT INTO parents (id_utilisateur, id_co_parent)
VALUES
('33333333-3333-3333-3333-333333333333', '44444444-4444-4444-4444-444444444444'), -- parent1 avec co-parent
('55555555-5555-5555-5555-555555555555', NULL) -- parent2 seul
ON CONFLICT (id_utilisateur) DO NOTHING;
-- ==============================
-- Assistantes maternelles (extension)
-- ==============================
INSERT INTO assistantes_maternelles (id_utilisateur, numero_agrement, nb_max_enfants, disponible, ville_residence, nir_chiffre)
VALUES ('66666666-6666-6666-6666-666666666666', 'AGR-2025-0001', 3, true, 'Lille', '000000000000000')
ON CONFLICT (id_utilisateur) DO NOTHING;
-- ==============================
-- Enfants
-- ==============================
-- Enfant A : déjà né (statut actif)
INSERT INTO enfants (id, prenom, nom, statut, date_naissance, jumeau_multiple)
VALUES ('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'Léo', 'Parent', 'actif', '2022-04-12', false)
ON CONFLICT (id) DO NOTHING;
-- Enfant B : à naître (statut a_naitre)
INSERT INTO enfants (id, prenom, nom, statut, date_prevue_naissance, jumeau_multiple)
VALUES ('bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb', 'Mila', 'Parent', 'a_naitre', '2026-02-15', false)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Liaison N:N parents ↔ enfants
-- ==============================
-- parent1 & co-parent ↔ enfant A
INSERT INTO enfants_parents (id_parent, id_enfant)
VALUES
('33333333-3333-3333-3333-333333333333', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'),
('44444444-4444-4444-4444-444444444444', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa')
ON CONFLICT DO NOTHING;
-- parent1 & parent2 ↔ enfant B
INSERT INTO enfants_parents (id_parent, id_enfant)
VALUES
('33333333-3333-3333-3333-333333333333', 'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb'),
('55555555-5555-5555-5555-555555555555', 'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb')
ON CONFLICT DO NOTHING;
-- ==============================
-- Dossier (parent1 ↔ enfant A)
-- ==============================
INSERT INTO dossiers (id, id_parent, id_enfant, presentation, type_contrat, repas, budget, planning_souhaite, statut)
VALUES (
'dddddddd-dddd-dddd-dddd-dddddddddddd',
'33333333-3333-3333-3333-333333333333',
'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa',
'Besoin garde périscolaire lundi/mardi/jeudi/vendredi.',
'mensuel',
true,
600.00,
'{"lun_ven":{"midi":true,"soir":true}}'::jsonb,
'envoye'
)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Messages (sur le dossier)
-- ==============================
INSERT INTO messages (id, id_dossier, id_expediteur, contenu)
VALUES
('m0000000-0000-0000-0000-000000000001', 'dddddddd-dddd-dddd-dddd-dddddddddddd', '33333333-3333-3333-3333-333333333333', 'Bonjour, nous cherchons une garde périscolaire.'),
('m0000000-0000-0000-0000-000000000002', 'dddddddd-dddd-dddd-dddd-dddddddddddd', '66666666-6666-6666-6666-666666666666', 'Bonjour, je suis disponible les soirs. Discutons du contrat.')
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Contrat (1:1 avec le dossier)
-- ==============================
INSERT INTO contrats (id, id_dossier, planning, tarif_horaire, indemnites_repas, date_debut, statut, signe_parent, signe_am)
VALUES (
'cccccccc-cccc-cccc-cccc-cccccccccccc',
'dddddddd-dddd-dddd-dddd-dddddddddddd',
'{"lun_ven":{"17h-19h":true}}'::jsonb,
12.50,
3.50,
'2025-09-01',
'brouillon',
false,
false
)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Avenant de contrat
-- ==============================
INSERT INTO avenants_contrats (id, id_contrat, modifications, initie_par, statut)
VALUES (
'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee',
'cccccccc-cccc-cccc-cccc-cccccccccccc',
'{"changement_horaire":{"vendredi":{"17h-20h":true}}}'::jsonb,
'33333333-3333-3333-3333-333333333333',
'propose'
)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Événement (absence enfant)
-- ==============================
INSERT INTO evenements (id, type, id_enfant, id_am, id_parent, cree_par, date_debut, date_fin, commentaires, statut, delai_grace, urgence)
VALUES (
'e0000000-0000-0000-0000-000000000001',
'absence_enfant',
'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa',
'66666666-6666-6666-6666-666666666666',
'33333333-3333-3333-3333-333333333333',
'33333333-3333-3333-3333-333333333333',
'2025-09-12',
'2025-09-12',
'Enfant malade (rhume).',
'propose',
'2025-09-15',
false
)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Upload (justificatif lié au dossier)
-- ==============================
INSERT INTO uploads (id, id_utilisateur, id_dossier_lie, fichier_url, type_fichier)
VALUES (
'u0000000-0000-0000-0000-000000000001',
'33333333-3333-3333-3333-333333333333',
'dddddddd-dddd-dddd-dddd-dddddddddddd',
'/uploads/justificatifs/dossier_dddddddd_attestation.pdf',
'application/pdf'
)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Notification (pour le parent1)
-- ==============================
INSERT INTO notifications (id, id_utilisateur, type, contenu, lu)
VALUES (
'n0000000-0000-0000-0000-000000000001',
'33333333-3333-3333-3333-333333333333',
'nouveau_message',
'Vous avez un nouveau message sur le dossier #dddd…',
false
)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Validation (compte de lAM validé)
-- ==============================
INSERT INTO validations (id, id_utilisateur, statut, commentaire, cree_le)
VALUES (
'v0000000-0000-0000-0000-000000000001',
'66666666-6666-6666-6666-666666666666',
'accepte',
'Dossier AM vérifié par gestionnaire.',
NOW()
)
ON CONFLICT (id) DO NOTHING;
-- ==============================
-- Signalement de bug
-- ==============================
INSERT INTO signalements_bugs (id, id_utilisateur, description, cree_le)
VALUES (
'b0000000-0000-0000-0000-000000000001',
'33333333-3333-3333-3333-333333333333',
'Impossible denvoyer un message quand le fichier est trop lourd.',
NOW()
)
ON CONFLICT (id) DO NOTHING;
COMMIT;