feat(absences) : fondation backend du module de gestion des absences
Module type Payfit (étapes 1+2 de la spec V1) : demande d'absence, validation admin, soldes à jour. - Enums : AbsenceType, AbsenceStatus, HalfDay, ContractType, FamilySituation - Entités : AbsencePolicy, AbsenceBalance, AbsenceRequest + champs RH sur User - Services : PublicHolidayProvider (fériés FR métropole en PHP pur, Computus), AbsenceDayCalculator (décompte jours ouvrés/ouvrables + demi-journées, TDD), AbsenceBalanceService (périodes + pending/taken/recrédit) - API Platform : providers/processors (création, approve/reject/cancel) + RBAC me/admin, contrôleurs preview (dry-run), upload/download justificatif, calendrier - Migrations : une par table + colonnes RH user (DEFAULT puis DROP DEFAULT) - Fixtures : 5 policies par défaut, salariés démo, soldes et demandes - Tests unitaires : PublicHolidayProvider, AbsenceDayCalculator (12 tests) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
25
src/Enum/FamilySituation.php
Normal file
25
src/Enum/FamilySituation.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Enum;
|
||||
|
||||
enum FamilySituation: string
|
||||
{
|
||||
case Single = 'CELIBATAIRE';
|
||||
case Married = 'MARIE';
|
||||
case Pacsed = 'PACSE';
|
||||
case Divorced = 'DIVORCE';
|
||||
case Widowed = 'VEUF';
|
||||
|
||||
public function label(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Single => 'Célibataire',
|
||||
self::Married => 'Marié(e)',
|
||||
self::Pacsed => 'Pacsé(e)',
|
||||
self::Divorced => 'Divorcé(e)',
|
||||
self::Widowed => 'Veuf(ve)',
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user