new Response(description: 'Array of communes with their tax rate and collected amount'), '400' => new Response(description: 'Invalid or missing parameters (department_code, tax_type, year are required)'), ], ), provider: CommuneCorrelationProvider::class, ), ], )] #[QueryParameter(key: 'department_code', description: 'Department code (e.g. 76, 75, 2A)', schema: ['type' => 'string'], required: true)] #[QueryParameter(key: 'tax_type', description: 'Tax type to analyze', schema: ['type' => 'string', 'enum' => ['tfpnb', 'tfpb', 'th', 'cfe']], required: true)] #[QueryParameter(key: 'year', description: 'Year of tax data (2019-2022)', schema: ['type' => 'integer'], required: true)] class CommuneCorrelation { public function __construct( public readonly string $department_code = '', public readonly string $tax_type = '', public readonly ?int $year = null, public readonly array $data = [], ) {} }