// 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 {}