refactor(bookings): replace RFQ/quotation flow with submit, staff review, approval routing, and payment stubs

This commit is contained in:
marshal
2026-06-03 15:45:38 +03:00
parent f93a502247
commit 4ed0e22f55
16 changed files with 1448 additions and 367 deletions

View File

@@ -0,0 +1,74 @@
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsOptional, IsString, IsUUID, MinLength } from 'class-validator';
export class RequestChangesDto {
@ApiProperty({ description: 'Staff note explaining what the customer must fix' })
@IsString()
@MinLength(1)
note!: string;
@ApiPropertyOptional({ format: 'uuid' })
@IsOptional()
@IsUUID()
actorId?: string;
}
export class StaffAcceptDto {
@ApiPropertyOptional({ format: 'uuid' })
@IsOptional()
@IsUUID()
actorId?: string;
}
export class MarketingApproveDto {
@ApiPropertyOptional({ format: 'uuid' })
@IsOptional()
@IsUUID()
actorId?: string;
}
export class StaffRejectDto {
@ApiProperty()
@IsString()
@MinLength(1)
reason!: string;
@ApiPropertyOptional({ format: 'uuid' })
@IsOptional()
@IsUUID()
actorId?: string;
}
export class ApproveStepDto {
@ApiProperty({ format: 'uuid' })
@IsUUID()
actorId!: string;
@ApiProperty({ description: 'LINE_STAFF | DIRECTOR | CEO' })
@IsString()
requiredRole!: string;
}
export class RejectStepDto {
@ApiProperty({ format: 'uuid' })
@IsUUID()
actorId!: string;
@ApiProperty()
@IsString()
@MinLength(1)
reason!: string;
}
export class CancelBookingDto {
@ApiProperty()
@IsString()
@MinLength(1)
reason!: string;
}
export class BankCallbackDto {
@ApiProperty()
@IsString()
pnrCode!: string;
}