import { Type } from 'class-transformer' import { IsArray, IsIn, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator' import { AvailabilityTimeStatusValues } from '../../../../models' import { AuthBaseParams } from '../../../../params' import { Timezone } from '../../../../utils/countries/timezones' export class AvailableTimesInput { @IsNotEmpty() @IsString() time: string @IsNotEmpty() @IsString() @IsIn([...AvailabilityTimeStatusValues]) status: string @IsNotEmpty() @IsString() timezone: Timezone } export class GenerateAvailabilityInput { @IsNotEmpty() @IsString() date: string @IsOptional() @IsString() userId?: string @IsNotEmpty() @IsArray() @ValidateNested() @Type(() => AvailableTimesInput) availableTimes: Array } export class GenerateAvailabilityParams extends AuthBaseParams { @IsNotEmpty() @ValidateNested() @Type(() => GenerateAvailabilityInput) readonly input: GenerateAvailabilityInput }