55 lines
2.0 KiB
TypeScript
55 lines
2.0 KiB
TypeScript
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<Supplier>`
|
|
* 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<Supplier>({ url: '/suppliers' })
|
|
}
|