-- =====================================================================
-- DONNÉES DE DÉMONSTRATION
-- À appliquer APRÈS schema-mvp + schema-phase2 + schema-phase3.
--
-- Comptes créés (mot de passe commun : Demo@2026) :
--   - Super admin (éditeur) : admin@demo.bj
--   - Gérant                : gerant@demo.bj   (téléphone 97000001)
--   - Agent                 : agent@demo.bj    (téléphone 97000002)
--
-- IMPORTANT : changez ces mots de passe après le premier déploiement réel.
-- =====================================================================

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- Nettoyage (ré-exécution possible)
TRUNCATE TABLE mouvements_garantie;
TRUNCATE TABLE echeances_loyer;
TRUNCATE TABLE bail_locataires;
TRUNCATE TABLE baux;
TRUNCATE TABLE biens_photos;
TRUNCATE TABLE biens;
TRUNCATE TABLE locataires;
TRUNCATE TABLE proprietaires;
TRUNCATE TABLE utilisateurs;
TRUNCATE TABLE agences;
DELETE FROM branding;

SET FOREIGN_KEY_CHECKS = 1;

-- ---------------------------------------------------------------------
-- Agence (antenne principale)
-- ---------------------------------------------------------------------
INSERT INTO agences (id, nom, adresse, telephone, est_principale, actif)
VALUES (1, 'Agence Atlantique Immo', 'Carré 1024, Cotonou', '+229 97 00 00 00', 1, 1);

