# Changelog

Toutes les modifications notables de l’application d’administration Moya
sont documentées ici.

Le format s'inspire de [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).

La version affichée en production suit le schéma `1.0.0-rc.X` (X = numéro de
build Coolify de l’admin). Elle est indépendante de la PWA terrain et de la PWA
pesée.

## [Unreleased]

### Added

- **Passages au quai** (Opérations) : liste / filtres (quai, provenance, type, dates) avec **tonnage estimé** ; saisie (permission `collect from quay`) ; **édition / suppression** depuis Admin (JWT, sans permission Spatie dédiée) ; lien barème Paramètres → Barème quai.
- **Centres de transfert** : rattachement optionnel à un **quai** (Epic 5) ; seed CT Anador/Anomkoï + décharges Kossehouin/Yopougon via API.
- **Tonnage Moya** (Pesée) : KPI officiel = tickets validés vers Kossehouin + Yopougon ; indicateur secondaire tonnage quai estimé.
- **Compatibilité engin / contenant** (Paramètres) : liste des règles seedées, édition légère actif/inactif.
- **Barème quai** (Paramètres) : liste / création / édition des lignes type × volume × état de charge → tonnes.
- Formulaire mission : engins filtrés selon les **zones** sélectionnées (compatibilité contenants).
- Formulaire zone : toast si mix coffres **5/7 m³** et **20 m³** sur le même point.
- Écran **Zones d’exploitation** (Opérations) : liste, filtre commune, édition légère (nom, superviseur, statut).
- Zones de collecte et missions de collecte : rattachement à une **zone d’exploitation** (formulaires, filtres, colonnes).
- **Groupes d’utilisateurs** (Paramètres) : CRUD réservé au super administrateur et à la permission `manage users`. Groupes initiaux : Admin, Ticket & Pesée, Carburant, Opération, RH, Stock.
- Association d’un utilisateur à un groupe (optionnel) sur le formulaire de création / modification.
- **Engins de location** : interrupteur « Engin de location » sur la même ligne que « Engin actif ». Les **engins propriétaires** ont un fond vert (success) dans la liste ; les engins de location n’ont pas de fond. Les engins dont le propriétaire n’est pas MOYA sont marqués location.
- **Commune d’un engin** : association d’un engin à une commune (une seule) sur la fiche / le formulaire ; code interne généré (code commune + immatriculation) ; filtre et colonne commune dans la liste.
- **Commune d’une station-service** : rattachement obligatoire au référentiel Communes.
- **Alerte commune prise** : triangle d’avertissement (infobulle) si la commune de l’engin diffère de celle de la station ; la saisie n’est pas bloquée.
- **Arrêts de circuit** : éditeur (nom, ordre, suppression — confirmation si l’arrêt est déjà identifié). Un site à coffre n’a pas d’éditeur (un point est créé automatiquement).
- **Missions de collecte** : programmation (engin, chauffeur, éboueurs, zones) depuis **Opérations → Missions de collecte**. Création / modification dans un panneau latéral ; duplication et suppression en modale. **Planning** jour/nuit par commune (aide visuelle jour + nuit). Une mission déjà exécutée sur le terrain n’est plus modifiable ni supprimable (duplication encore possible). Numéro unique `ADJ-00021/0126` généré à la création. Badge **À vérifier** sur les missions générées non confirmées ; badge **Générée** une fois l’équipage validé. Lien planning `?scheduled_on=YYYY-MM-DD`.
- **Numéro de zone** : attribué automatiquement par commune et type (lecture seule).
- Liste des zones : un circuit affiche **k/n** (arrêts identifiés / total). Carte avec un marqueur par point ; clic → photo de cet arrêt.

### Changed

- Liste des utilisateurs : badge du groupe (nom + couleur) à la place de l’e-mail.
- Zones de collecte : GPS et photo d’identification lus sur les **points**, plus sur la fiche zone. Contenants sur le **point**. Site : coffres sur le formulaire de zone. Circuit : coffres et bacs **par arrêt** (capacité d’arrêt + capacité du circuit). Liste : capacité de zone = somme des points.

## [1.0.0-rc.35] - 2026-09-01

Catch-up de ce qui est déjà en production admin (`1.0.0-rc.35`).

### Added

- Module **pesée** : voyages, tickets OCR (revue, validation, relance), rapport par centre de transfert (PDF), flotte (import Excel, propriétaires, pagination), décharges, communes, graphique de tonnage, anomalies par engin au tableau de bord.
- Module **carburant** : prises station, types et prix officiels, stations-service, position GPS, photos tamponnées à la capture, export PDF sur une plage de dates, alertes gros volumes, correction d’une prise (motif, immatriculation).
- Module **opérations** : catalogue des contenants, zones de collecte (sites à coffre / circuits à bacs), paramètre **Communes**, rattachement des centres de transfert à une commune.
- **Contrats de travail** générés depuis des **modèles** (éditeur riche, variables) à l’embauche ; PDF à imprimer pour signature manuscrite ; association du PDF scanné signé.
- Restitution d’EPI, réintégration en stock, PDF de retour ; photo de remise au verrouillage de la dotation.
- Recrutement : inscriptions du jour sur le tableau de bord ; date de création et pagination des candidats.
- Usurpation de session réservée au super administrateur.
- Dernières connexions utilisateurs et compteur de logins.
- Plafond de salaire par poste.
- Exports Excel et PDF des listes RH et inventaire.
- Raccourci Google Meet dans le header.
- Sauvegardes MySQL et médias hors site (archive chiffrée).
- Reprise de l’Excel mobilité Abidjan (EPI, stock, RH, remises).

### Changed

- Aperçu du PDF de contrat dans une **modale** (impression / téléchargement) au lieu d’un nouvel onglet.
- Rapport de pesée : filtres par dates et centre, statistiques mini / maxi / moyen, groupement mois puis semaines, volumes par engin, filtres repris en sous-titre du PDF.
- Prises carburant : liste limitée à l’opérateur connecté ; kilométrage optionnel ; photo du reçu optionnelle ; pagination.
- Fuseau horaire applicatif : Africa/Abidjan.
- Candidats embauchés masqués de la liste admin.

### Fixed

- Relance de l’OCR sur les tickets en échec.
- Import flotte : plaques déjà en base ignorées ; engins sans plaque via le code flotte.
- Documents du candidat copiés sur la fiche employé à l’embauche.

### Security

- Coupure de tout accès applicatif dès qu’un compte est inactif.

## [0.0.1] - 2026-07-29

### Added

- Première version documentée de l’admin.
- Accès aux notes de version depuis le numéro de version du header.
