import { IsBoolean, IsOptional, IsString, IsNumber, IsArray, IsNotEmpty } from 'class-validator'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { Type } from 'class-transformer'; export class CreateFoodDto { @IsNotEmpty() @IsString() @ApiProperty({ example: '123e4567-e89b-12d3-a456-426614174000' }) categoryId: string; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) breakfast?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) tue?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) wed?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) thu?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) fri?: boolean; @IsOptional() @IsString() @ApiPropertyOptional({ example: 'قرمه سبزی' }) title?: string; @IsOptional() @IsString() @ApiPropertyOptional({ example: 'توضیحات غذا' }) desc?: string; @IsOptional() @IsArray() @IsString({ each: true }) @ApiPropertyOptional({ type: [String] }) content?: string[]; @IsOptional() @IsNumber() @Type(() => Number) @ApiPropertyOptional({ example: 120000 }) price?: number; @IsOptional() @IsNumber() @Type(() => Number) @ApiPropertyOptional({ example: 10 }) points?: number; @IsOptional() @IsNumber() @Type(() => Number) @ApiPropertyOptional({ example: 15 }) prepareTime?: number; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: true }) @Type(() => Boolean) sat?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: true }) @Type(() => Boolean) sun?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: true }) @Type(() => Boolean) mon?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) noon?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: true }) @Type(() => Boolean) dinner?: boolean; @IsOptional() @IsNumber() @Type(() => Number) @ApiPropertyOptional({ example: 10 }) stock?: number; @IsOptional() @IsNumber() @Type(() => Number) @ApiPropertyOptional({ example: 10 }) stockDefault?: number; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: true }) @Type(() => Boolean) isActive?: boolean; @IsOptional() @IsArray() @IsString({ each: true }) @ApiPropertyOptional({ type: [String] }) images?: string[]; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) inPlaceServe?: boolean; @IsOptional() @IsBoolean() @ApiPropertyOptional({ example: false }) @Type(() => Boolean) pickupServe?: boolean; @IsOptional() @IsNumber() @Type(() => Number) @ApiPropertyOptional({ example: 0 }) discount?: number; @IsOptional() @IsArray() @IsString({ each: true }) @ApiPropertyOptional({ type: [String] }) categoryIds?: string[]; }