﻿
CREATE EXTENSION IF NOT EXISTS pgcrypto;

-- Ensure legacy seed inserts remain valid with guest-actor schema
ALTER TABLE signalements ALTER COLUMN actor_type SET DEFAULT 'AUTH_USER';
ALTER TABLE signalement_timeline ALTER COLUMN actor_type SET DEFAULT 'AUTH_USER';
ALTER TABLE notes_internes ALTER COLUMN actor_type SET DEFAULT 'AUTH_USER';
ALTER TABLE discussions ALTER COLUMN actor_type SET DEFAULT 'AUTH_USER';
ALTER TABLE messages ALTER COLUMN actor_type SET DEFAULT 'AUTH_USER';

-- ================================================================================================
-- PHASE 1: INSERT ROLES
-- ================================================================================================
INSERT INTO roles (id, nom, description, permissions, date_creation) VALUES
('550e8400-e29b-41d4-a716-446655440001', 'ADMIN_SYSTEME', 
 'Administrateur avec accès complet au système',
 '["user:create", "user:read", "user:update", "user:delete", "report:read", "report:update", "report:delete", "settings:manage"]',
 '2026-01-01 08:00:00'),

('550e8400-e29b-41d4-a716-446655440002', 'GESTIONNAIRE',
 'Gestionnaire - Traitement des signalements et support',
 '["report:read", "report:update", "discussion:read", "discussion:write", "note:create"]',
 '2026-01-01 08:00:00'),

('550e8400-e29b-41d4-a716-446655440004', 'UTILISATEUR',
 'Utilisateur standard - Étudiant ou Personnel',
 '["report:create", "discussion:read", "discussion:write", "post:read", "post:create", "event:read"]',
 '2026-01-01 08:00:00');

-- ================================================================================================
-- PHASE 2: INSERT TEAM MEMBERS
-- ================================================================================================
INSERT INTO equipe (id, utilisateur_id, email, nom, prenom, type_utilisateur, est_actif, perimetre_assigne, date_creation) VALUES
('650e8400-e29b-41d4-a716-446655440001', NULL, 'cellule.genre@inphb.ci', 'Cellule', 'Genre', 'GESTIONNAIRE', TRUE, 'Cellule Genre INPHB', '2026-01-05 09:00:00'),
('650e8400-e29b-41d4-a716-446655440002', NULL, 'support.psy@inphb.ci', 'Support', 'Psychologique', 'GESTIONNAIRE', TRUE, 'Support Psychologique', '2026-01-05 09:00:00');

-- ================================================================================================
-- PHASE 3: INSERT USERS
-- ================================================================================================
-- Mots de passe hashés (bcrypt) pour 'password123'

INSERT INTO utilisateurs (id, email, mot_de_passe_hash, nom, prenom, type_utilisateur, bureau_genre_id, telephone, filiere, campus, avatar_url, est_actif, premiere_connexion, date_creation, derniere_connexion) VALUES

-- Administrateur
('750e8400-e29b-41d4-a716-446655440001', 
 'admin@inphb.ci',
 '$2b$12$iVQ.aYyhpdwgwLJfopJ8D.jn4rrhH8nPXxRv7fEBomigch9H.gUQG',
 'Koné',
 'Amadou',
 'ADMIN_SYSTEME',
 'BGP-001',
 '+2250701020304',
 'Administration',
 'Campus Principal Yamoussoukro',
 NULL,
 TRUE,
 FALSE,
 '2026-01-02 08:30:00',
 '2026-03-26 09:00:00'),

-- Gestionnaire (Staff)
('750e8400-e29b-41d4-a716-446655440002',
 'gestionnaire@inphb.ci',
 '$2b$12$xMjyAMOK0D/g2X8IxehZQO0TpKjfkIf.gvR1wAr45oTf6tyytVrmS',
 'Diallo',
 'Fatou',
 'GESTIONNAIRE',
 'BGP-001',
 '+2250702030405',
 'Ressources Humaines',
 'Campus Principal Yamoussoukro',
 NULL,
 TRUE,
 FALSE,
 '2026-01-05 10:00:00',
 '2026-03-26 14:00:00'),

