feat(constructeur) : add ConstructeurLinkEntry type, useConstructeurLinks composable, and ConstructeurLinksTable component

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-03-31 15:33:54 +02:00
parent c82c21c0cd
commit 63a56c47ba
3 changed files with 219 additions and 0 deletions

View File

@@ -7,6 +7,32 @@ export interface ConstructeurSummary {
phone?: string | null;
}
export interface ConstructeurLinkEntry {
linkId?: string;
constructeurId: string;
constructeur?: ConstructeurSummary | null;
supplierReference: string | null;
}
export const constructeurIdsFromLinks = (links: ConstructeurLinkEntry[]): string[] =>
links.map(l => l.constructeurId).filter(Boolean);
export const parseConstructeurLinksFromApi = (
apiLinks: any[],
): ConstructeurLinkEntry[] => {
if (!Array.isArray(apiLinks)) return [];
return apiLinks
.filter(link => link && typeof link === 'object')
.map(link => ({
linkId: link.id || (typeof link['@id'] === 'string' ? link['@id'].split('/').pop() : undefined),
constructeurId: typeof link.constructeur === 'string'
? link.constructeur.split('/').pop()!
: link.constructeur?.id || '',
constructeur: typeof link.constructeur === 'object' ? link.constructeur : null,
supplierReference: link.supplierReference ?? null,
}));
};
const isObject = (value: unknown): value is Record<string, unknown> =>
Boolean(value) && typeof value === 'object' && !Array.isArray(value);