import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { Type } from 'class-transformer'; import { IsArray, IsOptional, IsString, ValidateNested } from 'class-validator'; import { DeleteSubspaceModelDto, ModifySubspaceModelDto, UpdateSubspaceModelDto, } from './subspaces-model-dtos'; import { CreateSubspaceModelDto } from './subspaces-model-dtos/create-subspace-model.dto'; import { ModifyTagDto } from 'src/space/dtos/tag/modify-tag.dto'; export class UpdateSpaceModelDto { @ApiProperty({ description: 'Updated name of the space model', example: 'New Space Model Name', }) @IsOptional() @IsString() modelName?: string; @ApiPropertyOptional({ description: 'List of subspace modifications (add/update/delete)', type: [ModifySubspaceModelDto], }) @IsOptional() @IsArray() @ValidateNested({ each: true }) @Type(() => ModifySubspaceModelDto) subspaceModels?: ModifySubspaceModelDto[]; @ApiPropertyOptional({ description: 'List of tag modifications (add/update/delete) for the space model', type: [ModifyTagDto], }) @IsOptional() @IsArray() @ValidateNested({ each: true }) @Type(() => ModifyTagDto) tags?: ModifyTagDto[]; }