-- Utilisateurs Étudiants (Dates d''inscription variées)
('750e8400-e29b-41d4-a716-446655440003',
 'kouame.jean@inphb.ci',
 '$2b$12$/4RSFZUNOVtkETyXcYuLVe3PRYR7WR9NpG3qp36G8MnOS5NVt3yIS',
 'Kouamé',
 'Jean',
 'UTILISATEUR',
 NULL,
 '+2250703040506',
 'Génie Informatique',
 'Campus Principal Yamoussoukro',
 NULL,
 TRUE,
 FALSE,
 '2026-01-15 12:00:00',
 '2026-03-24 18:30:00'),

('750e8400-e29b-41d4-a716-446655440004',
 'bamba.astou@inphb.ci',
 '$2b$12$95i6PNIlTKmaPNBBcQNv1.Il1kAuSUIkOtmX0s0UaBsPkf5JpIVeK',
 'Bamba',
 'Astou',
 'UTILISATEUR',
 NULL,
 '+2250704050607',
 'Commerce International',
 'Campus Annexe Abidjan',
 NULL,
 TRUE,
 FALSE,
 '2026-02-10 09:00:00',
 '2026-03-20 11:15:00'),

('750e8400-e29b-41d4-a716-446655440005',
 'silue.drissa@inphb.ci',
 '$2b$12$DK9WMltcU6oupCd7xh43be6OSboEkpII7dfrvXzRuWvcCUO/e/6qa',
 'Silué',
 'Drissa',
 'UTILISATEUR',
 NULL,
 '+2250705060708',
 'Génie Civil',
 'Campus Principal Yamoussoukro',
 NULL,
 TRUE,
 FALSE,
 '2026-01-20 14:00:00',
 '2026-03-26 08:45:00'),

-- Utilisateur inactif pour test de edge case
('750e8400-e29b-41d4-a716-446655440006',
 'test.inactif@inphb.ci',
 '$2b$12$oOM3Y/wH/23mmo2Ghvi0HuGxKKmB5N2FSIY/Ze4fsTUSW2aNYm6JC',
 'Test',
 'Inactif',
 'UTILISATEUR',
 NULL,
 NULL,
 'Comptabilité',
 'Campus Principal',
 NULL,
 FALSE,
 FALSE,
 '2026-02-01 10:00:00',
 NULL);

-- ================================================================================================
-- PHASE 4: INSERT SESSIONS
-- ================================================================================================
INSERT INTO sessions (id, utilisateur_id, jti, est_actif, date_creation, date_expiration, appareil, localisation) VALUES
('850e8400-e29b-41d4-a716-446655440001', '750e8400-e29b-41d4-a716-446655440001', 'jti-admin-session', TRUE, '2026-03-25 09:00:00', NOW() + INTERVAL '7 days', 'Chrome/Desktop', 'Yamoussoukro - Admin'),
('850e8400-e29b-41d4-a716-446655440002', '750e8400-e29b-41d4-a716-446655440002', 'jti-staff-session', TRUE, '2026-03-26 08:30:00', NOW() + INTERVAL '7 days', 'Firefox/Desktop', 'Yamoussoukro - Bureau Genre'),
('850e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440003', 'jti-jean-session', TRUE, '2026-03-26 18:00:00', NOW() + INTERVAL '1 day', 'Mobile App', 'Yamoussoukro - Amphithéâtre');

-- ================================================================================================
-- PHASE 5: INSERT SIGNALEMENTS (Volume Augmenté pour Stats)
-- ================================================================================================
-- Nettoyage préalable pour éviter les doublons si on rejoue le script
DELETE FROM signalement_timeline;
DELETE FROM notes_internes;
DELETE FROM signalements;

INSERT INTO signalements (id, reference, titre, description, type, statut, est_traite, mode_identification, 
                         date_incident, lieu_incident, auteur_presume, a_temoins, priorite,
                         utilisateur_id, gestionnaire_id, bureau_genre_id, date_creation, date_assignation, date_traitement) VALUES
