feat(tickets): handle refunded ticket states

This commit is contained in:
2026-09-10 16:10:54 -03:00
parent 6545be498f
commit e9aae7a4c3
3 changed files with 9 additions and 4 deletions

View File

@@ -115,6 +115,7 @@ export interface PurchaseDetailItemResponse {
quantity: number; quantity: number;
unit_price: string; unit_price: string;
line_total: string; line_total: string;
refunded_amount?: string;
source_catalog_item_id: number | null; source_catalog_item_id: number | null;
source_variant_id: number | null; source_variant_id: number | null;
item_details: { item_details: {

View File

@@ -15,6 +15,8 @@ export interface TicketResponse {
starts_at: string | null; starts_at: string | null;
expires_at: string | null; expires_at: string | null;
used_at: string | null; used_at: string | null;
status?: 'active' | 'expired' | 'used' | 'disabled' | 'cancelled' | 'refunded';
status_label?: string;
is_valid: boolean; is_valid: boolean;
is_expired: boolean; is_expired: boolean;
is_used: boolean; is_used: boolean;
@@ -26,9 +28,7 @@ export class TicketService extends BaseApiService {
getTickets(): Promise<TicketResponse[]> { getTickets(): Promise<TicketResponse[]> {
return firstValueFrom( return firstValueFrom(
this.http.get<{ data: TicketResponse[] }>( this.http.get<{ data: TicketResponse[] }>(`${this.tenantService.getTenantApiUrl()}/tickets`),
`${this.tenantService.getTenantApiUrl()}/tickets`,
),
).then((response) => response.data ?? []); ).then((response) => response.data ?? []);
} }

View File

@@ -63,7 +63,11 @@ export class TicketsPage implements OnInit {
} }
protected isInactive(ticket: TicketResponse): boolean { protected isInactive(ticket: TicketResponse): boolean {
return ticket.is_expired || ticket.is_used; return (
(ticket.status !== undefined && ticket.status !== 'active') ||
ticket.is_expired ||
ticket.is_used
);
} }
protected formatDate(ticket: TicketResponse): string | null { protected formatDate(ticket: TicketResponse): string | null {