blakus/apps/blakus-api/seeds/categories.js
Broks Randolfs Gailītis 0577555198
Some checks failed
CI / main (push) Failing after 3m7s
Add subcategories for places - seed
2025-03-15 19:22:32 +02:00

100 lines
2.3 KiB
JavaScript

const { randomUUID } = require("crypto");
const CUISINES = [
"american",
"argentinian",
"armenian",
"asian",
"bakery",
"bar_grill",
"barbecue",
"bavarian",
"bbq",
"belgian",
"bistro",
"breakfast",
"bubble_tea",
"burger",
"cake",
"caucasian",
"chicken",
"chinese",
"chocolate",
"coffee",
"coffee_shop",
"czech",
"dessert",
"donut",
"eclair",
"european",
"falafel",
"fast_food",
"fine_dining",
"fish",
"french",
"fries",
"fusion",
"georgian",
"grill",
"ice_cream",
"indian",
"international",
"italian",
"italian_pizza",
"japanese",
"jewish",
"kebab",
"korean",
"latvian",
"local",
"lunch",
"meat",
"mediterranean",
"mexican",
"oriental",
"oyster",
"pancake",
"pastry",
"pizza",
"ramen",
"regional",
"russian",
"sandwich",
"savory_pancakes",
"seafood",
"soup",
"soviet",
"steak_house",
"sushi",
"tapas",
"tea",
"traditional",
"turkish",
"ukrainian",
"uzbek",
"vietnamese",
"waffle"
]
const CATEGORIES = [
{ id: randomUUID(), name: 'restaurant', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
{ id: randomUUID(), name: 'cafe', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
{ id: randomUUID(), name: 'bar', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
{ id: randomUUID(), name: 'pub', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
{ id: randomUUID(), name: 'biergarten', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
{ id: randomUUID(), name: 'fast_food', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
{ id: randomUUID(), name: 'food_court', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
{ id: randomUUID(), name: 'ice_cream', subcategories: CUISINES.map(name => ({ id: randomUUID(), name })) },
];
exports.CATEGORIES = CATEGORIES;
/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
exports.seed = async function (knex) {
await knex('categories').insert(CATEGORIES.map(({ name, id }) => ({ name, id })));
await knex('subcategories').insert(CATEGORIES.flatMap(({ subcategories, id }) => subcategories.map((s) => ({ id: s.id, name: s.name, category_id: id }))));
};