This commit is contained in:
2025-11-15 09:14:32 +03:30
parent 53ef6220c1
commit 84163f6c8c
7 changed files with 25 additions and 22 deletions
+6 -6
View File
@@ -5,7 +5,7 @@ import { FoodRepository } from '../repositories/food.repository';
import { CategoryRepository } from '../repositories/category.repository';
import { EntityManager } from '@mikro-orm/postgresql';
import { RequiredEntityData } from '@mikro-orm/core';
import { Foods } from '../entities/food.entity';
import { Food } from '../entities/food.entity';
import { FoodMessage } from 'src/common/enums/message.enum';
@Injectable()
@@ -16,11 +16,11 @@ export class FoodService {
private readonly em: EntityManager,
) {}
async create(createFoodDto: CreateFoodDto): Promise<Foods> {
async create(createFoodDto: CreateFoodDto): Promise<Food> {
const { categoryIds, ...rest } = createFoodDto;
// prepare data with defaults for required fields so repository.create typing is satisfied
const data: RequiredEntityData<Foods> = {
const data: RequiredEntityData<Food> = {
// boolean/day flags
sat: rest.sat ?? false,
sun: rest.sun ?? false,
@@ -45,7 +45,7 @@ export class FoodService {
points: rest.points ?? 0,
prepareTime: rest.prepareTime ?? 0,
images: rest.images ?? undefined,
} as RequiredEntityData<Foods>;
} as RequiredEntityData<Food>;
const food = this.foodRepository.create(data);
@@ -67,7 +67,7 @@ export class FoodService {
return this.foodRepository.findOne({ id }, { populate: ['categories'] });
}
async update(id: string, dto: Partial<CreateFoodDto>): Promise<Foods> {
async update(id: string, dto: Partial<CreateFoodDto>): Promise<Food> {
const food = await this.foodRepository.findOne({ id });
if (!food) {
@@ -77,7 +77,7 @@ export class FoodService {
const { categoryIds, ...rest } = dto;
// assign scalar fields
this.em.assign(food, rest as Partial<Foods>);
this.em.assign(food, rest as Partial<Food>);
// attach new categories if provided (adds, does not attempt to preserve/remove existing ones)
if (Array.isArray(categoryIds) && categoryIds.length) {