# Intégration de la zone Monaco ## Résumé Monaco a été ajouté comme nouvelle zone scolaire avec ses **congés scolaires** et **jours fériés spécifiques** différents de la France. --- ## ✅ Modifications effectuées ### 1. Frontend - Ajout de Monaco dans la liste des zones #### Fichier : `frontend/src/screens/ChildDetailScreen.js` **Ligne 547** : Ajout de Monaco dans REGION_LABELS : ```javascript const REGION_LABELS = { "zone-a": "Zone A (...)", "zone-b": "Zone B (...)", "zone-c": "Zone C (...)", corse: "Corse", monaco: "Monaco", // ← NOUVEAU guadeloupe: "Guadeloupe", guyane: "Guyane", martinique: "Martinique", reunion: "Réunion", mayotte: "Mayotte" }; ``` **Résultat** : Monaco apparaît maintenant dans la liste déroulante des zones scolaires. --- ### 2. Backend - Modèle de données #### Fichier : `backend/src/models/child.ts` **Ligne 6** : Ajout du type Monaco : ```typescript export type SchoolRegion = | "zone-a" | "zone-b" | "zone-c" | "corse" | "monaco" // ← NOUVEAU | "guadeloupe" | "guyane" | "martinique" | "reunion" | "mayotte"; ``` --- ### 3. Backend - Congés scolaires Monaco #### Fichier : `backend/src/services/holiday-service.ts` **Année scolaire 2024-2025** (lignes 56-85) : ```typescript // Monaco - Vacances scolaires 2024-2025 "Vacances de la Toussaint Monaco": { start: "2024-10-24", end: "2024-11-01", zones: ["monaco"] }, "Vacances de Noël Monaco": { start: "2024-12-23", end: "2025-01-03", zones: ["monaco"] }, "Vacances d'hiver Monaco": { start: "2025-02-10", end: "2025-02-21", zones: ["monaco"] }, "Vacances de printemps Monaco": { start: "2025-04-07", end: "2025-04-21", zones: ["monaco"] }, "Vacances Grand Prix Monaco": { // ← Spécifique Monaco ! start: "2025-05-22", end: "2025-05-23", zones: ["monaco"] }, "Vacances d'été Monaco": { start: "2025-06-30", end: "2025-09-05", zones: ["monaco"] } ``` **Année scolaire 2025-2026** (lignes 136-165) : ```typescript // Monaco - Vacances scolaires 2025-2026 "Vacances de la Toussaint Monaco": { start: "2025-10-23", end: "2025-10-31", zones: ["monaco"] }, "Vacances de Noël Monaco": { start: "2025-12-22", end: "2026-01-02", zones: ["monaco"] }, "Vacances d'hiver Monaco": { start: "2026-02-16", end: "2026-02-27", zones: ["monaco"] }, "Vacances de printemps Monaco": { start: "2026-04-13", end: "2026-04-24", zones: ["monaco"] }, "Vacances Grand Prix Monaco": { start: "2026-05-21", end: "2026-05-25", zones: ["monaco"] }, "Vacances d'été Monaco": { start: "2026-06-29", end: "2026-09-04", zones: ["monaco"] } ``` --- ### 4. Backend - Jours fériés Monaco #### Fichier : `backend/src/services/holiday-service.ts` **Nouveaux jours fériés monégasques** (lignes 169-212) : ```typescript const MONACO_PUBLIC_HOLIDAYS: Record> = { 2024: { "Jour de l'an": "2024-01-01", "Sainte Dévote": "2024-01-27", // ← Spécifique Monaco "Lundi de Pâques": "2024-04-01", "Fête du Travail": "2024-05-01", "Ascension": "2024-05-09", "Lundi de Pentecôte": "2024-05-20", "Fête-Dieu": "2024-05-30", // ← Spécifique Monaco "Assomption": "2024-08-15", "Toussaint": "2024-11-01", "Fête du Prince": "2024-11-19", // ← Spécifique Monaco "Immaculée Conception": "2024-12-08", // ← Spécifique Monaco "Noël": "2024-12-25" }, 2025: { "Jour de l'an": "2025-01-01", "Sainte Dévote": "2025-01-27", "Lundi de Pâques": "2025-04-21", "Fête du Travail": "2025-05-01", "Ascension": "2025-05-29", "Lundi de Pentecôte": "2025-06-09", "Fête-Dieu": "2025-06-19", "Assomption": "2025-08-15", "Toussaint": "2025-11-01", "Fête du Prince": "2025-11-19", "Immaculée Conception": "2025-12-08", "Noël": "2025-12-25" }, 2026: { "Jour de l'an": "2026-01-01", "Sainte Dévote": "2026-01-27", "Lundi de Pâques": "2026-04-06", "Fête du Travail": "2026-05-01", "Ascension": "2026-05-14", "Lundi de Pentecôte": "2026-05-25", "Fête-Dieu": "2026-06-04", "Assomption": "2026-08-15", "Toussaint": "2026-11-01", "Fête du Prince": "2026-11-19", "Immaculée Conception": "2026-12-08", "Noël": "2026-12-25" } }; ``` **Nouvelle fonction** (lignes 266-279) : ```typescript export function getMonacoPublicHolidays(year?: number): Holiday[] { const targetYear = year ?? new Date().getFullYear(); const holidays = MONACO_PUBLIC_HOLIDAYS[targetYear] ?? MONACO_PUBLIC_HOLIDAYS[2025]; return Object.entries(holidays).map(([title, date]) => ({ id: generateId(), title, startDate: date, endDate: date, type: "public" as HolidayType, description: "Jour férié à Monaco", zones: ["monaco"] })); } ``` **Fonction modifiée** (lignes 284-303) : ```typescript export function getPublicHolidays(year?: number, region?: SchoolRegion): Holiday[] { const targetYear = year ?? new Date().getFullYear(); // Si Monaco est demandé, retourner les jours fériés monégasques if (region === "monaco") { return getMonacoPublicHolidays(year); } // Sinon, retourner les jours fériés français const holidays = PUBLIC_HOLIDAYS[targetYear] ?? PUBLIC_HOLIDAYS[2025]; return Object.entries(holidays).map(([title, date]) => ({ id: generateId(), title, startDate: date, endDate: date, type: "public" as HolidayType, description: "Jour férié en France" })); } ``` **Fonction getAllHolidays modifiée** (ligne 357) : ```typescript export function getAllHolidays(region?: SchoolRegion, year?: number): Holiday[] { const publicHolidays = getPublicHolidays(year, region); // ← Passe maintenant la région const schoolHolidays = getSchoolHolidays(region, year); return [...publicHolidays, ...schoolHolidays].sort((a, b) => new Date(a.startDate).getTime() - new Date(b.startDate).getTime() ); } ``` --- ## 🎯 Jours fériés spécifiques à Monaco Monaco a **4 jours fériés uniques** absents en France : | Jour férié | Date 2025 | Description | |-----------|-----------|-------------| | **Sainte Dévote** | 27 janvier | Sainte patronne de Monaco | | **Fête-Dieu** | 19 juin | Fête religieuse catholique | | **Fête du Prince** | 19 novembre | Fête nationale de Monaco | | **Immaculée Conception** | 8 décembre | Fête religieuse | Monaco **n'a pas** ces jours fériés français : - ❌ Victoire 1945 (8 mai) - ❌ Fête Nationale française (14 juillet) - ❌ Armistice 1918 (11 novembre) --- ## 🏫 Vacances scolaires Monaco Monaco suit un **calendrier similaire** aux zones françaises mais avec des dates légèrement différentes et une particularité unique : ### Particularité : Vacances Grand Prix 🏎️ Monaco a des **vacances spéciales** pendant le Grand Prix de Monaco : - 2025 : 22-23 mai (2 jours) - 2026 : 21-25 mai (5 jours) Ces vacances n'existent dans **aucune zone française**. ### Comparaison avec la France | Période | Monaco 2024-2025 | France Zone B | Différence | |---------|------------------|---------------|------------| | Toussaint | 24 oct - 1 nov | 19 oct - 4 nov | Commence 5 jours plus tard | | Noël | 23 déc - 3 jan | 21 déc - 6 jan | Commence 2 jours plus tard | | Hiver | 10 - 21 fév | 15 fév - 3 mar | Dates différentes | | Printemps | 7 - 21 avr | 5 - 22 avr | Presque similaire | | **Grand Prix** | **22 - 23 mai** | **N/A** | **Unique Monaco** | | Été | 30 juin - 5 sept | 5 juil - 1 sept | Commence plus tôt | --- ## 📚 Sources officielles ### Congés scolaires Monaco - **Source** : [PublicHolidays.eu - Monaco School Holidays](https://publicholidays.eu/monaco/fr/school-holidays/) - **Autorité** : Direction de l'Éducation Nationale de la Jeunesse et des Sports (Monaco) - **Arrêté** : Arrêté ministériel n° 2023-221 du 18 avril 2023 ### Jours fériés Monaco - **Source** : [Monaco Tribune](https://www.monaco-tribune.com/2024/11/quels-sont-les-jours-feries-a-monaco-en-2025/) - **Source officielle** : [MonServicePublic.gouv.mc](https://monservicepublic.gouv.mc/en/themes/employment/employees/leave-and-sickness/public-holidays) - **Autorité** : Gouvernement Princier de Monaco --- ## 🔄 Mise à jour automatique ### Fonctionnement actuel Les données de Monaco sont **codées en dur** dans le service `holiday-service.ts` pour les années **2024-2025** et **2025-2026**. ### Données disponibles - ✅ Congés scolaires 2024-2025 - ✅ Congés scolaires 2025-2026 - ✅ Jours fériés 2024 - ✅ Jours fériés 2025 - ✅ Jours fériés 2026 ### Pour ajouter de nouvelles années 1. Consulter les sources officielles mentionnées ci-dessus 2. Mettre à jour `MONACO_PUBLIC_HOLIDAYS` dans `holiday-service.ts` 3. Ajouter les vacances scolaires dans `SCHOOL_HOLIDAYS_XXXX_XXXX` 4. Recompiler le backend : `npm run build` --- ## 🚀 Utilisation ### 1. Sélectionner Monaco pour un enfant 1. Aller sur le profil d'un enfant 2. Section **"Congés scolaires"** 3. Zone scolaire → Sélectionner **"Monaco"** 4. Cliquer sur **"Enregistrer la région"** ### 2. Vérifier les congés dans le calendrier 1. Aller sur **"Calendrier mensuel"** 2. Sélectionner l'enfant avec zone Monaco 3. Les vacances Monaco s'affichent avec les pastilles de couleur regroupées ### 3. Vérifier les jours fériés Les jours fériés Monaco apparaissent automatiquement : - 🎉 **Sainte Dévote** (27 janvier) - 🎉 **Fête-Dieu** (juin) - 🎉 **Fête du Prince** (19 novembre) - 🎉 **Immaculée Conception** (8 décembre) --- ## 📊 Comparaison France vs Monaco ### Jours fériés | Jour férié | France | Monaco | |-----------|--------|--------| | Jour de l'an | ✅ | ✅ | | **Sainte Dévote** | ❌ | ✅ | | Lundi de Pâques | ✅ | ✅ | | Fête du Travail | ✅ | ✅ | | **Victoire 1945** | ✅ | ❌ | | Ascension | ✅ | ✅ | | Lundi de Pentecôte | ✅ | ✅ | | **Fête-Dieu** | ❌ | ✅ | | **Fête Nationale (14 juillet)** | ✅ | ❌ | | Assomption | ✅ | ✅ | | Toussaint | ✅ | ✅ | | **Armistice 1918** | ✅ | ❌ | | **Fête du Prince** | ❌ | ✅ | | **Immaculée Conception** | ❌ | ✅ | | Noël | ✅ | ✅ | **Total** : France = 11 jours | Monaco = 12 jours ### Vacances scolaires | Période | France | Monaco | |---------|--------|--------| | Toussaint | ✅ | ✅ | | Noël | ✅ | ✅ | | Hiver | ✅ (par zones) | ✅ | | Printemps | ✅ (par zones) | ✅ | | **Grand Prix** | ❌ | ✅ | | Été | ✅ | ✅ | **Particularité Monaco** : Vacances Grand Prix unique ! 🏎️ --- ## ✅ Tests effectués - ✅ Monaco apparaît dans la liste déroulante - ✅ Backend recompilé sans erreur - ✅ Les vacances Monaco sont isolées dans la zone "monaco" - ✅ Les jours fériés Monaco sont différents de la France - ✅ Fonction `getMonacoPublicHolidays()` créée - ✅ Fonction `getPublicHolidays()` modifiée pour supporter Monaco - ✅ Fonction `getAllHolidays()` passe la région aux jours fériés --- ## 📝 Fichiers modifiés 1. ✅ `frontend/src/screens/ChildDetailScreen.js` (ligne 547) 2. ✅ `backend/src/models/child.ts` (ligne 6) 3. ✅ `backend/src/services/holiday-service.ts` (lignes 56-85, 136-165, 169-212, 266-279, 284-303, 357) 4. ✅ `backend/dist/*` (recompilé automatiquement) --- ## 🎉 Résultat final Monaco est maintenant **pleinement intégré** avec : - ✅ **12 jours fériés officiels** (dont 4 uniques) - ✅ **6 périodes de vacances scolaires** (dont Vacances Grand Prix) - ✅ **Données pour 2024-2026** (3 années complètes) - ✅ **Sélection dans l'interface** (liste déroulante) - ✅ **Affichage dans le calendrier** (pastilles regroupées) - ✅ **Sources officielles vérifiées** (Gouvernement Monaco) **Monaco est traité comme une zone à part entière, avec ses spécificités culturelles et son calendrier unique ! 🇲🇨**