import { ValidationState } from '../../enums/validation-state'; import { Rule } from '../../interfaces/rule'; import { TicketDto } from '../../interfaces/ticket/ticket.dto'; import { Validation } from '../../interfaces/validation/validation.model'; export class OnlyFutureValidation implements Rule { name = 'OnlyFutureValidation'; validate(ticket: TicketDto): boolean { const validation: Array = ticket.validations.filter((validation: Validation) => [ValidationState.VALID, ValidationState.PENDING].includes(validation.state), ); return validation.every((validation: Validation) => validation.validFrom > new Date()); } }