rework internal order system
This commit is contained in:
@@ -6,13 +6,33 @@ import type {
|
||||
AusruestungAnfrageDetailResponse,
|
||||
AusruestungAnfrageFormItem,
|
||||
AusruestungOverview,
|
||||
AusruestungKategorie,
|
||||
AusruestungEigenschaft,
|
||||
} from '../types/ausruestungsanfrage.types';
|
||||
|
||||
export const ausruestungsanfrageApi = {
|
||||
// ── Categories (DB-backed) ──
|
||||
getKategorien: async (): Promise<AusruestungKategorie[]> => {
|
||||
const r = await api.get('/api/ausruestungsanfragen/kategorien');
|
||||
return r.data.data;
|
||||
},
|
||||
createKategorie: async (name: string): Promise<AusruestungKategorie> => {
|
||||
const r = await api.post('/api/ausruestungsanfragen/kategorien', { name });
|
||||
return r.data.data;
|
||||
},
|
||||
updateKategorie: async (id: number, name: string): Promise<AusruestungKategorie> => {
|
||||
const r = await api.patch(`/api/ausruestungsanfragen/kategorien/${id}`, { name });
|
||||
return r.data.data;
|
||||
},
|
||||
deleteKategorie: async (id: number): Promise<void> => {
|
||||
await api.delete(`/api/ausruestungsanfragen/kategorien/${id}`);
|
||||
},
|
||||
|
||||
// ── Catalog Items ──
|
||||
getItems: async (filters?: { kategorie?: string; aktiv?: boolean }): Promise<AusruestungArtikel[]> => {
|
||||
getItems: async (filters?: { kategorie?: string; kategorie_id?: number; aktiv?: boolean }): Promise<AusruestungArtikel[]> => {
|
||||
const params = new URLSearchParams();
|
||||
if (filters?.kategorie) params.set('kategorie', filters.kategorie);
|
||||
if (filters?.kategorie_id) params.set('kategorie_id', String(filters.kategorie_id));
|
||||
if (filters?.aktiv !== undefined) params.set('aktiv', String(filters.aktiv));
|
||||
const r = await api.get(`/api/ausruestungsanfragen/items?${params.toString()}`);
|
||||
return r.data.data;
|
||||
@@ -37,6 +57,22 @@ export const ausruestungsanfrageApi = {
|
||||
return r.data.data;
|
||||
},
|
||||
|
||||
// ── Item Eigenschaften (characteristics) ──
|
||||
getArtikelEigenschaften: async (artikelId: number): Promise<AusruestungEigenschaft[]> => {
|
||||
const r = await api.get(`/api/ausruestungsanfragen/items/${artikelId}/eigenschaften`);
|
||||
return r.data.data;
|
||||
},
|
||||
upsertArtikelEigenschaft: async (
|
||||
artikelId: number,
|
||||
data: { eigenschaft_id?: number; name: string; typ: string; optionen?: string[]; pflicht?: boolean; sort_order?: number },
|
||||
): Promise<AusruestungEigenschaft> => {
|
||||
const r = await api.post(`/api/ausruestungsanfragen/items/${artikelId}/eigenschaften`, data);
|
||||
return r.data.data;
|
||||
},
|
||||
deleteArtikelEigenschaft: async (eigenschaftId: number): Promise<void> => {
|
||||
await api.delete(`/api/ausruestungsanfragen/eigenschaften/${eigenschaftId}`);
|
||||
},
|
||||
|
||||
// ── Requests ──
|
||||
getRequests: async (filters?: { status?: string }): Promise<AusruestungAnfrage[]> => {
|
||||
const params = new URLSearchParams();
|
||||
@@ -57,7 +93,7 @@ export const ausruestungsanfrageApi = {
|
||||
notizen?: string,
|
||||
bezeichnung?: string,
|
||||
fuer_benutzer_id?: string,
|
||||
): Promise<AusruestungAnfrage> => {
|
||||
): Promise<AusruestungAnfrageDetailResponse> => {
|
||||
const r = await api.post('/api/ausruestungsanfragen/requests', { items, notizen, bezeichnung, fuer_benutzer_id });
|
||||
return r.data.data;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user