-- JANVIER (Données historiques - surtout clôturées)
('950e8400-e29b-41d4-a716-446655440001', 'SIG-2026-001', 'Discrimination lors des travaux de groupe', 'Refus de travail basé sur l''origine ethnique présumée.', 'DISCRIMINATION', 'CLOTURE', TRUE, 'NOMINATIF', '2026-01-05 10:00:00', 'Salle 101 - Bat A', 'Étudiant L2 Droit', TRUE, 'BASSE', '750e8400-e29b-41d4-a716-446655440005', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-01-05 12:00:00', '2026-01-05 14:00:00', '2026-01-10 09:00:00'),
('950e8400-e29b-41d4-a716-446655440002', 'SIG-2026-002', 'Vols répétés au vestiaire', 'Disparition d''effets personnels et d''argent.', 'AUTRE', 'CLOTURE', TRUE, 'ANONYME', '2026-01-10 15:00:00', 'Vestiaire Garçons - Gym', 'Inconnu', FALSE, 'MOYENNE', NULL, '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-01-10 18:00:00', '2026-01-11 09:00:00', '2026-01-15 10:00:00'),
('950e8400-e29b-41d4-a716-446655440003', 'SIG-2026-003', 'Harcèlement via WhatsApp', 'Messages insistants et menaces non désirées.', 'HARCELEMENT_MORAL', 'TRAITE', TRUE, 'NOMINATIF', '2026-01-12 20:00:00', 'En ligne', 'Étudiant L3 Info', FALSE, 'HAUTE', '750e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-01-13 08:00:00', '2026-01-13 10:00:00', '2026-01-20 15:00:00'),
('950e8400-e29b-41d4-a716-446655440004', 'SIG-2026-004', 'Conflit physique Restaurant Universitaire', 'Dispute ayant dégénéré en échange de coups.', 'VIOLENCE', 'CLOTURE', TRUE, 'NOMINATIF', '2026-01-18 12:30:00', 'Restaurant Universitaire', 'Groupe étudiants invités', TRUE, 'HAUTE', '750e8400-e29b-41d4-a716-446655440004', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-01-18 13:00:00', '2026-01-18 14:00:00', '2026-01-25 10:00:00'),

-- FEVRIER (Mix de statuts)
('950e8400-e29b-41d4-a716-446655440005', 'SIG-2026-005', 'Harcèlement moral par un enseignant', 'Pressions constantes pour des notes non méritées.', 'HARCELEMENT_MORAL', 'TRAITE', TRUE, 'NOMINATIF', '2026-02-02 09:00:00', 'Amphi 400 - Sciences', 'Professeur vacataire', FALSE, 'HAUTE', '750e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-02-02 11:00:00', '2026-02-03 09:00:00', '2026-02-28 16:00:00'),
('950e8400-e29b-41d4-a716-446655440006', 'SIG-2026-006', 'Problème d''éclairage sécurité', 'Zone sombre dangereuse le soir.', 'AUTRE', 'CLOTURE', TRUE, 'ANONYME', '2026-02-05 22:00:00', 'Parking Nord - Campus', 'N/A', FALSE, 'BASSE', NULL, '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-02-06 08:00:00', '2026-02-06 09:00:00', '2026-02-10 10:00:00'),
('950e8400-e29b-41d4-a716-446655440007', 'SIG-2026-007', 'Insultes à caractère sexiste', 'Cris et sifflements sexistes sur le terrain de sport.', 'HARCELEMENT_SEXUEL', 'EN_COURS', FALSE, 'ANONYME', '2026-02-10 17:00:00', 'Terrain Sport', 'Joueurs de foot', TRUE, 'MOYENNE', NULL, '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-02-10 19:00:00', '2026-02-11 10:00:00', NULL),
('950e8400-e29b-41d4-a716-446655440008', 'SIG-2026-008', 'Menaces de mort', 'Menaces suite à un conflit d''argent.', 'VIOLENCE', 'EN_COURS', FALSE, 'NOMINATIF', '2026-02-14 08:00:00', 'Cité U - Bâtiment C', 'Camarade de chambre', FALSE, 'CRITIQUE', '750e8400-e29b-41d4-a716-446655440005', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-02-14 09:00:00', '2026-02-14 09:30:00', NULL),
('950e8400-e29b-41d4-a716-446655440009', 'SIG-2026-009', 'Discrimination handicap', 'Moqueries répétées sur un handicap moteur.', 'DISCRIMINATION', 'ASSIGNE', FALSE, 'NOMINATIF', '2026-02-20 14:00:00', 'Bibliothèque', 'Groupe L1', TRUE, 'HAUTE', '750e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-02-20 16:00:00', '2026-02-21 08:00:00', NULL),
('950e8400-e29b-41d4-a716-446655440010', 'SIG-2026-010', 'Propos homophobes', 'Insultes verbales dans les couloirs.', 'DISCRIMINATION', 'CLOTURE', TRUE, 'ANONYME', '2026-02-25 11:00:00', 'Couloir Bat B', 'Inconnu', FALSE, 'MOYENNE', NULL, '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-02-25 12:00:00', '2026-02-26 09:00:00', '2026-02-28 10:00:00'),

-- MARS (Activité forte - Nouveaux et En cours)
('950e8400-e29b-41d4-a716-446655440011', 'SIG-2026-011', 'Comportement inapproprié toilettes', 'Tentative d''approche voyeuriste.', 'HARCELEMENT_SEXUEL', 'EN_COURS', FALSE, 'ANONYME', '2026-03-01 13:00:00', 'Toilettes RDC - Admin', 'Adulte non identifié', FALSE, 'CRITIQUE', NULL, '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-03-01 14:00:00', '2026-03-02 09:00:00', NULL),
('950e8400-e29b-41d4-a716-446655440012', 'SIG-2026-012', 'Racket devant le campus', 'Demande d''argent forcée à l''entrée.', 'VIOLENCE', 'EN_COURS', FALSE, 'NOMINATIF', '2026-03-05 18:00:00', 'Entrée Principale', 'Jeunes extérieurs', TRUE, 'CRITIQUE', '750e8400-e29b-41d4-a716-446655440004', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-03-05 19:00:00', '2026-03-06 08:00:00', NULL),
('950e8400-e29b-41d4-a716-446655440013', 'SIG-2026-013', 'VBG - Violences conjugales', 'Coups constatés sur le campus par le compagnon.', 'VBG', 'EN_COURS', FALSE, 'NOMINATIF', '2026-03-08 20:00:00', 'Parc campus', 'Petit ami étudiant', TRUE, 'CRITIQUE', '750e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-03-08 21:00:00', '2026-03-09 08:00:00', NULL),
('950e8400-e29b-41d4-a716-446655440014', 'SIG-2026-014', 'Intimidation examen', 'Menaces pour obtenir de l''aide à l''examen.', 'HARCELEMENT_MORAL', 'ASSIGNE', FALSE, 'NOMINATIF', '2026-03-10 08:00:00', 'Salle Examen 12', 'Étudiant redoublant', FALSE, 'HAUTE', '750e8400-e29b-41d4-a716-446655440005', '750e8400-e29b-41d4-a716-446655440002', 'BGP-001', '2026-03-10 11:00:00', '2026-03-10 14:00:00', NULL),
('950e8400-e29b-41d4-a716-446655440015', 'SIG-2026-015', 'Vente illicite de notes', 'Suspicion de corruption pour notes.', 'AUTRE', 'NOUVEAU', FALSE, 'ANONYME', '2026-03-12 10:00:00', 'Secretariat', 'Administratif suspect', FALSE, 'HAUTE', NULL, NULL, 'BGP-001', '2026-03-12 12:00:00', NULL, NULL),
('950e8400-e29b-41d4-a716-446655440016', 'SIG-2026-016', 'Agression verbale Doyen', 'Échange virulent et irrespectueux.', 'HARCELEMENT_MORAL', 'NOUVEAU', FALSE, 'NOMINATIF', '2026-03-15 14:00:00', 'Bureau Doyen', 'Membre staff', TRUE, 'MOYENNE', '750e8400-e29b-41d4-a716-446655440004', NULL, 'BGP-001', '2026-03-15 15:00:00', NULL, NULL),
('950e8400-e29b-41d4-a716-446655440017', 'SIG-2026-017', 'Cyberharcèlement groupe Facebook', 'Diffusion de rumeurs infondées.', 'HARCELEMENT_MORAL', 'NOUVEAU', FALSE, 'ANONYME', '2026-03-18 16:00:00', 'Réseaux Sociaux', 'Groupe "INPHB Comm"', TRUE, 'MOYENNE', NULL, NULL, 'BGP-001', '2026-03-18 17:00:00', NULL, NULL),
('950e8400-e29b-41d4-a716-446655440018', 'SIG-2026-018', 'Bagarre générale RU', 'Queue mal gérée, tension explosive.', 'VIOLENCE', 'NOUVEAU', FALSE, 'NOMINATIF', '2026-03-20 12:00:00', 'RU Central', 'Architectes vs Ingénieurs', TRUE, 'HAUTE', '750e8400-e29b-41d4-a716-446655440003', NULL, 'BGP-001', '2026-03-20 13:00:00', NULL, NULL),
('950e8400-e29b-41d4-a716-446655440019', 'SIG-2026-019', 'VBG - Harcèlement de rue', 'Sifflements et commentaires déplacés.', 'VBG', 'NOUVEAU', FALSE, 'ANONYME', '2026-03-22 08:00:00', 'Avenue Campus', 'Motocyclistes', FALSE, 'BASSE', NULL, NULL, 'BGP-001', '2026-03-22 09:00:00', NULL, NULL),
('950e8400-e29b-41d4-a716-446655440020', 'SIG-2026-020', 'Vol d''ordinateur portable', 'Disparition en cours de TD.', 'AUTRE', 'NOUVEAU', FALSE, 'NOMINATIF', '2026-03-25 10:00:00', 'Salle Info 2', 'Inconnu', FALSE, 'MOYENNE', '750e8400-e29b-41d4-a716-446655440005', NULL, 'BGP-001', '2026-03-25 11:00:00', NULL, NULL);

-- ================================================================================================
-- PHASE 6: INSERT SIGNALEMENT TIMELINE
-- ================================================================================================
INSERT INTO signalement_timeline (id, signalement_id, type_evenement, description, "timestamp", effectue_par_id, effectue_par_nom, valeur_precedente, nouvelle_valeur) VALUES
-- Activité Janvier
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440001', 'CREATION', 'Signalement créé', '2026-01-05 12:00:00', '750e8400-e29b-41d4-a716-446655440005', 'Drissa Silué', NULL, NULL),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440001', 'STATUS_CHANGE', 'Dossier pris en charge', '2026-01-05 14:00:00', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'NOUVEAU', 'ASSIGNE'),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440001', 'STATUS_CHANGE', 'Clôture après médiation', '2026-01-10 09:00:00', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'EN_COURS', 'CLOTURE'),
-- Activité Mars (Beaucoup de mouvements pour les graphs)
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440013', 'CREATION', 'Signalement VBG critique', '2026-03-08 21:00:00', '750e8400-e29b-41d4-a716-446655440003', 'Jean Kouamé', NULL, NULL),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440013', 'STATUS_CHANGE', 'Urgence déclenchée', '2026-03-08 21:05:00', '750e8400-e29b-41d4-a716-446655440001', 'Amadou Koné', 'NOUVEAU', 'ASSIGNE'),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440013', 'STATUS_CHANGE', 'Enquête ouverte', '2026-03-09 08:00:00', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'ASSIGNE', 'EN_COURS'),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440012', 'CREATION', 'Racket signalé', '2026-03-05 19:00:00', '750e8400-e29b-41d4-a716-446655440004', 'Astou Bamba', NULL, NULL),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440012', 'STATUS_CHANGE', 'Sécurité alertée', '2026-03-06 08:00:00', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'NOUVEAU', 'EN_COURS');

-- ================================================================================================
-- PHASE 7: INSERT NOTES INTERNAL
-- ================================================================================================
INSERT INTO notes_internes (id, signalement_id, auteur_id, contenu, date_creation) VALUES
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440008', '750e8400-e29b-41d4-a716-446655440002', 'Cas sensible. L''auteur présumé niait les faits. Recommandation: séparation des chambres en cité U.', '2026-02-15 10:00:00'),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440013', '750e8400-e29b-41d4-a716-446655440002', 'Victime très choquée. Contact avec les parents effectué. Orientation vers psychologue du campus.', '2026-03-09 08:30:00'),
(gen_random_uuid(), '950e8400-e29b-41d4-a716-446655440005', '750e8400-e29b-41d4-a716-446655440002', 'L''enseignant a été entendu. Il s''agit d''un malentendu sur les méthodes pédagogiques. Médiation réussie.', '2026-02-28 15:00:00');

