-- Migration: AG improvements v2.5
-- 1. Feuille de présence / émargement
-- 2. Délais légaux
-- 4. Résolutions personnalisées
-- 5. PV final
-- 6. Notifications
-- 7. Historique

-- =============================================
-- 1. Table feuille de présence
-- =============================================
CREATE TABLE IF NOT EXISTS pv_presence (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_pv_valide INT NOT NULL,
    id_copro INT NOT NULL,
    id_coproprietaire INT NOT NULL,
    statut ENUM('present','absent','represente') NOT NULL DEFAULT 'absent',
    id_mandataire INT DEFAULT NULL COMMENT 'Si représenté, qui vote à sa place',
    tantiemes DECIMAL(10,3) NOT NULL DEFAULT 0,
    heure_arrivee TIME DEFAULT NULL,
    signature_numerique TINYINT(1) DEFAULT 0,
    date_emargement TIMESTAMP NULL DEFAULT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY uk_pv_copro (id_pv_valide, id_coproprietaire),
    INDEX idx_pv (id_pv_valide),
    INDEX idx_copro (id_copro)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- 2. Colonnes délais légaux sur prepare_pv
-- =============================================
ALTER TABLE prepare_pv
    ADD COLUMN IF NOT EXISTS date_envoi_convocation DATE DEFAULT NULL AFTER heure,
    ADD COLUMN IF NOT EXISTS rappel_envoye TINYINT(1) DEFAULT 0 AFTER date_envoi_convocation;

-- =============================================
-- 4. Résolutions personnalisées (ajout flag dans pv_ago_modele)
-- =============================================
ALTER TABLE pv_ago_modele
    ADD COLUMN IF NOT EXISTS custom TINYINT(1) DEFAULT 0 AFTER id_ag,
    ADD COLUMN IF NOT EXISTS created_by INT DEFAULT NULL AFTER custom;

-- Ajouter taux_value et duree_value si absents de pv_decisions
-- (déjà présents normalement, on ignore en cas d'erreur)
-- ALTER TABLE pv_decisions ADD COLUMN IF NOT EXISTS taux_value DECIMAL(5,2) DEFAULT NULL;
-- ALTER TABLE pv_decisions ADD COLUMN IF NOT EXISTS duree_value INT DEFAULT NULL;

-- =============================================
-- 5. Colonnes PV final sur pv_valides
-- =============================================
ALTER TABLE pv_valides
    ADD COLUMN IF NOT EXISTS pv_final_path VARCHAR(500) DEFAULT NULL AFTER updated_at,
    ADD COLUMN IF NOT EXISTS pv_final_generated_at TIMESTAMP NULL DEFAULT NULL AFTER pv_final_path;

-- =============================================
-- 6. Table rappels / notifications AG
-- =============================================
CREATE TABLE IF NOT EXISTS pv_notifications (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_pv_valide INT DEFAULT NULL,
    id_pv_preparation INT DEFAULT NULL,
    id_copro INT NOT NULL,
    type ENUM('rappel_j7','ouverture_vote','relance_vote','fermeture_vote','convocation') NOT NULL,
    date_envoi TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    nb_destinataires INT DEFAULT 0,
    INDEX idx_pv (id_pv_valide),
    INDEX idx_copro (id_copro)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
