feat(ticket): support defect-class ticket workflows

This commit is contained in:
2026-06-26 00:50:52 +05:30
parent 8665762ba2
commit 1f8ca87bd0
21 changed files with 343 additions and 70 deletions

View File

@@ -4,11 +4,13 @@ import type {
AssignTicketPayload,
AssignableTicketUsersResponse,
AssignableTicketUsersParams,
CloseTicketPayload,
ReviewRepairPayload,
SseTokenResponse,
SubmitRepairPayload,
SubmitRepairUploadPayload,
TicketDetail,
TicketDefectClassesResponse,
TicketListParams,
TicketListResponse,
} from '@/types';
@@ -31,9 +33,21 @@ export const ticketService = {
return response.data;
},
getTicketDetail: async (ticketId: string): Promise<TicketDetail> => {
getTicketDetail: async (
ticketId: string,
defectClass: string,
): Promise<TicketDetail> => {
const response = await axiosClient.get<TicketDetail>(
API_ROUTES.TICKETS.DETAIL(ticketId),
API_ROUTES.TICKETS.DETAIL(ticketId, defectClass),
);
return response.data;
},
getTicketDefectClasses: async (
ticketId: string,
): Promise<TicketDefectClassesResponse> => {
const response = await axiosClient.get<TicketDefectClassesResponse>(
API_ROUTES.TICKETS.DEFECT_CLASSES(ticketId),
);
return response.data;
},
@@ -88,6 +102,7 @@ export const ticketService = {
payload: SubmitRepairUploadPayload,
): Promise<TicketDetail> => {
const formData = new FormData();
formData.append('defect_class', payload.defect_class);
formData.append('notes', payload.notes);
formData.append('video', payload.video);
payload.images.forEach((image) => {
@@ -117,9 +132,13 @@ export const ticketService = {
return response.data;
},
closeTicket: async (ticketId: string): Promise<TicketDetail> => {
closeTicket: async (
ticketId: string,
payload: CloseTicketPayload,
): Promise<TicketDetail> => {
const response = await axiosClient.post<TicketDetail>(
API_ROUTES.TICKETS.CLOSE(ticketId),
payload,
);
return response.data;
},