diff --git a/src/app/(modules)/ticket/[ticketId]/components/TicketOverviewCard.tsx b/src/app/(modules)/ticket/[ticketId]/components/TicketOverviewCard.tsx index b4ed5b7..1643209 100644 --- a/src/app/(modules)/ticket/[ticketId]/components/TicketOverviewCard.tsx +++ b/src/app/(modules)/ticket/[ticketId]/components/TicketOverviewCard.tsx @@ -90,8 +90,8 @@ export function TicketOverviewCard({ ticket }: { ticket: TicketDetail }) { - - {ticket.chainage_id || '-'} + + {ticket.chainage_name} diff --git a/src/app/(modules)/ticket/hooks/useTenantTicketTableEvents.ts b/src/app/(modules)/ticket/hooks/useTenantTicketTableEvents.ts index a897bb0..c7413d5 100644 --- a/src/app/(modules)/ticket/hooks/useTenantTicketTableEvents.ts +++ b/src/app/(modules)/ticket/hooks/useTenantTicketTableEvents.ts @@ -88,7 +88,6 @@ function buildTicketListItem( !event.id || !event.ticket_name || !event.status || - !event.default_defect_class || event.detection_count === undefined || !event.updated_at ) { @@ -101,7 +100,7 @@ function buildTicketListItem( chainage_id: event.chainage_id ?? null, chainage_name: event.chainage_name ?? null, status: event.status, - default_defect_class: event.default_defect_class, + default_defect_class: event.default_defect_class ?? null, assigned_to_name: event.assigned_to_name ?? null, detection_count: event.detection_count, created_by_name: event.created_by_name ?? null, diff --git a/src/app/(modules)/ticket/hooks/useTicketQueries.ts b/src/app/(modules)/ticket/hooks/useTicketQueries.ts index 8224173..c6336b0 100644 --- a/src/app/(modules)/ticket/hooks/useTicketQueries.ts +++ b/src/app/(modules)/ticket/hooks/useTicketQueries.ts @@ -63,8 +63,8 @@ export function useTicketDetailQuery( return useQuery({ queryKey: ticketKeys.detail(ticketId ?? '', defectClass), queryFn: () => - ticketService.getTicketDetail(ticketId as string, defectClass as string), - enabled: Boolean(ticketId && defectClass), + ticketService.getTicketDetail(ticketId as string, defectClass), + enabled: Boolean(ticketId), }); } diff --git a/src/app/(modules)/ticket/page.tsx b/src/app/(modules)/ticket/page.tsx index 1f6a5b7..7df18bd 100644 --- a/src/app/(modules)/ticket/page.tsx +++ b/src/app/(modules)/ticket/page.tsx @@ -44,9 +44,11 @@ export default function TicketPage() { const handleView = useCallback( (ticket: TicketListItem) => { - router.push( - `/ticket/${ticket.id}?defect_class=${encodeURIComponent(ticket.default_defect_class)}`, - ); + const defectClassQuery = ticket.default_defect_class + ? `?defect_class=${encodeURIComponent(ticket.default_defect_class)}` + : ''; + + router.push(`/ticket/${ticket.id}${defectClassQuery}`); }, [router], ); diff --git a/src/constants/apiRoutes.ts b/src/constants/apiRoutes.ts index 64cd38a..0eac521 100644 --- a/src/constants/apiRoutes.ts +++ b/src/constants/apiRoutes.ts @@ -54,7 +54,8 @@ export const API_ROUTES = { }, TICKETS: { BASE: '/biz/api/v1/tickets', - DETAIL: (id: string, defectClass: string) => + DETAIL: (id: string) => `/biz/api/v1/tickets/${id}`, + CLASS_DETAIL: (id: string, defectClass: string) => `/biz/api/v1/tickets/${id}/class-detail?defect_class=${defectClass}`, DEFECT_CLASSES: (id: string) => `/biz/api/v1/tickets/${id}/defect-classes`, ASSIGN: (id: string) => `/biz/api/v1/tickets/${id}/assign`, diff --git a/src/services/api/ticket.service.ts b/src/services/api/ticket.service.ts index ed10bce..fc8cbab 100644 --- a/src/services/api/ticket.service.ts +++ b/src/services/api/ticket.service.ts @@ -35,11 +35,13 @@ export const ticketService = { getTicketDetail: async ( ticketId: string, - defectClass: string, + defectClass?: string, ): Promise => { - const response = await axiosClient.get( - API_ROUTES.TICKETS.DETAIL(ticketId, defectClass), - ); + const path = defectClass + ? API_ROUTES.TICKETS.CLASS_DETAIL(ticketId, defectClass) + : API_ROUTES.TICKETS.DETAIL(ticketId); + + const response = await axiosClient.get(path); return response.data; }, diff --git a/src/types/ticket/detail.ts b/src/types/ticket/detail.ts index cbfae64..60186c4 100644 --- a/src/types/ticket/detail.ts +++ b/src/types/ticket/detail.ts @@ -71,6 +71,7 @@ export interface TicketDetail { ticket_name?: string; video_id: string; chainage_id: string | null; + chainage_name: string | null; status: TicketStatus; defect_class: string; defect_display_name: string; diff --git a/src/types/ticket/events.ts b/src/types/ticket/events.ts index 0372de6..187db31 100644 --- a/src/types/ticket/events.ts +++ b/src/types/ticket/events.ts @@ -14,7 +14,7 @@ export type TicketTableStatusEvent = { chainage_id?: string | null; chainage_name?: string | null; status?: TicketStatus; - default_defect_class?: string; + default_defect_class?: string | null; assigned_to_name?: string | null; detection_count?: number; created_by_name?: string | null; diff --git a/src/types/ticket/list.ts b/src/types/ticket/list.ts index 6667e63..c5045e0 100644 --- a/src/types/ticket/list.ts +++ b/src/types/ticket/list.ts @@ -12,7 +12,7 @@ export interface TicketListItem { chainage_id: string | null; chainage_name: string | null; status: TicketStatus; - default_defect_class: string; + default_defect_class: string | null; assigned_to_name: string | null; detection_count: number; created_by_name: string | null;