mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 12:41:04 +00:00
42 lines
981 B
TypeScript
42 lines
981 B
TypeScript
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
import { IsIn, IsOptional, IsString, IsUUID } from 'class-validator';
|
|
|
|
const STATUS_ACTIONS = [
|
|
'SUBMIT',
|
|
'SEND_QUOTATION',
|
|
'APPROVE_QUOTATION',
|
|
'REJECT_QUOTATION',
|
|
'APPROVE_STEP',
|
|
'APPROVE',
|
|
'CUSTOMER_SIGN',
|
|
'MARK_FULLY_EXECUTED',
|
|
'MARK_PAID',
|
|
'START_TRANSIT',
|
|
'COMPLETE',
|
|
'REJECT',
|
|
'CANCEL',
|
|
] as const;
|
|
|
|
export { STATUS_ACTIONS };
|
|
|
|
export class UpdateStatusDto {
|
|
@ApiProperty({ enum: STATUS_ACTIONS })
|
|
@IsIn([...STATUS_ACTIONS])
|
|
action!: string;
|
|
|
|
@ApiPropertyOptional({ format: 'uuid', description: 'Staff/director/CEO actor' })
|
|
@IsOptional()
|
|
@IsUUID()
|
|
actorId?: string;
|
|
|
|
@ApiPropertyOptional({ description: 'Required role for APPROVE_STEP (LINE_STAFF, DIRECTOR, CEO)' })
|
|
@IsOptional()
|
|
@IsString()
|
|
requiredRole?: string;
|
|
|
|
@ApiPropertyOptional({ description: 'Required for REJECT, REJECT_QUOTATION, CANCEL' })
|
|
@IsOptional()
|
|
@IsString()
|
|
reason?: string;
|
|
}
|