73 lines
1.2 KiB
TypeScript
73 lines
1.2 KiB
TypeScript
import {
|
|
IsArray,
|
|
IsNumber,
|
|
IsOptional,
|
|
IsString,
|
|
ArrayMaxSize,
|
|
MaxLength,
|
|
ValidateIf,
|
|
Max,
|
|
Min,
|
|
} from 'class-validator'
|
|
import {
|
|
OWNER_INTRODUCTION_MAX_LENGTH,
|
|
OWNER_CERTIFICATIONS_MAX_COUNT,
|
|
OWNER_CERTIFICATION_MAX_LENGTH,
|
|
} from '@mp-pilates/shared'
|
|
|
|
export class UpdateStudioDto {
|
|
@IsOptional()
|
|
@IsString()
|
|
name?: string
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
logo?: string
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
bannerUrl?: string
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
address?: string
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
phone?: string
|
|
|
|
@IsOptional()
|
|
@IsNumber()
|
|
@Min(-90)
|
|
@Max(90)
|
|
latitude?: number
|
|
|
|
@IsOptional()
|
|
@IsNumber()
|
|
@Min(-180)
|
|
@Max(180)
|
|
longitude?: number
|
|
|
|
@IsOptional()
|
|
@IsNumber()
|
|
@Min(0)
|
|
cancelHoursLimit?: number
|
|
|
|
@IsOptional()
|
|
@IsArray()
|
|
@IsString({ each: true })
|
|
photos?: string[]
|
|
|
|
@ValidateIf((_object, value) => value !== undefined)
|
|
@IsString()
|
|
@MaxLength(OWNER_INTRODUCTION_MAX_LENGTH)
|
|
ownerIntroduction?: string
|
|
|
|
@ValidateIf((_object, value) => value !== undefined)
|
|
@IsArray()
|
|
@ArrayMaxSize(OWNER_CERTIFICATIONS_MAX_COUNT)
|
|
@IsString({ each: true })
|
|
@MaxLength(OWNER_CERTIFICATION_MAX_LENGTH, { each: true })
|
|
ownerCertifications?: string[]
|
|
}
|