Files
Starseed/frontend/modules/transport/composables/useQualimatSearch.ts
T
tristan 388d39a379
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m1s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m44s
refactor(transport) : onglet Qualimat en MalioDataTable paginé, recherche branchée sur le nom (ERP-166)
2026-06-16 18:02:16 +02:00

41 lines
1.5 KiB
TypeScript

import { usePaginatedList } from '~/shared/composables/usePaginatedList'
/**
* Ligne du référentiel QUALIMAT renvoyée par la saisie assistée (groupe
* `qualimat:read`). `@id` est l'IRI conservée comme FK `carrier.qualimatCarrier`
* (RG-4.01 / § 2.5) ; `validityDate` pilote le fond rouge de la colonne « Date de
* validité » (RG-4.04).
*/
export interface QualimatCarrierRow {
'@id': string
id: string
name: string | null
siret: string | null
address: string | null
postalCode: string | null
city: string | null
validityDate: string | null
status: string | null
}
/** Filtre de la recherche QUALIMAT (branché sur le nom du transporteur). */
export interface QualimatSearchFilters {
search?: string
}
/**
* Saisie assistée QUALIMAT (M4 Transport, ERP-166 — RG-4.01 / spec-back § 4.7).
*
* `GET /api/qualimat_carriers?search=` : référentiel en LECTURE SEULE, lignes
* actives uniquement (filtré côté serveur), recherche fuzzy nom + siret. Simple
* enveloppe de `usePaginatedList` (règle frontend : toute GetCollection passe par
* ce composable — pagination Hydra, état 100 % local) consommée par le
* `MalioDataTable` de l'onglet Qualimat. Le filtre `search` est piloté par le nom
* saisi dans le formulaire principal (pas de champ de recherche dédié).
*
* Volontairement PAR INSTANCE (état local à l'écran d'ajout).
*/
export function useQualimatSearch() {
return usePaginatedList<QualimatCarrierRow, QualimatSearchFilters>({ url: '/qualimat_carriers' })
}