Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
- Dépendance phpoffice/phpspreadsheet - Endpoint GET /bovines/inventory-export : XLSX coloré, header figé, auto-filter, tri birthDate ASC - Endpoint GET /bovines/inventory-stats : comptes par tranche d'âge (>=24, 22-24, 20-22) - Bouton Excel à gauche du titre (style icône-only, même design que le bouton impression) - Légende visuelle avec cartes bordées coloriées - Ajustement seuils couleurs des lignes en -300 (base) / -400 (hover) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
40 lines
1.0 KiB
PHP
40 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\ApiResource;
|
|
|
|
use ApiPlatform\Metadata\ApiProperty;
|
|
use ApiPlatform\Metadata\ApiResource;
|
|
use ApiPlatform\Metadata\Get;
|
|
use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation;
|
|
use App\State\Bovin\BovineInventoryStatsProvider;
|
|
|
|
#[ApiResource(
|
|
operations: [
|
|
new Get(
|
|
uriTemplate: '/bovines/inventory-stats',
|
|
openapi: new OpenApiOperation(
|
|
summary: "Compteurs de l'inventaire bovin par tranche d'âge.",
|
|
description: "Renvoie le nombre total de bovins actifs et la répartition par tranche d'âge (>= 24 mois, 22-24, 20-22).",
|
|
tags: ['Bovines'],
|
|
),
|
|
security: "is_granted('ROLE_USER')",
|
|
provider: BovineInventoryStatsProvider::class,
|
|
),
|
|
]
|
|
)]
|
|
final class BovineInventoryStats
|
|
{
|
|
#[ApiProperty(identifier: true)]
|
|
public string $id = 'current';
|
|
|
|
public int $total = 0;
|
|
|
|
public int $over24 = 0;
|
|
|
|
public int $between22And24 = 0;
|
|
|
|
public int $between20And22 = 0;
|
|
}
|