import { http } from './http.js'; /** * Sales orders (manifest type = order). * Summary = { id, number, type: 'order', entityId, date } * Line shape same as quote (no transactedAmount). */ export const order = { /** * GET /api/order?offset=0&limit=50&search=...&onlyUnpaid=true&onlyUndelivered=true&seekMonths=-1 * @param {{ offset?: number, limit?: number, search?: string, onlyUnpaid?: boolean, onlyUndelivered?: boolean, seekMonths?: number }} [params] * → { orders: Order[], total: number, offset: number, limit: number } */ // #region GET /api/order — list list({ offset = 0, limit = 50, search, onlyUnpaid, onlyUndelivered, seekMonths } = {}) { const params = new URLSearchParams(); if (offset != null) params.set('offset', String(Math.max(0, Math.floor(Number(offset) || 0)))); if (limit != null) params.set('limit', String(Math.max(1, Math.floor(Number(limit) || 50)))); if (search && String(search).trim()) params.set('search', String(search).trim()); if (onlyUnpaid === true || onlyUnpaid === 'true') params.set('onlyUnpaid', 'true'); if (onlyUndelivered === true || onlyUndelivered === 'true') params.set('onlyUndelivered', 'true'); if (seekMonths != null && Number(seekMonths) < 0) { params.set('seekMonths', String(Math.floor(Number(seekMonths)))); } const qs = params.toString(); return http(`/api/order${qs ? `?${qs}` : ''}`); }, // #endregion /** GET /api/order/:id → { order: Order } */ // #region GET /api/order/:id — get get(id) { return http(`/api/order/${id}`); }, // #endregion /** * POST /api/order * Body: { number, date, entityId?, lines } * → 201 { order: Order } */ // #region POST /api/order — create create(body) { return http('/api/order', { method: 'POST', body }); }, // #endregion /** * PATCH /api/order/:id * Body: partial { number?, date?, entityId?, lines? } * → 200 { order: Order } */ // #region PATCH /api/order/:id — update update(id, body) { return http(`/api/order/${id}`, { method: 'PATCH', body }); }, // #endregion /** DELETE /api/order/:id → 204 */ // #region DELETE /api/order/:id — delete delete(id) { return http(`/api/order/${id}`, { method: 'DELETE' }); }, // #endregion };