mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 09:30:59 +00:00
74 lines
2.0 KiB
TypeScript
74 lines
2.0 KiB
TypeScript
import { ApiPropertyOptional } from '@nestjs/swagger';
|
|
import { Type } from 'class-transformer';
|
|
import { IsInt, IsNumber, IsOptional, Max, Min } from 'class-validator';
|
|
|
|
/**
|
|
* Per-schedule booking-window rule override (staff action on the ops board).
|
|
* Every field is optional — only the ones sent are changed; the rest keep the
|
|
* schedule's existing snapshot. Mirrors the window fields of the global rules DTO.
|
|
*/
|
|
export class UpdateScheduleWindowRuleDto {
|
|
@ApiPropertyOptional({ example: 8, description: 'Local EAT hour the booking desk opens each day' })
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
@IsInt()
|
|
@Min(0)
|
|
@Max(23)
|
|
windowOpenHour?: number;
|
|
|
|
@ApiPropertyOptional({
|
|
example: 17,
|
|
description:
|
|
'Local EAT hour the booking desk shuts each day; a not-yet-full window resumes next morning at windowOpenHour. Equal to windowOpenHour = 24-hour desk',
|
|
})
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
@IsInt()
|
|
@Min(0)
|
|
@Max(23)
|
|
windowCloseHour?: number;
|
|
|
|
@ApiPropertyOptional({ example: 3, description: 'How long each booking cycle stays open, in hours' })
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
@IsNumber()
|
|
@Min(0.0166)
|
|
@Max(12)
|
|
windowDurationHours?: number;
|
|
|
|
@ApiPropertyOptional({ example: 30, description: 'Max staff document-review minutes after the window closes' })
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
@IsInt()
|
|
@Min(0)
|
|
docReviewMinutes?: number;
|
|
|
|
@ApiPropertyOptional({ example: 60, description: 'Customer payment window minutes' })
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
@IsInt()
|
|
@Min(1)
|
|
paymentWindowMinutes?: number;
|
|
|
|
@ApiPropertyOptional({
|
|
example: 3,
|
|
description: 'Days before departure the booking window starts (re-derives the window start)',
|
|
})
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
@IsInt()
|
|
@Min(0)
|
|
importWindowLeadDays?: number;
|
|
|
|
@ApiPropertyOptional({
|
|
example: 24,
|
|
description:
|
|
'Hours before departure the single FCFS export window opens (EXPORT schedules; re-derives the window start)',
|
|
})
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
@IsInt()
|
|
@Min(1)
|
|
exportBookingLeadHours?: number;
|
|
}
|