File size: 1,266 Bytes
e13a8b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b561958
cbe2a8f
e13a8b7
 
 
 
 
9b42531
3daae40
e13a8b7
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { seederWrapper } from "seeder/helpers/seeder-wrapper";
import { IMeal, Meal } from "@common/models/meal.model";
import { dbStore } from "seeder/helpers/db-store";
import { MealType } from "@common/enums/meal-type.enum";
import { Ingredient } from "@common/models/ingredient.model";

export default seederWrapper(Meal, async () => {
  console.log('fetching ingredients ids...')
  const ingredientsIds = await Promise.all(
    dbStore.ingredientsNames.map(
      async name => {
        const ing = await Ingredient.findOne(({name}));
        return {
          name,
          _id: ing._id
        }
      }
    )
  )

  console.log('preping meals data...')
  const data = await Promise.all(dbStore.mealsDataset.map(async (mealJson) => ({
    name: mealJson.Name,
    created_at: new Date(),
    image: mealJson.Images[0],
    ingredients: mealJson.RecipeIngredientParts.map(name => ingredientsIds.find(i => i.name === name)._id),
    calories: mealJson.Calories,
    carbs: mealJson.CarbohydrateContent,
    proteins: mealJson.ProteinContent,
    fats: mealJson.FatContent,
    type: mealJson.Category?.toLowerCase() as MealType,
    isDeleted: false,
  } satisfies Partial<IMeal>)));

  console.log('inserting meals...')
  await Meal.insertMany(data);
});