using cuqmbr.TravelGuide.Application.Common.Models; using cuqmbr.TravelGuide.Domain.Enums; using MediatR; namespace cuqmbr.TravelGuide.Application.TicketGroups.Queries.GetTicketGroupsPage; public record GetTicketGroupsPageQuery : IRequest> { public int PageNumber { get; set; } = 1; public int PageSize { get; set; } = 10; public string Search { get; set; } = String.Empty; public string Sort { get; set; } = String.Empty; public HashSet? PassangerSex { get; set; } public DateOnly? PassangerBirthDateGreaterThanOrEqualTo { get; set; } public DateOnly? PassangerBirthDateLessThanOrEqualTo { get; set; } public DateTimeOffset? PurchaseTimeGreaterThanOrEqualTo { get; set; } public DateTimeOffset? PurchaseTimeLessThanOrEqualTo { get; set; } public HashSet? Statuses { get; set; } public HashSet? VehicleTypes { get; set; } public TimeSpan? TravelTimeGreaterThanOrEqualTo { get; set; } public TimeSpan? TravelTimeLessThanOrEqualTo { get; set; } // TODO: Add filtering parametetrs listed below. It is hard to // be done because of pagination. // public decimal? CostGreaterThanOrEqualTo { get; set; } // // public decimal? CostLessThanOrEqualTo { get; set; } // // public short? NumberOfTransfersGreaterThanOrEqualTo { get; set; } // // public short? NumberOfTransfersLessThanOrEqualTo { get; set; } // // public DateTimeOffset? DepartureTimeGreaterThanOrEqualTo { get; set; } // // public DateTimeOffset? DepartureTimeLessThanOrEqualTo { get; set; } // // public DateTimeOffset? ArrivalTimeGreaterThanOrEqualTo { get; set; } // // public DateTimeOffset? ArrivalTimeLessThanOrEqualTo { get; set; } }