-- ---------------------------------------------------------------------
-- Branding (couleurs propres à l'agence — vert / or)
-- ---------------------------------------------------------------------
INSERT INTO branding (id, nom_agence, slogan, couleur_primaire, couleur_secondaire,
                      adresse, telephone, whatsapp, email, ifu, rccm)
VALUES (1, 'Agence Atlantique Immo', 'Votre partenaire immobilier à Cotonou',
        '#0B6B53', '#C9A227',
        'Carré 1024, Cotonou', '+229 97 00 00 00', '+229 97 00 00 00',
        'contact@atlantique-immo.bj', '0000000000000', 'RB/COT/00 A 0000');

-- ---------------------------------------------------------------------
-- Utilisateurs (mot de passe : Demo@2026)
-- ---------------------------------------------------------------------
INSERT INTO utilisateurs (agence_id, role, nom_complet, email, telephone, mot_de_passe_hash, actif, statut_validation)
VALUES
 (NULL, 'super_admin', 'Administrateur Éditeur', 'admin@demo.bj',  '97000000', '$2y$10$ppALgYRqrRT71LLnsK88resXMx9ajvOGsusa/p.VMv5tLBZtPit9G', 1, 'valide'),
 (1,    'gerant',      'Awa Gérante',            'gerant@demo.bj', '97000001', '$2y$10$ppALgYRqrRT71LLnsK88resXMx9ajvOGsusa/p.VMv5tLBZtPit9G', 1, 'valide'),
 (1,    'agent',       'Koffi Agent',            'agent@demo.bj',  '97000002', '$2y$10$ppALgYRqrRT71LLnsK88resXMx9ajvOGsusa/p.VMv5tLBZtPit9G', 1, 'valide'),
 (1,    'locataire',   'Jean Houngbé',           'locataire@demo.bj','96000001', '$2y$10$ppALgYRqrRT71LLnsK88resXMx9ajvOGsusa/p.VMv5tLBZtPit9G', 1, 'valide');

-- ---------------------------------------------------------------------
-- Propriétaires
-- ---------------------------------------------------------------------
INSERT INTO proprietaires (id, agence_id, nom_complet, telephone, whatsapp, mode_reversement_coord)
VALUES
 (1, 1, 'Monsieur Dossou', '97111111', '97111111', 'MoMo 97111111'),
 (2, 1, 'Madame Aïssa',    '97222222', '97222222', 'Banque BOA');

-- ---------------------------------------------------------------------
-- Locataires (téléphone = identifiant central)
-- ---------------------------------------------------------------------
INSERT INTO locataires (id, agence_id, nom_complet, telephone, whatsapp, profession, piece_type, piece_numero)
VALUES
 (1, 1, 'Jean Houngbé',  '96000001', '96000001', 'Enseignant',   'cni', 'CNI-001'),
 (2, 1, 'Marie Adjovi',  '96000002', '96000002', 'Commerçante',  'cni', 'CNI-002'),
 (3, 1, 'Paul Sossou',   '96000003', '96000003', 'Fonctionnaire','cip', 'CIP-003');

-- Lien du compte locataire (espace en ligne) au locataire Jean Houngbé
UPDATE locataires SET utilisateur_id = (SELECT id FROM utilisateurs WHERE email = 'locataire@demo.bj' LIMIT 1) WHERE id = 1;

-- ---------------------------------------------------------------------
-- Biens (mix de types et statuts)
-- ---------------------------------------------------------------------
INSERT INTO biens (id, reference, agence_id, proprietaire_id, type_bien, type_location,
                   designation, quartier, adresse, nb_chambres, superficie, statut, publie_vitrine)
VALUES
 (1, 'BIEN-2026-00001', 1, 1, 'location', 'habitation', 'Villa 3 chambres à Calavi', 'Calavi', 'Von 245, Calavi', 3, 250, 'disponible', 1),
 (2, 'BIEN-2026-00002', 1, 2, 'location', 'boutique',   'Boutique marché Dantokpa',  'Cotonou', 'Dantokpa', NULL, 30, 'disponible', 1),
 (3, 'BIEN-2026-00003', 1, NULL, 'terrain', NULL,       'Terrain 2 parcelles Abomey-Calavi', 'Abomey-Calavi', 'Zone Tankpè', NULL, 1000, 'disponible', 1),
 (4, 'BIEN-2026-00004', 1, 1, 'vente',    NULL,         'Maison à vendre Akpakpa',   'Akpakpa', 'Akpakpa', 4, 320, 'disponible', 0),
 (5, 'BIEN-2026-00005', 1, 2, 'location', 'habitation', 'Appartement 2 chambres Fidjrossè', 'Fidjrossè', 'Fidjrossè plage', 2, 90, 'disponible', 1);

-- ---------------------------------------------------------------------
-- Un bail déjà en place (garantie 6 mois × 60 000 = 360 000)
-- pour démontrer immédiatement la mécanique des deux poches.
-- ---------------------------------------------------------------------
INSERT INTO baux (id, bien_id, agence_id, type_location, date_entree, jour_paiement,
                  loyer_mensuel, mode_paiement_habituel,
                  garantie_mois_initiaux, garantie_montant_initial, garantie_solde, prepaiement_solde, statut)
VALUES
 (1, 5, 1, 'habitation', '2026-01-05', 5, 60000, 'momo', 6, 360000, 360000, 0, 'actif');

-- Le bien loué passe au bon statut
UPDATE biens SET statut = 'loue' WHERE id = 5;

-- Locataire principal du bail
INSERT INTO bail_locataires (bail_id, locataire_id, est_principal) VALUES (1, 1, 1);

-- Versement initial de la garantie (grand livre)
INSERT INTO mouvements_garantie (bail_id, type, montant, solde_apres, note)
VALUES (1, 'versement_initial', 360000, 360000, '6 mois d''avance');

-- Échéancier (jan -> juin 2026), tout "attendu" : à régler via l'écran d'encaissement
INSERT INTO echeances_loyer (bail_id, periode, montant_attendu, montant_paye, date_echeance, statut) VALUES
 (1, '2026-01', 60000, 0, '2026-01-05', 'attendu'),
 (1, '2026-02', 60000, 0, '2026-02-05', 'attendu'),
 (1, '2026-03', 60000, 0, '2026-03-05', 'attendu'),
 (1, '2026-04', 60000, 0, '2026-04-05', 'attendu'),
 (1, '2026-05', 60000, 0, '2026-05-05', 'attendu'),
 (1, '2026-06', 60000, 0, '2026-06-05', 'attendu');

-- ---------------------------------------------------------------------
-- Catégories de trésorerie de base (exemple béninois) + caisse principale
-- ---------------------------------------------------------------------
INSERT INTO caisses (id, agence_id, nom, type, solde, actif)
VALUES (1, 1, 'Caisse principale', 'especes', 0, 1),
       (2, 1, 'Caisse MoMo', 'momo', 0, 1);

INSERT INTO categories_flux (agence_id, sens, libelle) VALUES
 (1, 'recette', 'Loyers'),
 (1, 'recette', 'Cautions'),
 (1, 'recette', 'Commissions'),
 (1, 'depense', 'Reversements propriétaires'),
 (1, 'depense', 'Commissions démarcheurs'),
 (1, 'depense', 'Maintenance'),
 (1, 'depense', 'Charges agence');

-- ---------------------------------------------------------------------
-- Types de caution configurables (départ)
-- ---------------------------------------------------------------------
INSERT INTO types_caution (agence_id, libelle, actif) VALUES
 (1, 'Électricité', 1),
 (1, 'Peinture', 1);

-- ---------------------------------------------------------------------
-- Types de statut juridique des terrains (standard béninois)
-- ---------------------------------------------------------------------
INSERT INTO types_statut_juridique (agence_id, libelle, actif) VALUES
 (1, 'Titre Foncier (TF)', 1),
 (1, 'Convention de vente', 1),
 (1, 'Attestation de détention coutumière', 1),
 (1, 'Acte de notoriété', 1);

-- =====================================================================
-- FIN DES DONNÉES DE DÉMONSTRATION
-- Connexion : gerant@demo.bj  /  Demo@2026
-- =====================================================================
