feat(ticket): add assignment lots card to ticket detail

This commit is contained in:
2026-07-29 12:16:27 +05:30
parent 8e8803396d
commit 7ffe3f0708
8 changed files with 300 additions and 7 deletions

View File

@@ -9,6 +9,8 @@ import type {
ReviewTicketExtensionPayload,
SseTokenResponse,
TicketDetail,
TicketAssignmentSummary,
TicketAssignmentsResponse,
TicketExtensionRequestsResponse,
TicketOverviewDetail,
TicketDefectClassesResponse,
@@ -16,6 +18,14 @@ import type {
TicketListResponse,
} from '@/types';
type TicketAssignmentsApiResponse =
| TicketAssignmentSummary[]
| TicketAssignmentsResponse
| {
assignments: TicketAssignmentSummary[];
total?: number;
};
export const ticketService = {
getTickets: async (
params?: TicketListParams,
@@ -80,14 +90,36 @@ export const ticketService = {
assignTicket: async (
ticketId: string,
payload: AssignTicketPayload,
): Promise<TicketDetail> => {
const response = await axiosClient.post<TicketDetail>(
): Promise<TicketAssignmentSummary> => {
const response = await axiosClient.post<TicketAssignmentSummary>(
API_ROUTES.TICKETS.ASSIGNMENTS(ticketId),
payload,
);
return response.data;
},
getTicketAssignments: async (
ticketId: string,
): Promise<TicketAssignmentsResponse> => {
const response = await axiosClient.get<TicketAssignmentsApiResponse>(
API_ROUTES.TICKETS.ASSIGNMENTS(ticketId),
);
const data = response.data;
if (Array.isArray(data)) {
return { items: data, total: data.length };
}
if ('assignments' in data) {
return {
items: data.assignments,
total: data.total ?? data.assignments.length,
};
}
return data;
},
requestTicketExtension: async (
ticketId: string,
assignmentId: number,