import { TicketTypeEnum } from '../../enums/ticket-type.enum'; import { Rule } from '../../interfaces/rule'; import { TicketDto } from '../../interfaces/ticket/ticket.dto'; import { getTicketType } from '../../utils/validation-utils'; export class ConfigTicket implements Rule { name = 'ConfigTicket'; validate(ticket: TicketDto): boolean { const ticketType = getTicketType( // @ts-expect-error bad typing // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access ticket?.ticketOrderLine?.productVariant?.validityDateFrom, // @ts-expect-error bad typing // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access ticket?.ticketOrderLine?.productVariant?.validityDateUntil, ); return !( (!ticket.ticketDurationValue || ticket.ticketDurationValue === -1) && ticketType === TicketTypeEnum.ROLLING ); } }