-- ================================================================================================
-- PHASE 8: INSERT DISCUSSIONS & MESSAGES
-- ================================================================================================
INSERT INTO discussions (id, titre, utilisateur_id, gestionnaire_id, signalement_id, signalement_reference, dernier_message, dernier_message_at, non_lus_utilisateur, non_lus_gestionnaire, est_archivee, date_creation) VALUES
('c50e8400-e29b-41d4-a716-446655440001', 'Suivi SIG-2026-005', '750e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440002', '950e8400-e29b-41d4-a716-446655440005', 'SIG-2026-005', 'Votre dossier a été classé sans suite suite à la médiation.', '2026-03-01 10:30:00', 0, 0, TRUE, '2026-02-06 14:00:00'),
('c50e8400-e29b-41d4-a716-446655440002', 'Urgence: Menaces', '750e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440002', '950e8400-e29b-41d4-a716-446655440013', 'SIG-2026-013', 'Je suis au bureau de la sécurité, on arrive chez vous.', '2026-03-26 09:15:00', 0, 1, FALSE, '2026-03-26 08:05:00');

INSERT INTO messages (id, discussion_id, auteur_id, auteur_nom, contenu, type, est_lu, numero_sequence, date_creation) VALUES
-- Discussion 1 (Fermée)
(gen_random_uuid(), 'c50e8400-e29b-41d4-a716-446655440001', '750e8400-e29b-41d4-a716-446655440003', 'Jean Kouamé', 'Bonjour, j''ai peur de croiser ce professeur.', 'USER', TRUE, 1, '2026-02-06 14:05:00'),
(gen_random_uuid(), 'c50e8400-e29b-41d4-a716-446655440001', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'Nous allons organiser une médiation. Ne vous inquiétez pas.', 'SUPPORT', TRUE, 2, '2026-02-07 09:00:00'),
(gen_random_uuid(), 'c50e8400-e29b-41d4-a716-446655440001', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'Votre dossier a été classé sans suite suite à la médiation.', 'SUPPORT', TRUE, 3, '2026-03-01 10:30:00'),
-- Discussion 2 (Active)
(gen_random_uuid(), 'c50e8400-e29b-41d4-a716-446655440002', '750e8400-e29b-41d4-a716-446655440003', 'Jean Kouamé', 'Il vient de m''envoyer un message de menace again.', 'USER', TRUE, 1, '2026-03-26 08:05:00'),
(gen_random_uuid(), 'c50e8400-e29b-41d4-a716-446655440002', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'Restez où vous êtes. J''appelle la sécurité.', 'SUPPORT', TRUE, 2, '2026-03-26 08:30:00'),
(gen_random_uuid(), 'c50e8400-e29b-41d4-a716-446655440002', '750e8400-e29b-41d4-a716-446655440002', 'Fatou Diallo', 'Je suis au bureau de la sécurité, on arrive chez vous.', 'SUPPORT', FALSE, 3, '2026-03-26 09:15:00');

