import { usePaginatedList } from '~/shared/composables/usePaginatedList' /** * Site Starseed rattache a une adresse du fournisseur, tel qu'embarque en LISTE * (groupe site:read) pour la colonne « Site » du Repertoire (badges colores). * Agrege des adresses cote back via Supplier::getSites() (cf. spec-back M2). */ export interface SupplierSite { id: number name: string color: string } /** * Categorie (type FOURNISSEUR) rattachee au fournisseur, embarquee en LISTE * (groupe category:read). La colonne « Catégories » affiche le `name` (et non le * `code` comme au M1 clients — decision spec-front M2 § Datatable). */ export interface SupplierCategory { code: string name: string } /** * Vue MINIMALE d'un fournisseur pour le Repertoire (datatable). Volontairement * partielle : seuls les champs des colonnes + l'id (navigation) sont types ici. * Le detail complet (onglets) est hors perimetre de cet ecran (ERP-93). */ export interface Supplier { id: number companyName: string categories: SupplierCategory[] sites: SupplierSite[] /** Date ISO de derniere modification (default:read) — colonne « Dernière activité ». */ updatedAt: string | null isArchived: boolean } /** * Repertoire fournisseurs (ERP-93) — simple enveloppe de `usePaginatedList` * sur la ressource `/suppliers` (RG-13 : pagination serveur obligatoire ; jamais * de chargement integral en memoire). Miroir de `useClientsRepository` (M1). * * Les filtres (recherche, categories, sites, inclusion des archives) sont pilotes * par la page via `setFilters` du composable partage — la remise en page 1 est * garantie. * * Volontairement PAR INSTANCE (pas de singleton module-level) : l'etat tableau * est propre a l'ecran Repertoire et meurt avec lui, comme tout consommateur de * `usePaginatedList`. Aucun reset au logout a gerer. */ export function useSuppliersRepository() { return usePaginatedList({ url: '/suppliers' }) }