Files
lcbp3/frontend/lib/services/transmittal.service.ts
T

64 lines
1.9 KiB
TypeScript

// File: lib/services/transmittal.service.ts
import apiClient from '@/lib/api/client';
import {
CreateTransmittalDto,
UpdateTransmittalDto,
SearchTransmittalDto,
} from '@/types/dto/transmittal/transmittal.dto';
export const transmittalService = {
/**
* ดึงรายการ Transmittal ทั้งหมด (รองรับ Search & Filter)
*/
getAll: async (params: SearchTransmittalDto) => {
// GET /transmittals
const response = await apiClient.get('/transmittals', { params });
return response.data;
},
/**
* ดึงรายละเอียด Transmittal ตาม UUID (ADR-019)
*/
getByUuid: async (uuid: string) => {
// GET /transmittals/:uuid
const response = await apiClient.get(`/transmittals/${uuid}`);
return response.data;
},
/**
* สร้างเอกสารนำส่งใหม่
*/
create: async (data: CreateTransmittalDto) => {
// POST /transmittals
const response = await apiClient.post('/transmittals', data);
return response.data;
},
/**
* แก้ไขข้อมูล Transmittal (เฉพาะ Draft)
*/
update: async (uuid: string, data: UpdateTransmittalDto) => {
// PUT /transmittals/:uuid (ADR-019)
const response = await apiClient.put(`/transmittals/${uuid}`, data);
return response.data;
},
/**
* Submit Transmittal to Workflow (EC-RFA-004 validation fires on backend)
* POST /transmittals/:uuid/submit
*/
submit: async (uuid: string): Promise<{ instanceId: string; currentState: string }> => {
const response = await apiClient.post(`/transmittals/${uuid}/submit`);
return response.data?.data ?? response.data;
},
/**
* ลบเอกสาร (Soft Delete)
*/
delete: async (uuid: string) => {
// DELETE /transmittals/:uuid (ADR-019)
const response = await apiClient.delete(`/transmittals/${uuid}`);
return response.data;
},
};