feat(F-048): completed feature

This commit is contained in:
chattie
2026-08-19 07:17:14 +02:00
parent 8ee1938af9
commit 835ab66eda
187 changed files with 12361 additions and 1065 deletions

View File

@@ -56,6 +56,7 @@ export const authApi = {
};
// ── Products ──────────────────────────────────────────────────────────────────
// Backend: /catalog/products (admin list), /products/:id (admin CRUD)
export const productsApi = {
list: (params?: { limit?: number; offset?: number; q?: string }) => {
@@ -68,15 +69,15 @@ export const productsApi = {
`/api/catalog/products${qs ? `?${qs}` : ''}`,
);
},
get: (id: string) => api.get<import('@/types').Product>(`/api/catalog/products/${id}`),
get: (id: string) => api.get<import('@/types').Product>(`/api/products/${id}`),
getVariants: (id: string) =>
api.get<{ items: import('@/types').ProductVariant[] }>(`/api/catalog/products/${id}/variants`),
create: (data: unknown) => api.post<import('@/types').Product>('/api/catalog/products', data),
api.get<{ items: import('@/types').ProductVariant[] }>(`/api/products/${id}/variants`),
create: (data: unknown) => api.post<import('@/types').Product>('/api/products', data),
update: (id: string, data: unknown) =>
api.patch<import('@/types').Product>(`/api/catalog/products/${id}`, data),
api.patch<import('@/types').Product>(`/api/products/${id}`, data),
setState: (id: string, state: 'active' | 'archived') =>
api.patch(`/api/catalog/products/${id}/state`, { state }),
delete: (id: string) => api.delete(`/api/catalog/products/${id}`),
api.patch(`/api/products/${id}/state`, { state }),
delete: (id: string) => api.delete(`/api/products/${id}`),
};
// ── Orders ────────────────────────────────────────────────────────────────────
@@ -114,6 +115,15 @@ export const customersApi = {
api.patch<import('@/types').Customer>(`/api/users/${id}`, data),
create: (data: { email: string; password: string; displayName?: string; phone?: string }) =>
api.post<import('@/types').Customer>('/api/auth/register', data),
// ── Direcciones (FIX-18) ───────────────────────────────────────────────────
listAddresses: (id: string) =>
api.get<{ items: import('@/types').Address[] }>(`/api/users/${id}/addresses`),
createAddress: (id: string, data: Omit<import('@/types').Address, 'id' | 'userId' | 'createdAt' | 'updatedAt'>) =>
api.post<import('@/types').Address>(`/api/users/${id}/addresses`, data),
updateAddress: (id: string, addressId: string, data: Partial<Omit<import('@/types').Address, 'id' | 'userId' | 'createdAt' | 'updatedAt'>>) =>
api.patch<import('@/types').Address>(`/api/users/${id}/addresses/${addressId}`, data),
deleteAddress: (id: string, addressId: string) =>
api.delete<void>(`/api/users/${id}/addresses/${addressId}`),
};
// ── Brands ────────────────────────────────────────────────────────────────────