<?php
if (!function_exists('communiques')) {
    /** Catégories des communiqués : clé => [libellé, emoji]. */
    function categories_communiques(): array {
        return [
            'urgent' => ['Urgent', '⚠️'], 'examens' => ['Examens', '📝'], 'scolarite' => ['Scolarité', '💳'],
            'conges' => ['Congés et vacances', '🌴'], 'rentree' => ['Rentrée', '🎒'], 'vie' => ["Vie de l'école", '📣'],
        ];
    }

    /**
     * Communiqués de l'administration, du plus récent au plus ancien (épinglés en tête).
     *
     * @return array<int, array{date:string, categorie:string, titre:string, texte:string, public:string, epingle:bool}>
     */
    function communiques(): array {
        $liste = [
            ['date' => '2026-10-10', 'categorie' => 'examens', 'titre' => "Calendrier des examens du 1er semestre", 'texte' => "Les examens du 1er semestre auront lieu du 19 au 30 janvier 2027. Le planning détaillé par filière sera affiché au secrétariat et publié ici.", 'public' => "Toute l'école", 'epingle' => true],
            ['date' => '2026-10-14', 'categorie' => 'scolarite', 'titre' => "Rappel : 2e échéance de la scolarité", 'texte' => "La 2e échéance de la scolarité 2026-2027 est attendue avant le 15 novembre 2026. Le paiement se fait à la comptabilité ou par Mobile Money.", 'public' => "Étudiants", 'epingle' => false],
            ['date' => '2026-10-08', 'categorie' => 'conges', 'titre' => "Congés de fin d'année", 'texte' => "Les cours seront suspendus du samedi 20 décembre 2026 au dimanche 4 janvier 2027. Reprise des cours le lundi 5 janvier 2027.", 'public' => "Toute l'école", 'epingle' => false],
            ['date' => '2026-10-05', 'categorie' => 'vie', 'titre' => "Journée portes ouvertes", 'texte' => "L'ISIT ouvre ses portes aux familles et aux futurs étudiants samedi prochain, de 9 h à 16 h. Visite des salles et présentation des filières.", 'public' => "Toute l'école", 'epingle' => false],
            ['date' => '2026-10-01', 'categorie' => 'rentree', 'titre' => "Rentrée académique 2026-2027", 'texte' => "Bienvenue à la première promotion de l'ISIT. La tenue officielle est obligatoire dès la première semaine de cours.", 'public' => "Étudiants", 'epingle' => false],
        ];
        usort($liste, fn($a, $b) => [$b['epingle'], $b['date']] <=> [$a['epingle'], $a['date']]);
        return $liste;
    }

    /** Rappels programmés pour l'année : [jour, mois abrégé, catégorie, titre, détail]. */
    function rappels_annee(): array {
        return [
            ['13', 'nov.', 'scolarite', "Rappel : 2e échéance de scolarité", "Avant le 15 novembre"],
            ['12', 'déc.', 'scolarite', "Rappel : 3e échéance de scolarité", "Avant le 15 décembre"],
            ['18', 'déc.', 'conges', "Départ en congés de fin d'année", "Du 20 décembre au 4 janvier"],
            ['4', 'janv.', 'rentree', "Reprise des cours", "Lundi 5 janvier"],
            ['12', 'janv.', 'examens', "Examens du 1er semestre dans 7 jours", "Du 19 au 30 janvier"],
            ['9', 'févr.', 'vie', "Résultats du 1er semestre en ligne", "Tableau d'honneur publié"],
            ['30', 'mars', 'conges', "Congés de Pâques", "Dates confirmées par l'administration"],
            ['1', 'juin', 'examens', "Examens du 2e semestre dans 7 jours", "Début le 8 juin"],
            ['1', 'juil.', 'conges', "Début des grandes vacances", "Bonnes vacances à tous"],
            ['1', 'sept.', 'rentree', "Inscriptions 2027-2028 ouvertes", "Réinscriptions et nouvelles inscriptions"],
        ];
    }

    function date_communique(string $iso): string {
        $mois = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'];
        [$a, $m, $j] = explode('-', $iso);
        return (int)$j . ' ' . $mois[(int)$m - 1] . ' ' . $a;
    }
}
