/** Production Orders resource – Production BC. */ import type { AxiosInstance } from 'axios'; import type { ProductionOrderDTO, CreateProductionOrderRequest, StartProductionOrderRequest } from '@effigenix/types'; export type Priority = 'LOW' | 'NORMAL' | 'HIGH' | 'URGENT'; export const PRIORITY_LABELS: Record = { LOW: 'Niedrig', NORMAL: 'Normal', HIGH: 'Hoch', URGENT: 'Dringend', }; export type ProductionOrderStatus = 'CREATED' | 'RELEASED' | 'IN_PRODUCTION' | 'COMPLETED' | 'CANCELLED'; export const PRODUCTION_ORDER_STATUS_LABELS: Record = { CREATED: 'Erstellt', RELEASED: 'Freigegeben', IN_PRODUCTION: 'In Produktion', COMPLETED: 'Abgeschlossen', CANCELLED: 'Storniert', }; export type { ProductionOrderDTO, CreateProductionOrderRequest, StartProductionOrderRequest }; const BASE = '/api/production/production-orders'; export function createProductionOrdersResource(client: AxiosInstance) { return { async list(): Promise { const res = await client.get(BASE); return res.data; }, async getById(id: string): Promise { const res = await client.get(`${BASE}/${id}`); return res.data; }, async create(request: CreateProductionOrderRequest): Promise { const res = await client.post(BASE, request); return res.data; }, async release(id: string): Promise { const res = await client.post(`${BASE}/${id}/release`); return res.data; }, async start(id: string, request: StartProductionOrderRequest): Promise { const res = await client.post(`${BASE}/${id}/start`, request); return res.data; }, }; } export type ProductionOrdersResource = ReturnType;