import { ArrayMinSize, IsArray, IsIn, IsOptional, IsString, IsUUID, MaxLength, ValidateNested, } from 'class-validator'; import { Type } from 'class-transformer'; const TREATMENT_TYPES = ['consultation', 'filling', 'endo', 'visit', 'hygiene'] as const; export class SaveTreatmentCaseDto { @IsString() @MaxLength(64) clientId: string; @IsOptional() @IsUUID() id?: string; @IsIn(TREATMENT_TYPES) treatmentType: string; @IsArray() @IsString({ each: true }) teeth: string[]; @IsOptional() @IsString() @MaxLength(5000) comment?: string; @IsOptional() @IsArray() @IsUUID(undefined, { each: true }) attachmentIds?: string[]; } export class SaveTreatmentDraftDto { @IsArray() @ArrayMinSize(1) @ValidateNested({ each: true }) @Type(() => SaveTreatmentCaseDto) cases: SaveTreatmentCaseDto[]; } export class SendTreatmentCaseDto { @IsArray() @ArrayMinSize(1) @IsUUID(undefined, { each: true }) organizationIds: string[]; } export class ListPatientTreatmentHistoryDto { @IsOptional() limit?: number; }