diff --git a/src/modules/foods/dto/create-food.dto.ts b/src/modules/foods/dto/create-food.dto.ts index 603346f..76f3489 100644 --- a/src/modules/foods/dto/create-food.dto.ts +++ b/src/modules/foods/dto/create-food.dto.ts @@ -5,28 +5,33 @@ import { Type } from 'class-transformer'; export class CreateFoodDto { @IsNotEmpty() @IsString() - @ApiProperty({ example: '123e4567-e89b-12d3-a456-426614174000' }) + @ApiProperty() 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 }) @@ -140,8 +145,8 @@ export class CreateFoodDto { discount?: number; @IsOptional() - @IsArray() - @IsString({ each: true }) - @ApiPropertyOptional({ type: [String] }) - categoryIds?: string[]; + @IsBoolean() + @ApiPropertyOptional({ example: false }) + @Type(() => Boolean) + isSpecialOffer?: boolean; } diff --git a/src/modules/foods/entities/food.entity.ts b/src/modules/foods/entities/food.entity.ts index 24cd9f6..d3e95e9 100644 --- a/src/modules/foods/entities/food.entity.ts +++ b/src/modules/foods/entities/food.entity.ts @@ -73,4 +73,7 @@ export class Food extends BaseEntity { @Property({ type: 'float', default: 0 }) discount: number = 0; + + @Property({ type: 'boolean', default: false }) + isSpecialOffer: boolean = false; } diff --git a/src/modules/foods/providers/food.service.ts b/src/modules/foods/providers/food.service.ts index e17997a..6e4741f 100644 --- a/src/modules/foods/providers/food.service.ts +++ b/src/modules/foods/providers/food.service.ts @@ -46,6 +46,7 @@ export class FoodService { inPlaceServe: rest.inPlaceServe ?? false, pickupServe: rest.pickupServe ?? false, discount: rest.discount ?? 0, + isSpecialOffer: rest.isSpecialOffer ?? false, // map single-title/content DTO to localized fields title: rest.title, content: rest.content, @@ -103,6 +104,10 @@ export class FoodService { this.em.assign(food, { category: category }); } + // assign other fields from DTO + const { categoryId, ...rest } = dto; + this.em.assign(food, rest); + await this.em.persistAndFlush(food); return food; } diff --git a/src/modules/restaurants/dto/create-restaurant.dto.ts b/src/modules/restaurants/dto/create-restaurant.dto.ts index 7f6692e..9102718 100644 --- a/src/modules/restaurants/dto/create-restaurant.dto.ts +++ b/src/modules/restaurants/dto/create-restaurant.dto.ts @@ -40,7 +40,18 @@ export class CreateRestaurantDto { longitude?: number; @ApiPropertyOptional({ - example: { type: 'Polygon', coordinates: [[[51.389, 35.6892], [51.390, 35.6892], [51.390, 35.6902], [51.389, 35.6902], [51.389, 35.6892]]] }, + example: { + type: 'Polygon', + coordinates: [ + [ + [51.389, 35.6892], + [51.39, 35.6892], + [51.39, 35.6902], + [51.389, 35.6902], + [51.389, 35.6892], + ], + ], + }, description: 'محدوده سرویس‌دهی به صورت GeoJSON Polygon', }) @IsOptional() diff --git a/src/seeders/foods.seeder.ts b/src/seeders/foods.seeder.ts index 95cec87..adb4981 100644 --- a/src/seeders/foods.seeder.ts +++ b/src/seeders/foods.seeder.ts @@ -42,6 +42,7 @@ export class FoodsSeeder { inPlaceServe: false, pickupServe: false, images: foodData.images, + isSpecialOffer: false, }); em.persist(food);