feat : refonte de l'affichage des âges et restriction des prix aux admins

- Repository BovineRepository avec getInventoryStats en DQL
- Sécurité ApiProperty ROLE_ADMIN sur pricePerKg et finalPrice
- Endpoint inventory-export passe en ROLE_ADMIN
- Composable useBovineColumns mutualisé entre inventory et case (admin/user séparés)
- Stats par tranche d'âge filtrables par buildingCaseId
- Légende avec cartes colorées pleines + texte blanc
- Coloration de la cellule Age (badge) au lieu de toute la ligne
- Décalage couleurs : red ≥ 24, orange 22-24, yellow 20-22

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-27 17:09:13 +02:00
parent b3b7746bc5
commit 569d3b373f
9 changed files with 204 additions and 79 deletions

View File

@@ -8,3 +8,11 @@ export const formatAgeLabel = (months: number | null | undefined): string => {
if (!label) label = '< 1 mois'
return label
}
export const ageBadgeClass = (months: number | null | undefined): string => {
if (months === null || months === undefined) return ''
if (months >= 24) return 'bg-red-500 text-white'
if (months >= 22) return 'bg-orange-500 text-white'
if (months >= 20) return 'bg-yellow-500 text-white'
return ''
}