diff --git a/src/building/dtos/add.building.dto.ts b/src/building/dtos/add.building.dto.ts new file mode 100644 index 0000000..e9268c0 --- /dev/null +++ b/src/building/dtos/add.building.dto.ts @@ -0,0 +1,23 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsNotEmpty, IsString } from 'class-validator'; + +export class AddBuildingDto { + @ApiProperty({ + description: 'buildingName', + required: true, + }) + @IsString() + @IsNotEmpty() + public buildingName: string; + + @ApiProperty({ + description: 'communityUuid', + required: true, + }) + @IsString() + @IsNotEmpty() + public communityUuid: string; + constructor(dto: Partial) { + Object.assign(this, dto); + } +} diff --git a/src/building/dtos/get.building.dto.ts b/src/building/dtos/get.building.dto.ts new file mode 100644 index 0000000..f762469 --- /dev/null +++ b/src/building/dtos/get.building.dto.ts @@ -0,0 +1,51 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { Transform } from 'class-transformer'; +import { + IsBoolean, + IsInt, + IsNotEmpty, + IsOptional, + IsString, + Min, +} from 'class-validator'; + +export class GetBuildingDto { + @ApiProperty({ + description: 'buildingUuid', + required: true, + }) + @IsString() + @IsNotEmpty() + public buildingUuid: string; +} + +export class GetBuildingChildDto { + @ApiProperty({ example: 1, description: 'Page number', required: true }) + @IsInt({ message: 'Page must be a number' }) + @Min(1, { message: 'Page must not be less than 1' }) + @IsNotEmpty() + public page: number; + + @ApiProperty({ + example: 10, + description: 'Number of items per page', + required: true, + }) + @IsInt({ message: 'Page size must be a number' }) + @Min(1, { message: 'Page size must not be less than 1' }) + @IsNotEmpty() + public pageSize: number; + + @ApiProperty({ + example: true, + description: 'Flag to determine whether to fetch full hierarchy', + required: false, + default: false, + }) + @IsOptional() + @IsBoolean() + @Transform((value) => { + return value.obj.includeSubSpaces === 'true'; + }) + public includeSubSpaces: boolean = false; +} diff --git a/src/building/dtos/index.ts b/src/building/dtos/index.ts new file mode 100644 index 0000000..93e7c6f --- /dev/null +++ b/src/building/dtos/index.ts @@ -0,0 +1 @@ +export * from './add.building.dto';