-- ================================================================================================
-- PHASE 9: INSERT POSTES (Forum & Témoignages Augmentés)
-- ================================================================================================
DELETE FROM commentaires;
DELETE FROM reactions;
DELETE FROM postes;

INSERT INTO postes (id, titre, contenu, auteur_id, statut, est_epingle, categorie, tags, date_creation) VALUES
-- Pins & Infos
('e50e8400-e29b-41d4-a716-446655440001', 'Charte de bonnes conduites 2026', 'Rappel des règles de vie en communauté sur le campus INPHB. Respect, tolérance et devoir d''entraide.', '750e8400-e29b-41d4-a716-446655440001', 'APPROUVER', TRUE, 'INFORMATION', '["charte", "reglement"]', '2026-01-10 10:00:00'),
('e50e8400-e29b-41d4-a716-446655440002', 'Numéros d''urgence', 'Liste des contacts utiles en cas de danger immédiat ou de détresse.', '750e8400-e29b-41d4-a716-446655440002', 'APPROUVER', TRUE, 'RESSOURCE', '["urgence", "contact"]', '2026-01-12 09:00:00'),

-- Témoignages (Pour graphique d'engagement)
('e50e8400-e29b-41d4-a716-446655440003', 'Témoignage : J''ai surmonté ma peur', 'Il y a un an, j''ai subi du harcèlement. Aujourd''hui je veux vous dire que parler ça aide. N''ayez pas peur de signaler.', '750e8400-e29b-41d4-a716-446655440004', 'APPROUVER_IA', FALSE, 'TEMOIGNAGE', '["temoignage", "courage"]', '2026-02-14 15:00:00'),
('e50e8400-e29b-41d4-a716-446655440004', 'Mon expérience au Bureau du Genre', 'Je suis allée les voir la semaine dernière. Accueil chaleureux, écoute active. Merci à l''équipe.', '750e8400-e29b-41d4-a716-446655440003', 'APPROUVER_IA', FALSE, 'TEMOIGNAGE', '["support", "temoignage"]', '2026-03-05 11:00:00'),
('e50e8400-e29b-41d4-a716-446655440005', 'Relecture : Le consentement', 'Petit rappel : "Non" c''est "Non". Même en couple. Article intéressant à lire sur le sujet.', '750e8400-e29b-41d4-a716-446655440005', 'NOUVEAU', FALSE, 'EDUCATION', '["consentement", "education"]', '2026-03-10 14:00:00'),
('e50e8400-e29b-41d4-a716-446655440006', 'Témoignage : Racisme ordinaire', 'On pense que ça n''arrive qu''aux autres. Mais les blagues "beaufs" sur l''ethnie, ça blesse aussi.', '750e8400-e29b-41d4-a716-446655440004', 'REJETER_IA', FALSE, 'TEMOIGNAGE', '["racisme", "temoignage"]', '2026-03-15 18:30:00'),
('e50e8400-e29b-41d4-a716-446655440007', 'Atelier Self-Défense - Retour', 'Super atelier hier ! On en redemande. Merci aux coachs.', '750e8400-e29b-41d4-a716-446655440003', 'ARCHIVER', FALSE, 'EVENEMENT', '["atelier", "sport"]', '2026-03-22 18:00:00'),
('e50e8400-e29b-41d4-a716-446655440008', 'Discussion : Stress des examens', 'Le stress nous rend vulnérables. Comment gérez-vous la pression sans craquer ?', '750e8400-e29b-41d4-a716-446655440005', 'REJETER', FALSE, 'DISCUSSION', '["sante", "stress"]', '2026-03-25 09:00:00');

UPDATE postes
SET approuver_par_id = '750e8400-e29b-41d4-a716-446655440002'
WHERE statut = 'APPROUVER';

-- ================================================================================================
-- PHASE 10: INSERT COMMENTS & REACTIONS (Engagement)
-- ================================================================================================
INSERT INTO commentaires (id, poste_id, auteur_id, contenu, date_creation) VALUES
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440003', 'Merci pour ce partage, ça touche beaucoup.', '2026-02-14 16:00:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440005', 'Courage ! Tu es un exemple.', '2026-02-14 16:30:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440004', '750e8400-e29b-41d4-a716-446655440004', 'Ravi que ça se passe bien pour toi.', '2026-03-05 12:00:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440006', '750e8400-e29b-41d4-a716-446655440003', 'Très courageux de parler de ça. +1', '2026-03-15 20:00:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440008', '750e8400-e29b-41d4-a716-446655440004', 'Moi je fais du sport pour évacuer.', '2026-03-25 09:30:00');

INSERT INTO reactions (id, poste_id, auteur_id, type, date_creation) VALUES
-- Réactions sur le post courage (ID ...003)
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440003', 'HEART', '2026-02-14 15:05:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440004', 'SUPPORT', '2026-02-14 15:30:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440005', 'HEART', '2026-02-14 18:00:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440003', '750e8400-e29b-41d4-a716-446655440001', 'LIKE', '2026-02-15 09:00:00'),
-- Réactions sur expérience BG (ID ...004)
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440004', '750e8400-e29b-41d4-a716-446655440004', 'LIKE', '2026-03-05 11:05:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440004', '750e8400-e29b-41d4-a716-446655440003', 'HEART', '2026-03-05 11:10:00'),
-- Réactions sur Racisme (ID ...006)
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440006', '750e8400-e29b-41d4-a716-446655440003', 'SUPPORT', '2026-03-15 19:00:00'),
(gen_random_uuid(), 'e50e8400-e29b-41d4-a716-446655440006', '750e8400-e29b-41d4-a716-446655440005', 'ANGRY', '2026-03-15 19:30:00');

-- ================================================================================================
-- PHASE 11: INSERT CALENDAR EVENTS
-- ================================================================================================
DELETE FROM inscriptions_evenements;
DELETE FROM calendriers;

INSERT INTO calendriers (id, titre, description, type, statut, date_debut, date_fin, lieu, est_en_ligne, nb_max_participants, nb_participants_actuels, organisateur_id, date_creation) VALUES
-- Événement passé (Janvier)
('b50e8400-e29b-41d4-a716-446655440001', 'Semaine de sensibilisation', 'Grande campagne de sensibilisation contre les VBG.', 'CAMPAGNE', 'TERMINE', '2026-01-20 08:00:00', '2026-01-25 18:00:00', 'Campus Principal', FALSE, 1000, 450, '750e8400-e29b-41d4-a716-446655440002', '2026-01-05 10:00:00'),

-- Événement futur (Avril)
('b50e8400-e29b-41d4-a716-446655440002', 'Conférence: Consentement & Respect', 'Intervention de psychologues et experts juridiques.', 'CONFERENCE', 'PUBLIE', '2026-04-05 14:00:00', '2026-04-05 17:00:00', 'Amphithéâtre A', FALSE, 200, 45, '750e8400-e29b-41d4-a716-446655440002', '2026-03-15 09:00:00'),

-- Événement en ligne (Mars)
('b50e8400-e29b-41d4-a716-446655440003', 'Permanence psychologique', 'Session d''écoute individuelle en ligne.', 'PERMANENCE', 'PUBLIE', '2026-03-28 10:00:00', '2026-03-28 16:00:00', 'Zoom', TRUE, 20, 12, '750e8400-e29b-41d4-a716-446655440002', '2026-03-20 08:00:00');

-- ================================================================================================
-- PHASE 12: INSERT FAQ & CONTACTS
-- ================================================================================================
DELETE FROM faq;
DELETE FROM contacts_urgence;

INSERT INTO faq (id, question, reponse, categorie, ordre, est_publie, date_creation) VALUES
(gen_random_uuid(), 'Comment signaler un incident anonymement ?', 'Cochez simplement la case "Anonyme" lors de la soumission du formulaire. Vos données personnelles ne seront pas enregistrées.', 'Signalement', 1, TRUE, NOW()),
(gen_random_uuid(), 'Qui a accès à mon signalement ?', 'Seuls les membres du Bureau du Genre et les administrateurs habilités peuvent voir les détails. Confidentialité garantie.', 'Confidentialité', 2, TRUE, NOW()),
(gen_random_uuid(), 'Que faire en cas d''urgence immédiate ?', 'Contactez directement la sécurité du campus ou les numéros d''urgence listés sur la page d''accueil.', 'Urgence', 3, TRUE, NOW());

INSERT INTO contacts_urgence (id, nom, telephone, description, categorie, est_actif, ordre, date_creation) VALUES
(gen_random_uuid(), 'Urgence Sécurité INPHB', '125', 'Numéro d''urgence interne du campus (24/7)', 'SECURITE', TRUE, 1, NOW()),
(gen_random_uuid(), 'Centre d''écoute nationale', '143', 'Numéro vert national d''écoute psychologique', 'PSYCHOLOGIE', TRUE, 2, NOW()),
(gen_random_uuid(), 'Police', '170', 'Appel d''urgence national', 'POLICE', TRUE, 3, NOW());

-- ================================================================================================
-- PHASE 13: INSERT PREFERENCES
-- ================================================================================================
DELETE FROM preferences;

INSERT INTO preferences (id, utilisateur_id, notifications_activees, notifications_email, notifications_push, langue, theme, date_modification) VALUES
(gen_random_uuid(), '750e8400-e29b-41d4-a716-446655440001', TRUE, TRUE, TRUE, 'fr', 'dark', NOW()),
(gen_random_uuid(), '750e8400-e29b-41d4-a716-446655440002', TRUE, TRUE, TRUE, 'fr', 'light', NOW()),
(gen_random_uuid(), '750e8400-e29b-41d4-a716-446655440003', TRUE, FALSE, TRUE, 'fr', 'light', NOW()),
(gen_random_uuid(), '750e8400-e29b-41d4-a716-446655440004', TRUE, TRUE, TRUE, 'fr', 'light', NOW()),
(gen_random_uuid(), '750e8400-e29b-41d4-a716-446655440005', TRUE, TRUE, TRUE, 'fr', 'dark', NOW());


SELECT 'Seed data completed successfully with realistic INPHB data!' AS status;