http-api/src/Application/TicketGroups/Queries/GetTicketGroupsPage/GetTicketGroupsPageQuery.cs
2025-05-30 13:14:20 +03:00

54 lines
1.8 KiB
C#

using cuqmbr.TravelGuide.Application.Common.Models;
using cuqmbr.TravelGuide.Domain.Enums;
using MediatR;
namespace cuqmbr.TravelGuide.Application.TicketGroups.Queries.GetTicketGroupsPage;
public record GetTicketGroupsPageQuery : IRequest<PaginatedList<TicketGroupDto>>
{
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<Sex>? 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<TicketStatus>? Statuses { get; set; }
public HashSet<VehicleType>? 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; }
}