feat(ticket): refine repair report and history timeline UI

This commit is contained in:
2026-06-19 11:22:41 +05:30
parent 8c3d19a429
commit a567a52e26
27 changed files with 1550 additions and 363 deletions

View File

@@ -3,9 +3,11 @@ import { API_ROUTES } from '@/constants/apiRoutes';
import type {
AssignTicketPayload,
AssignableTicketUsersResponse,
AssignableTicketUsersParams,
ReviewRepairPayload,
SseTokenResponse,
SubmitRepairPayload,
SubmitRepairUploadPayload,
TicketDetail,
TicketListParams,
TicketListResponse,
@@ -36,9 +38,18 @@ export const ticketService = {
return response.data;
},
getAssignableUsers: async (): Promise<AssignableTicketUsersResponse> => {
getAssignableUsers: async (
params?: AssignableTicketUsersParams,
): Promise<AssignableTicketUsersResponse> => {
const response = await axiosClient.get<AssignableTicketUsersResponse>(
API_ROUTES.TICKETS.ASSIGNABLE_USERS,
{
params: {
skip: params?.skip ?? 0,
limit: params?.limit ?? 20,
search_term: params?.search_term,
},
},
);
return response.data;
},
@@ -72,6 +83,29 @@ export const ticketService = {
return response.data;
},
submitRepairUpload: async (
ticketId: string,
payload: SubmitRepairUploadPayload,
): Promise<TicketDetail> => {
const formData = new FormData();
formData.append('notes', payload.notes);
formData.append('video', payload.video);
payload.images.forEach((image) => {
formData.append('images', image);
});
const response = await axiosClient.post<TicketDetail>(
API_ROUTES.TICKETS.SUBMIT_REPAIR_UPLOAD(ticketId),
formData,
{
headers: {
'Content-Type': 'multipart/form-data',
},
},
);
return response.data;
},
reviewRepair: async (
ticketId: string,
payload: ReviewRepairPayload,