Files
photo-live/services/api/src/emergency/dto.ts
T

33 lines
874 B
TypeScript
Raw Normal View History

// services/api/src/emergency/dto.ts —— 紧急停用通道请求 DTO(P2 Task 5)。
// 契约权威:openapi.yaml [internal] emergencyDisable/emergencyEnable
// (EmergencyDisableRequest/EmergencyEnableRequest)。「albumToken 与 albumId
// 恰好其一」的跨字段约束在服务端校验(EmergencyService.findAlbum)。
import {
IsOptional,
IsString,
MaxLength,
MinLength,
} from 'class-validator';
/** 相册定位字段(两 DTO 共用;与契约 schema 同步)。 */
abstract class EmergencyTargetDto {
@IsOptional()
@IsString()
@MaxLength(32)
albumToken?: string;
@IsOptional()
@IsString()
@MaxLength(64)
albumId?: string;
}
export class EmergencyDisableDto extends EmergencyTargetDto {
@IsString()
@MinLength(1)
@MaxLength(500)
reason!: string;
}
export class EmergencyEnableDto extends EmergencyTargetDto {}