import { ref } from 'vue' import type { Product } from '~/modules/catalog/types/product' /** * Chargement d'un produit unique (ecran « Modification produit », M6 — ERP-206). * Lit le detail via `GET /api/products/{id}` — meme structure que la ligne de * liste (category / sites / storageTypes embarques, § 4.0.bis). * * L'en-tete `Accept: application/ld+json` est impose pour obtenir le payload * Hydra complet (IRI `@id` des relations, necessaires au pre-remplissage des * selects). Etat 100 % local a l'instance (refs) — aucune persistance URL. */ export function useProduct(id: number | string) { const api = useApi() const product = ref(null) const loading = ref(false) const error = ref(false) /** Charge le detail du produit. En cas d'echec : `error = true`, `product = null`. */ async function load(): Promise { loading.value = true error.value = false try { product.value = await api.get( `/products/${id}`, {}, { headers: { Accept: 'application/ld+json' }, toast: false }, ) } catch { error.value = true product.value = null } finally { loading.value = false } } return { product, loading, error, load } }