Package inquiry, UAT related update

This commit is contained in:
Stephanos A
2026-06-26 13:57:26 +03:00
parent eefbe6e8ed
commit 86c7b2e4eb
23 changed files with 648 additions and 93 deletions

View File

@@ -37,6 +37,8 @@ export class TicketsController {
@ApiQuery({ name: 'originStationId', required: false })
@ApiQuery({ name: 'destinationStationId', required: false })
@ApiQuery({ name: 'arrivalDate', required: false })
@ApiQuery({ name: 'dateFrom', required: false })
@ApiQuery({ name: 'dateTo', required: false })
@ApiQuery({ name: 'skip', required: false })
@ApiQuery({ name: 'take', required: false })
listTickets(
@@ -45,6 +47,8 @@ export class TicketsController {
@Query('originStationId') originStationId?: string,
@Query('destinationStationId') destinationStationId?: string,
@Query('arrivalDate') arrivalDate?: string,
@Query('dateFrom') dateFrom?: string,
@Query('dateTo') dateTo?: string,
@Query('skip') skip?: string,
@Query('take') take?: string,
) {
@@ -54,6 +58,8 @@ export class TicketsController {
originStationId,
destinationStationId,
arrivalDate,
dateFrom,
dateTo,
skip: skip ? parseInt(skip) : 0,
take: take ? parseInt(take) : 50,
});

View File

@@ -21,7 +21,7 @@ export class TicketsService {
@InjectDataSource() private readonly dataSource: DataSource,
) {}
async listTickets(filters: { search?: string; status?: string; originStationId?: string; destinationStationId?: string; arrivalDate?: string; skip: number; take: number }) {
async listTickets(filters: { search?: string; status?: string; originStationId?: string; destinationStationId?: string; arrivalDate?: string; dateFrom?: string; dateTo?: string; skip: number; take: number }) {
const where: any = {};
if (filters.search) {
where.OR = [
@@ -31,7 +31,7 @@ export class TicketsService {
];
}
if (filters.status) {
where.booking = { ...where.booking, status: filters.status };
where.status = filters.status;
}
if (filters.originStationId) {
where.booking = { ...where.booking, schedule: { ...where.booking?.schedule, originStationId: filters.originStationId } };
@@ -45,6 +45,12 @@ export class TicketsService {
end.setDate(end.getDate() + 1);
where.booking = { ...where.booking, schedule: { ...where.booking?.schedule, arrivalAt: { gte: start, lt: end } } };
}
if (filters.dateFrom || filters.dateTo) {
where.issuedAt = {
...(filters.dateFrom ? { gte: new Date(filters.dateFrom) } : {}),
...(filters.dateTo ? { lte: new Date(new Date(filters.dateTo).setHours(23, 59, 59, 999)) } : {}),
};
}
const [tickets, total] = await Promise.all([
this.prisma.ticket.findMany({
where,