import { Rule } from '../../interfaces/rule'; import { TicketDto } from '../../interfaces/ticket/ticket.dto'; export class DateRangeIsValid implements Rule { name = 'DateRangeIsValid'; validate(ticket: TicketDto): boolean { if (!ticket.validityDateUntil || !ticket.validationDateFrom || !ticket.validationDateUntil) { return true; } const currentDate: Date = new Date(Date.now()); // -- Validity Date (Allowed usage period) const toDate: Date = new Date(ticket.validityDateUntil); // -- Validation date (Allowed validation period) const fromValidationDate: Date = new Date(ticket.validationDateFrom); const untilValidationDate: Date = new Date(ticket.validationDateUntil); return ( currentDate <= toDate && currentDate >= fromValidationDate && currentDate <= untilValidationDate ); } }