Ajout des commentaires dans le code

This commit is contained in:
PTA
2026-08-20 13:22:49 +02:00
parent 4201894e28
commit 5d8c0993a6
154 changed files with 5071 additions and 47 deletions

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — liste des agents (Service Enfance).
* POST — change le lieu de rattachement principal d'un agent.
* Charge utile POST : agent_id, structure_id (nullable), csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — contrat horaire annuel d'un agent, au format PDF.
* Paramètres : agent_id, puis date OU year. Sortie binaire : pas de bootstrap JSON.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
$pdo = require dirname(__DIR__) . '/app/bootstrap.php';

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — grille mensuelle d'un agent, tous lieux confondus.
* Paramètres : agent_id, month (« 2026-02 »).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — semaine d'un agent, tous lieux confondus.
* Paramètres : agent_id, week (« 2026-W08 »).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — planning d'un agent sur 6 ou 7 semaines, au format PDF.
* Paramètres : agent_id, week (départ), weeks (6|7). Sortie binaire.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
$pdo = require dirname(__DIR__) . '/app/bootstrap.php';

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — bilan annuel d'heures d'un agent, au format PDF.
* Paramètres : agent_id, puis date OU year. Sortie binaire.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
$pdo = require dirname(__DIR__) . '/app/bootstrap.php';

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — agents sélectionnables dans l'éditeur de planning.
* Paramètre : structure_id (0 ou absent = tous les lieux, Service Enfance).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — calendrier annuel d'un agent (Service Enfance).
* Paramètres : agent_id, year (facultatif, année en cours par défaut).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AnnualOverviewController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — contrôle puis valide TOUTE l'année d'un agent (Service Enfance).
* Tout ou rien : une seule erreur et aucune semaine n'est validée.
* Charge utile : agent_id, year, force_quota, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AnnualOverviewController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — applique une semaine type à UNE semaine (Service Enfance).
* Charge utile : template_id, agent_id, week, mode (merge|replace), csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — applique une semaine type sur une période (Service Enfance).
* Opération massive : passer d'abord par preview_week_template_period.php.
* Charge utile : template_id, agent_id, start_date, end_date, mode, period_filter, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — recopie une semaine entière d'un agent (Service Enfance).
* Porte sur tous les lieux de la semaine source.
* Charge utile : agent_id, source_week, target_week, mode (merge|replace), csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PlanningController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — plages sous-effectif d'une semaine (responsable ou Service Enfance).
* Un responsable est forcé sur son propre lieu.
* Paramètres : week, structure_id (facultatif).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\CoverageController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — crée un agent, son quota annuel et son PTA (Service Enfance).
* Charge utile : matricule, nom, prenom, structure_id, id_poste, type_contrat,
* quotite_travail, date_debut_contrat, csrf_token, et champs facultatifs.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — crée un lieu d'affectation (Service Enfance).
* Charge utile : code, nom, adresse, type_affectation, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\StructureController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,15 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — données du tableau de bord (Service Enfance).
* scope=badges limite la réponse au compteur de la pastille de navigation :
* c'est la variante appelée depuis toutes les pages, elle doit rester légère.
* Paramètres : scope, week, year (tous facultatifs).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\DashboardController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — supprime un créneau depuis la fiche agent.
* Peut rouvrir un planning validé. Charge utile : entry_id, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PlanningController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — supprime une période de vacances (Service Enfance).
* Charge utile : period_id, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\VacationController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — supprime une semaine type (Service Enfance).
* Les créneaux déjà appliqués ne sont pas touchés.
* Charge utile : template_id, agent_id, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — déplace ou duplique un créneau (glisser-déposer).
* Charge utile : entry_id, target_date, action (move|duplicate), csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PlanningController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — file des plannings en attente de validation (Service Enfance).
* Triée du plus ancien au plus récent, brouillons vides exclus.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PlanningController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — état complet d'une semaine de saisie.
* Inclut les créneaux de l'agent sur les AUTRES lieux, en lecture seule.
* Paramètres : structure_id, agent_id, week.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PlanningController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — propositions de vacances de l'API data.education.gouv.fr, SANS écriture.
* Un échec du service distant ressort en 502.
* Paramètres : academy, year (année civile).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\VacationController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — SIMULE l'application d'une semaine type sur une période, sans écrire.
* Étape imposée avant apply_week_template_period.php.
* Charge utile : template_id, agent_id, start_date, end_date, mode, period_filter, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — enregistre ou supprime une contrainte prioritaire (Service Enfance).
* Double action selon le champ `action` (SAVE par défaut, ou DELETE).
* Charge utile : action, agent_id, csrf_token, puis constraint_id ou les champs de la contrainte.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PtaController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — synthèse du PTA d'un agent à une date de référence (Service Enfance).
* Paramètres : agent_id, date (facultative, aujourd'hui par défaut).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PtaController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — enregistre ou supprime un souhait de lieu (Service Enfance).
* Double action selon le champ `action` (SAVE par défaut, ou DELETE).
* Charge utile : action, agent_id, csrf_token, puis wish_id ou les champs du souhait.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PtaController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — remplace INTÉGRALEMENT les règles de couverture d'un lieu (Service Enfance).
* Une liste vide supprime toute règle.
* Charge utile : structure_id, rules[], csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\CoverageController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — enregistre les périodes de vacances retenues (Service Enfance).
* Plafonné à 50 périodes par envoi.
* Charge utile : periods[], csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\VacationController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — enregistre la semaine planifiée comme semaine type (Service Enfance).
* Charge utile : agent_id, week, name, replace, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — enregistre une semaine type composée dans l'éditeur (Service Enfance).
* Charge utile : agent_id, name, entries[], replace, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — règles de couverture d'un lieu (Service Enfance).
* Paramètre : structure_id.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\CoverageController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — semaine d'un lieu, agent par agent.
* Inclut les agents ponctuellement planifiés, pas seulement les rattachés.
* Paramètres : structure_id, week.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\StructureController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — planning hebdomadaire d'un lieu, au format PDF.
* Paramètres : structure_id, week. Sortie binaire : pas de bootstrap JSON.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\StructureController;
$pdo = require dirname(__DIR__) . '/app/bootstrap.php';

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — ajoute ou retire un agent d'une équipe (Service Enfance).
* Charge utile : action (ADD|REMOVE), team_id, agent_id, fonction_equipe, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\TeamController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — change le statut d'une équipe (Service Enfance).
* Charge utile : team_id, statut (BROUILLON|A_CONTROLER|VALIDEE), csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\TeamController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — liste des équipes, filtrable par date_debut / date_fin.
* POST — crée une équipe (Service Enfance).
* Charge utile POST : structure_id, type_equipe, libelle, date_debut, date_fin, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\TeamController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — modifie la fiche d'un agent (Service Enfance).
* Ni le matricule ni la quotité de travail ne sont modifiables ici.
* Charge utile : agent_id, champs de la fiche, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\AgentController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,14 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — modifie un créneau depuis la fiche agent.
* Peut changer de jour, de semaine et de lieu ; peut rouvrir un planning validé.
* Charge utile : entry_id, structure_id, motif_id, date, start, end, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\PlanningController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* POST — change le type d'un lieu d'affectation (Service Enfance).
* Charge utile : structure_id, type_affectation, csrf_token.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\StructureController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — périodes de vacances enregistrées (Service Enfance).
* Paramètre : school_year (facultatif, « 2026-2027 »).
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\VacationController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — contenu détaillé d'une semaine type (Service Enfance).
* Paramètres : agent_id, template_id — le couple sert de contrôle de périmètre.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;

View File

@@ -4,6 +4,13 @@ declare(strict_types=1);
require_once dirname(__DIR__) . '/app/autoload.php';
/**
* GET — semaines types d'un agent, avec leurs compteurs (Service Enfance).
* Paramètre : agent_id.
*
* Point d'entrée mince : toute la logique est dans le contrôleur appelé.
* Voir CLAUDE.md, section « Deux types de points d'entrée ».
*/
use App\Controllers\WeekTemplateController;
use App\Core\JsonResponse;