From d55e085741c28726cf5dd60a7817e1cba26d1509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kiss=20D=C3=A1vid?= Date: Sun, 29 Mar 2026 11:18:31 +0200 Subject: [PATCH] stuff --- API_DOCS.md | 312 ++ MODEL_DESCRIPTION.md | 54 + app/controllers/categories_controller.ts | 96 + app/controllers/images_controller.ts | 74 + app/controllers/users_controller.ts | 93 + app/middleware/admin_middleware.ts | 14 + app/models/category.ts | 30 + app/validators/category.ts | 48 + app/validators/user.ts | 32 + config/ally.ts | 11 + .../1768053924423_create_inits_table.ts | 113 + database/seeders/menu_seeder.ts | 94 + database/seeders/user_seeder.ts | 13 + menu.json | 2732 +++++++++++++++++ ref.txt | 405 +++ tests/unit/categories/list.spec.ts | 9 + 16 files changed, 4130 insertions(+) create mode 100644 API_DOCS.md create mode 100644 MODEL_DESCRIPTION.md create mode 100644 app/controllers/categories_controller.ts create mode 100644 app/controllers/images_controller.ts create mode 100644 app/controllers/users_controller.ts create mode 100644 app/middleware/admin_middleware.ts create mode 100644 app/models/category.ts create mode 100644 app/validators/category.ts create mode 100644 app/validators/user.ts create mode 100644 config/ally.ts create mode 100644 database/migrations/1768053924423_create_inits_table.ts create mode 100644 database/seeders/menu_seeder.ts create mode 100644 database/seeders/user_seeder.ts create mode 100644 menu.json create mode 100755 ref.txt create mode 100644 tests/unit/categories/list.spec.ts diff --git a/API_DOCS.md b/API_DOCS.md new file mode 100644 index 0000000..ed131d9 --- /dev/null +++ b/API_DOCS.md @@ -0,0 +1,312 @@ +# Paprika API Documentation + +The Paprika API provides endpoints for user authentication, managing restaurant menus, and menu items. + +## Base URL +The base URL for the API is `http://localhost:3333` (default for AdonisJS development). + +## Authentication + +Authentication is handled via Bearer tokens. Include `Authorization: Bearer ` in the headers for protected routes. + +### Register +Registers a new user. + +- **URL:** `/api/register` +- **Method:** `POST` +- **Body:** + - `email` (string, required): The user's email address. + - `password` (string, required): The user's password. + - `fullName` (string, optional): The user's full name. +- **Response:** User access token object. + +### Login +Authenticates a user and returns an access token. + +- **URL:** `/api/login` +- **Method:** `POST` +- **Body:** + - `email` (string, required): The user's email address. + - `password` (string, required): The user's password. +- **Response:** User access token object. + +### Logout +Logs out the current user by deleting the access token. + +- **URL:** `/api/logout` +- **Method:** `DELETE` +- **Authentication:** Required +- **Response:** `{"message": "User logged out"}` + +### Get Me +Retrieves information about the currently authenticated user. + +- **URL:** `/api/me` +- **Method:** `GET` +- **Authentication:** Required +- **Response:** `{"user": { ...user data... }}` or `{"message": "Unauthorized"}` + +--- + +## Restaurant Menus + +### Get All Menus +Retrieves all restaurant menus, preloading items and their categories. + +- **URL:** `/api/menus` +- **Method:** `GET` +- **Response:** Array of menu objects. + +### Get One Menu +Retrieves a single restaurant menu by ID, preloading items and their categories. + +- **URL:** `/api/menus` +- **Method:** `POST` +- **Body:** + - `id` (number, required): The ID of the menu to retrieve. +- **Response:** Menu object. + +### Create Menu +Creates a new restaurant menu. + +- **URL:** `/api/menus/create` +- **Method:** `POST` +- **Authentication:** Required (Admin) +- **Body:** + - `name` (string, required): The name of the menu (e.g., "2025.09.08. Hétfő"). + - `nameHu` (string, optional): Hungarian translation of the menu name. + - `nameEn` (string, optional): English translation of the menu name. +- **Response:** Created menu object. + +### Update Menu +Updates an existing restaurant menu. + +- **URL:** `/api/menus` +- **Method:** `PUT` +- **Authentication:** Required (Admin) +- **Body:** + - `id` (number, required): The ID of the menu to update. + - `name` (string, optional): The new name of the menu. + - `nameHu` (string, optional): The new Hungarian name of the menu. + - `nameEn` (string, optional): The new English name of the menu. +- **Response:** Updated menu object. + +### Delete Menu +Deletes a restaurant menu and detaches all connected menu items. + +- **URL:** `/api/menus` +- **Method:** `DELETE` +- **Authentication:** Required (Admin) +- **Rate Limited:** Yes +- **Body:** + - `id` (number, required): The ID of the menu to delete. +- **Response:** `{"message": "Menu deleted"}` or error. + +--- + +## Restaurant Menu Items + +### Get All Menu Items +Retrieves all restaurant menu items, preloading category and menus. + +- **URL:** `/api/menu-items` +- **Method:** `GET` +- **Response:** Array of menu item objects. + +### Get One Menu Item +Retrieves a single restaurant menu item by ID, preloading category and menus. + +- **URL:** `/api/menu-items` +- **Method:** `POST` +- **Body:** + - `id` (number, required): The ID of the menu item to retrieve. +- **Response:** Menu item object. + +### Create Menu Item +Creates a new restaurant menu item. Note: This item must be manually attached to a menu using the `/api/menu-items/attach` endpoint. + +- **URL:** `/api/menu-items/create` +- **Method:** `POST` +- **Authentication:** Required (Admin) +- **Body:** + - `name` (string, required): The name of the menu item. + - `nameHu` (string, required): Hungarian translation of the item name. + - `nameEn` (string, required): English translation of the item name. + - `priceSmall` (number, required): The price for a small serving. + - `priceLarge` (number, required): The price for a large serving. + - `description` (string, optional): General description of the menu item. + - `descriptionHu` (string, optional): Hungarian translation of the description. + - `descriptionEn` (string, optional): English translation of the description. + - `categoryId` (number, optional): The ID of the category this item belongs to. +- **Response:** Created menu item object. + +### Update Menu Item +Updates an existing restaurant menu item. + +- **URL:** `/api/menu-items` +- **Method:** `PUT` +- **Authentication:** Required (Admin) +- **Body:** + - `id` (number, required): The ID of the menu item to update. + - `name` (string, optional): The new name. + - `nameHu` (string, optional): The new Hungarian name. + - `nameEn` (string, optional): The new English name. + - `priceSmall` (number, optional): The new price for small. + - `priceLarge` (number, optional): The new price for large. + - `description` (string, optional): The new description. + - `descriptionHu` (string, optional): The new Hungarian description. + - `descriptionEn` (string, optional): The new English description. + - `categoryId` (number, optional): The new category ID. +- **Response:** Updated menu item object. + +### Attach Menu Item to Menu +Connects an existing menu item to a menu (many-to-many relationship). + +- **URL:** `/api/menu-items/attach` +- **Method:** `POST` +- **Authentication:** Required (Admin) +- **Rate Limited:** No +- **Body:** + - `item_id` (number, required): The ID of the menu item to attach. + - `menu_id` (number, required): The ID of the menu to attach the item to. +- **Response:** `{"message": "Menu item connected to menu"}` + +### Delete Menu Item +Deletes a restaurant menu item and detaches it from all menus. + +- **URL:** `/api/menu-items` +- **Method:** `DELETE` +- **Authentication:** Required (Admin) +- **Rate Limited:** Yes +- **Body:** + - `id` (number, required): The ID of the menu item to delete. +- **Response:** `{"message": "Menu item deleted"}` or error. + +--- + +## Users (Administrators Only) + +### Get All Users +Retrieves all users. + +- **URL:** `/api/users` +- **Method:** `GET` +- **Authentication:** Required (Admin) +- **Response:** Array of user objects. + +### Get One User +Retrieves a single user by ID. + +- **URL:** `/api/users/get-one` +- **Method:** `POST` +- **Authentication:** Required (Admin) +- **Body:** + - `id` (number, required): The ID of the user to retrieve. +- **Response:** User object. + +### Update User +Updates an existing user. + +- **URL:** `/api/users` +- **Method:** `PUT` +- **Authentication:** Required (Admin) +- **Body:** + - `id` (number, required): The ID of the user to update. + - `email` (string, optional): The new email of the user. + - `fullName` (string, optional): The new full name of the user. + - `role` (string, optional): The new role of the user (e.g., 'user', 'admin'). +- **Response:** Updated user object. + +### Delete User +Deletes a user. + +- **URL:** `/api/users` +- **Method:** `DELETE` +- **Authentication:** Required (Admin) +- **Body:** + - `id` (number, required): The ID of the user to delete. +- **Response:** `{"message": "User deleted"}` or success. + +--- + +## Categories + +### Get All Categories +Retrieves all categories. + +- **URL:** `/api/categories` +- **Method:** `GET` +- **Response:** Array of category objects. + +### Get One Category +Retrieves a single category by ID. + +- **URL:** `/api/categories` +- **Method:** `POST` +- **Body:** + - `id` (number, required): The ID of the category to retrieve. +- **Response:** Category object. + +### Create Category +Creates a new category. + +- **URL:** `/api/categories/create` +- **Method:** `POST` +- **Authentication:** Required (Admin) +- **Body:** + - `name` (string, required): The name of the category. + - `nameHu` (string, optional): Hungarian translation of the name. + - `nameEn` (string, optional): English translation of the name. + - `slug` (string, required): The slug of the category. +- **Response:** Created category object. + +### Update Category +Updates an existing category. + +- **URL:** `/api/categories` +- **Method:** `PUT` +- **Authentication:** Required (Admin) +- **Body:** + - `id` (number, required): The ID of the category to update. + - `name` (string, optional): The new name. + - `nameHu` (string, optional): The new Hungarian name. + - `nameEn` (string, optional): The new English name. + - `slug` (string, optional): The new slug. +- **Response:** Updated category object. + +### Delete Category +Deletes a category. + +- **URL:** `/api/categories` +- **Method:** `DELETE` +- **Authentication:** Required (Admin) +- **Rate Limited:** Yes +- **Body:** + - `id` (number, required): The ID of the category to delete. +- **Response:** `{"message": "Category deleted"}` or error. + +--- + +## Images + +### Upload Image +Uploads an image for menu items or categories. Supported extensions: jpg, jpeg, png, webp, gif. Max size: 10mb. + +- **URL:** `/api/images/upload` +- **Method:** `POST` +- **Authentication:** Required (Admin) +- **Body:** + - `image` (file, required): The image file to upload. +- **Response:** `{"filename": "...", "url": "..."}` + +### Show Image +Retrieves and displays a previously uploaded image. + +- **URL:** `/api/images/:filename` +- **Method:** `GET` +- **Response:** Image stream with correct MIME type. + +--- + +## Rate Limiting +Some endpoints (like login, registration, and deletion) are protected by rate limiting to prevent abuse. If you receive a `429 Too Many Requests` response, please wait before trying again. diff --git a/MODEL_DESCRIPTION.md b/MODEL_DESCRIPTION.md new file mode 100644 index 0000000..fc4a199 --- /dev/null +++ b/MODEL_DESCRIPTION.md @@ -0,0 +1,54 @@ +### Paprika API Model Descriptions + +This document describes the main data models used in the Paprika API, including their fields and relationships. + +#### User +The `User` model represents an authenticated user in the system. +- `id`: Unique identifier (primary key). +- `fullName`: The full name of the user (can be null). +- `email`: The user's email address (unique, used for login). +- `password`: Hashed password for authentication. +- `role`: User role for authorization (e.g., 'user', 'admin'). +- `createdAt`: Timestamp when the user was created. +- `updatedAt`: Timestamp when the user was last updated. + +#### Category +Categories are used to group `RestaurantMenuItem` objects. +- `id`: Unique identifier (primary key). +- `name`: The primary name of the category (typically Hungarian). +- `nameHu`: Hungarian translation of the category name. +- `nameEn`: English translation of the category name. +- `slug`: A URL-friendly version of the category name. +- `createdAt`: Timestamp when the category was created. +- `updatedAt`: Timestamp when the category was last updated. +- **Relationships**: + - `menuItems`: Has many `RestaurantMenuItem` records. + +#### RestaurantMenu +Represents a specific daily or periodic menu. +- `id`: Unique identifier (primary key). +- `name`: The primary name of the menu (e.g., "2025.09.08. Hétfő"). +- `nameHu`: Hungarian translation of the menu name. +- `nameEn`: English translation of the menu name. +- `createdAt`: Timestamp when the menu was created. +- `updatedAt`: Timestamp when the menu was last updated. +- **Relationships**: + - `items`: Many-to-many relationship with `RestaurantMenuItem` records via `menu_item_menus` table. + +#### RestaurantMenuItem +Individual dishes or items within a `RestaurantMenu`. +- `id`: Unique identifier (primary key). +- `name`: The primary name of the item. +- `nameHu`: Hungarian translation of the item name. +- `nameEn`: English translation of the item name. +- `priceSmall`: Price for a small portion. +- `priceLarge`: Price for a large portion. +- `description`: General description of the item. +- `descriptionHu`: Hungarian translation of the description. +- `descriptionEn`: English translation of the description. +- `categoryId`: Foreign key connecting to `Category`. +- `createdAt`: Timestamp when the item was created. +- `updatedAt`: Timestamp when the item was last updated. +- **Relationships**: + - `category`: Belongs to a `Category`. + - `menus`: Many-to-many relationship with `RestaurantMenu` records via `menu_item_menus` table. diff --git a/app/controllers/categories_controller.ts b/app/controllers/categories_controller.ts new file mode 100644 index 0000000..d8297e3 --- /dev/null +++ b/app/controllers/categories_controller.ts @@ -0,0 +1,96 @@ +import type { HttpContext } from '@adonisjs/core/http' +import Category from '#models/category' +import logger from '@adonisjs/core/services/logger' +import { createCategoryValidator, updateCategoryValidator } from '#validators/category' + +export default class CategoriesController { + /** + * Retrieve all categories. + * + * @returns An array of all categories. + */ + async getAll() { + const categories = await Category.all() + return categories + } + + /** + * Retrieve a single category. + * + * @param request - The HTTP context containing the request data. + * @returns The category with the specified id. + */ + async getOne({ request }: HttpContext) { + try { + const id = request.body().id + const category = await Category.find(id) + return category + } catch (error) { + logger.error('Category retrieval failed: %s', error) + } + } + + /** + * Create a category. + * + * @bodyParam *name* - string | The name of the category. + * @bodyParam *slug* - string | The slug of the category. + * @returns The created category. + */ + async create({ request, auth }: HttpContext) { + try { + const data = await request.validateUsing(createCategoryValidator) + const category = await Category.create(data) + logger.info('Category created: %s by %s', category.name, auth.getUserOrFail().email) + return category + } catch (error) { + logger.error('Category creation failed: %s', error) + throw error + } + } + + /** + * Update a category. + * + * @bodyParam *id* - number | The id of the category to update. + * @bodyParam *name* - string | The new name of the category. + * @bodyParam *slug* - string | The new slug of the category. + */ + async update({ request, auth }: HttpContext) { + try { + const data = await request.validateUsing(updateCategoryValidator) + const category = await Category.find(data.id) + if (!category) { + return { message: 'Category not found' } + } + category.merge(data) + await category.save() + logger.info('Category updated: %s by %s', category.name, auth.getUserOrFail().email) + return category + } catch (error) { + logger.error('Category update failed: %s', error) + throw error + } + } + + /** + * Delete a category. + * + * @bodyParam *id* - number | The id of the category to delete. + */ + async delete({ request, auth }: HttpContext) { + const id = request.body().id + try { + const category = await Category.find(id) + if (!category) { + return { message: 'Category not found' } + } + await category.delete() + logger.info('Category deleted: %s by %s', category.name, auth.getUserOrFail().email) + return { message: 'Category deleted' } + } catch (error) { + logger.error('Category deletion failed: %s', error) + throw error + } + } +} diff --git a/app/controllers/images_controller.ts b/app/controllers/images_controller.ts new file mode 100644 index 0000000..0f18879 --- /dev/null +++ b/app/controllers/images_controller.ts @@ -0,0 +1,74 @@ +import type { HttpContext } from '@adonisjs/core/http' +import app from '@adonisjs/core/services/app' +import logger from '@adonisjs/core/services/logger' +import { cuid } from '@adonisjs/core/helpers' +import { createReadStream } from 'node:fs' +import { promises as fs } from 'node:fs' +import { extname } from 'node:path' + +const allowedExtnames = ['jpg', 'jpeg', 'png', 'webp', 'gif'] + +const imageMimeByExt: Record = { + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.png': 'image/png', + '.webp': 'image/webp', + '.gif': 'image/gif', +} + +export default class ImagesController { + async upload({ request, response }: HttpContext) { + const image = request.file('image', { + size: '10mb', + extnames: allowedExtnames, + }) + + if (!image) { + return response.badRequest({ message: 'Image file is required' }) + } + + if (!image.isValid) { + const message = image.errors.map((error) => error.message).join(', ') + return response.badRequest({ message: message || 'Invalid image file' }) + } + + const uploadsDir = app.makePath('storage', 'uploads') + await fs.mkdir(uploadsDir, { recursive: true }) + + const extension = image.extname || 'bin' + const filename = `${cuid()}.${extension}` + await image.move(uploadsDir, { name: filename, overwrite: false }) + + if (image.state !== 'moved') { + logger.error('Image upload failed: %s', image.errors) + return response.internalServerError({ message: 'Image upload failed' }) + } + + return response.ok({ + filename, + url: `/api/images/${filename}`, + }) + } + + async show({ params, response }: HttpContext) { + const filename = String(params.filename || '') + + if (!filename || filename.includes('/') || filename.includes('\\')) { + return response.badRequest({ message: 'Invalid image name' }) + } + + const filePath = app.makePath('storage', 'uploads', filename) + + try { + await fs.access(filePath) + } catch { + return response.notFound({ message: 'Image not found' }) + } + + const mimeType = imageMimeByExt[extname(filename).toLowerCase()] || 'application/octet-stream' + response.header('Content-Type', mimeType) + response.header('Cache-Control', 'public, max-age=86400') + + return response.stream(createReadStream(filePath)) + } +} diff --git a/app/controllers/users_controller.ts b/app/controllers/users_controller.ts new file mode 100644 index 0000000..c37a64a --- /dev/null +++ b/app/controllers/users_controller.ts @@ -0,0 +1,93 @@ +import type { HttpContext } from '@adonisjs/core/http' +import User from '#models/user' +import logger from '@adonisjs/core/services/logger' +import { createUserValidator, updateUserValidator } from '#validators/user' + +export default class UsersController { + /** + * Retrieve all users. + * + * @returns An array of all users. + */ + async getAll() { + const users = await User.all() + return users + } + + /** + * Retrieve a single user. + * + * @param request - The HTTP context containing the request data. + * @returns The user with the specified id. + */ + async getOne({ request, response }: HttpContext) { + try { + const id = request.body().id + const user = await User.find(id) + if (!user) { + return response.notFound({ message: 'User not found' }) + } + return user + } catch (error) { + logger.error('User retrieval failed: %s', error) + return response.internalServerError({ message: 'User retrieval failed' }) + } + } + async create({ request, auth, response }: HttpContext) { + try { + const data = await request.validateUsing(createUserValidator) + const user = await User.create(data) + logger.info('User created: %s by %s', user.email, auth.getUserOrFail().email) + return user + } catch (error) { + logger.error('User creation failed: %s', error) + return response.internalServerError({ message: 'User creation failed' }) + } + } + + /** + * Update a user. + * + * @bodyParam *id* - number | The id of the user to update. + * @bodyParam *email* - string | The new email of the user. + * @bodyParam *fullName* - string | The new full name of the user. + * @bodyParam *role* - string | The new role of the user. + */ + async update({ request, auth, response }: HttpContext) { + try { + const data = await request.validateUsing(updateUserValidator) + const user = await User.find(data.id) + if (!user) { + return response.notFound({ message: 'User not found' }) + } + user.merge(data) + await user.save() + logger.info('User updated: %s by %s', user.email, auth.getUserOrFail().email) + return user + } catch (error) { + logger.error('User update failed: %s', error) + return response.internalServerError({ message: 'User update failed' }) + } + } + + /** + * Delete a user. + * + * @bodyParam *id* - number | The id of the user to delete. + */ + async delete({ request, auth, response }: HttpContext) { + const id = request.body().id + try { + const user = await User.find(id) + if (!user) { + return response.notFound({ message: 'User not found' }) + } + await user.delete() + logger.info('User deleted: %s by %s', user.email, auth.getUserOrFail().email) + return response.ok({ message: 'User deleted' }) + } catch (error) { + logger.error('User deletion failed: %s', error) + return response.internalServerError({ message: 'User deletion failed' }) + } + } +} diff --git a/app/middleware/admin_middleware.ts b/app/middleware/admin_middleware.ts new file mode 100644 index 0000000..8bf3308 --- /dev/null +++ b/app/middleware/admin_middleware.ts @@ -0,0 +1,14 @@ +import type { HttpContext } from '@adonisjs/core/http' +import type { NextFn } from '@adonisjs/core/types/http' + +export default class AdminMiddleware { + async handle(ctx: HttpContext, next: NextFn) { + const user = ctx.auth.user + + if (!user || user.role !== 'admin') { + return ctx.response.forbidden({ message: 'Access denied. Administrators only.' }) + } + + return next() + } +} diff --git a/app/models/category.ts b/app/models/category.ts new file mode 100644 index 0000000..bb02689 --- /dev/null +++ b/app/models/category.ts @@ -0,0 +1,30 @@ +import { DateTime } from 'luxon' +import { BaseModel, column, hasMany } from '@adonisjs/lucid/orm' +import type { HasMany } from '@adonisjs/lucid/types/relations' +import RestaurantMenuItem from '#models/restaurant_menu_item' + +export default class Category extends BaseModel { + @column({ isPrimary: true }) + declare id: number + + @column() + declare name: string + + @column({ columnName: 'name_hu' }) + declare nameHu: string | null + + @column({ columnName: 'name_en' }) + declare nameEn: string | null + + @column() + declare slug: string + + @hasMany(() => RestaurantMenuItem) + declare menuItems: HasMany + + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime + + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime +} diff --git a/app/validators/category.ts b/app/validators/category.ts new file mode 100644 index 0000000..73ad896 --- /dev/null +++ b/app/validators/category.ts @@ -0,0 +1,48 @@ +import vine from '@vinejs/vine' + +export const createCategoryValidator = vine.compile( + vine.object({ + name: vine.string().unique(async (db, value) => { + const match = await db.from('categories').select('id').where('name', value).first() + return !match + }), + nameHu: vine.string().optional(), + nameEn: vine.string().optional(), + slug: vine.string().unique(async (db, value) => { + const match = await db.from('categories').select('id').where('slug', value).first() + return !match + }), + }) +) + +export const updateCategoryValidator = vine.compile( + vine.object({ + id: vine.number(), + name: vine + .string() + .unique(async (db, value, field) => { + const match = await db + .from('categories') + .select('id') + .where('name', value) + .whereNot('id', field.data.id) + .first() + return !match + }) + .optional(), + nameHu: vine.string().optional(), + nameEn: vine.string().optional(), + slug: vine + .string() + .unique(async (db, value, field) => { + const match = await db + .from('categories') + .select('id') + .where('slug', value) + .whereNot('id', field.data.id) + .first() + return !match + }) + .optional(), + }) +) diff --git a/app/validators/user.ts b/app/validators/user.ts new file mode 100644 index 0000000..abfeb0f --- /dev/null +++ b/app/validators/user.ts @@ -0,0 +1,32 @@ +import vine from '@vinejs/vine' + +export const createUserValidator = vine.compile( + vine.object({ + email: vine.string().email().normalizeEmail(), + password: vine.string().minLength(8), + fullName: vine.string(), + role: vine.string(), + }) +) +export const updateUserValidator = vine.compile( + vine.object({ + id: vine.number(), + email: vine + .string() + .email() + .normalizeEmail() + .unique(async (db, value, field) => { + const match = await db + .from('users') + .select('id') + .where('email', value) + .whereNot('id', field.data.id) + .first() + return !match + }) + .optional(), + password: vine.string().minLength(8).optional(), + fullName: vine.string().optional(), + role: vine.string().optional(), + }) +) diff --git a/config/ally.ts b/config/ally.ts new file mode 100644 index 0000000..2cf0661 --- /dev/null +++ b/config/ally.ts @@ -0,0 +1,11 @@ +import { defineConfig, services } from '@adonisjs/ally' +import type { InferSocialProviders } from '@adonisjs/ally/types' +import env from '#start/env' + +const allyConfig = defineConfig({}) + +export default allyConfig + +declare module '@adonisjs/ally/types' { + interface SocialProviders extends InferSocialProviders {} +} diff --git a/database/migrations/1768053924423_create_inits_table.ts b/database/migrations/1768053924423_create_inits_table.ts new file mode 100644 index 0000000..6cf5af5 --- /dev/null +++ b/database/migrations/1768053924423_create_inits_table.ts @@ -0,0 +1,113 @@ +import { BaseSchema } from '@adonisjs/lucid/schema' + +export default class extends BaseSchema { + async up() { + this.schema.createTable('users', (table) => { + table.increments('id') + table.string('full_name').notNullable() + table.string('email').notNullable().unique() + table.string('role').notNullable().defaultTo('user') + table.string('password').notNullable() + + table.timestamp('created_at', { useTz: true }).notNullable() + table.timestamp('updated_at', { useTz: true }).notNullable() + }) + + this.schema.createTable('auth_access_tokens', (table) => { + table.increments('id') + table + .integer('tokenable_id') + .unsigned() + .notNullable() + .references('id') + .inTable('users') + .onDelete('CASCADE') + table.string('type').notNullable() + table.string('name').nullable() + table.string('hash').notNullable() + table.text('abilities').notNullable() + table.timestamp('created_at') + table.timestamp('updated_at') + table.timestamp('last_used_at').nullable() + table.timestamp('expires_at').nullable() + }) + + this.schema.createTable('categories', (table) => { + table.increments('id') + table.string('name').notNullable().unique() + table.string('name_hu') + table.string('name_en') + table.string('slug').notNullable().unique() + + table.timestamp('created_at', { useTz: true }).notNullable() + table.timestamp('updated_at', { useTz: true }).notNullable() + }) + + this.schema.createTable('restaurant_menus', (table) => { + table.increments('id') + table.string('name').notNullable() + table.string('name_hu') + table.string('name_en') + + table.timestamp('created_at', { useTz: true }).notNullable() + table.timestamp('updated_at', { useTz: true }).notNullable() + }) + + this.schema.createTable('restaurant_menu_items', (table) => { + table.increments('id') + table.string('name').notNullable() + table.string('name_hu') + table.string('name_en') + table.decimal('price_small', 10, 2).notNullable() + table.decimal('price_large', 10, 2).notNullable() + table.text('description') + table.text('description_hu') + table.text('description_en') + table + .integer('category_id') + .unsigned() + .references('id') + .inTable('categories') + .onDelete('SET NULL') + + table.timestamp('created_at', { useTz: true }).notNullable() + table.timestamp('updated_at', { useTz: true }).notNullable() + }) + + this.schema.createTable('menu_item_menus', (table) => { + table.increments('id') + table + .integer('restaurant_menu_item_id') + .unsigned() + .notNullable() + .references('id') + .inTable('restaurant_menu_items') + .onDelete('CASCADE') + table + .integer('restaurant_menu_id') + .unsigned() + .notNullable() + .references('id') + .inTable('restaurant_menus') + .onDelete('CASCADE') + + table.unique(['restaurant_menu_item_id', 'restaurant_menu_id']) + }) + + this.schema.createTable('rate_limits', (table) => { + table.string('key', 255).notNullable().primary() + table.integer('points', 9).notNullable().defaultTo(0) + table.bigint('expire').unsigned() + }) + } + + async down() { + this.schema.dropTable('menu_item_menus') + this.schema.dropTable('restaurant_menu_items') + this.schema.dropTable('restaurant_menus') + this.schema.dropTable('categories') + this.schema.dropTable('auth_access_tokens') + this.schema.dropTable('users') + this.schema.dropTable('rate_limits') + } +} diff --git a/database/seeders/menu_seeder.ts b/database/seeders/menu_seeder.ts new file mode 100644 index 0000000..fe73f29 --- /dev/null +++ b/database/seeders/menu_seeder.ts @@ -0,0 +1,94 @@ +import { BaseSeeder } from '@adonisjs/lucid/seeders' +import RestaurantMenuItem from '#models/restaurant_menu_item' +import Category from '#models/category' +import fs from 'node:fs' +import path from 'node:path' +import app from '@adonisjs/core/services/app' + +export default class extends BaseSeeder { + async run() { + const filePath = path.join(app.makePath(), 'menu.json') + const content = fs.readFileSync(filePath, 'utf-8') + const menuItems = JSON.parse(content) + + // Create categories + const categoriesData = [ + { name: 'Levesek', nameHu: 'Levesek', nameEn: 'Soups', slug: 'levesek' }, + { name: 'Főzelékek', nameHu: 'Főzelékek', nameEn: 'Vegetable Stews', slug: 'fozelekek' }, + { name: 'Készételek', nameHu: 'Készételek', nameEn: 'Ready Meals', slug: 'keszetelek' }, + { + name: 'Frissensültek', + nameHu: 'Frissensültek', + nameEn: 'Fresh Roasts', + slug: 'frissensultek', + }, + { name: 'Tészták', nameHu: 'Tészták', nameEn: 'Pasta', slug: 'tesztak' }, + { name: 'Desszertek', nameHu: 'Desszertek', nameEn: 'Desserts', slug: 'desszertek' }, + { name: 'Egyéb', nameHu: 'Egyéb', nameEn: 'Other', slug: 'egyeb' }, + { name: 'Köretek', nameHu: 'Köretek', nameEn: 'Sides', slug: 'koretek' }, + { name: 'Savanyúság', nameHu: 'Savanyúság', nameEn: 'Pickles', slug: 'savanyusag' }, + ] + + const categories: Record = {} + for (const catData of categoriesData) { + categories[catData.slug] = await Category.updateOrCreate({ slug: catData.slug }, catData) + } + + const getCategoryId = (name: string): number => { + const lowerName = name.toLowerCase() + if (lowerName.includes('leves')) return categories['levesek'].id + if (lowerName.includes('főzelék') || lowerName.includes('káposzta')) + return categories['fozelekek'].id + if ( + lowerName.includes('fánk') || + (lowerName.includes('szelet') && + (lowerName.includes('üdítős') || lowerName.includes('gesztenyés'))) || + lowerName.includes('gombóc') || + lowerName.includes('linzer') || + lowerName.includes('nudli') || + lowerName.includes('lúdláb') || + lowerName.includes('tekercs') + ) + return categories['desszertek'].id + if ( + lowerName.includes('tészta') || + lowerName.includes('spagetti') || + lowerName.includes('nudli') || + lowerName.includes('csusza') + ) + return categories['tesztak'].id + if ( + lowerName.includes('rántott') || + lowerName.includes('sült') || + lowerName.includes('grill') + ) + return categories['frissensultek'].id + if ( + lowerName.includes('pörkölt') || + lowerName.includes('tokány') || + lowerName.includes('aprópecsenye') || + lowerName.includes('rakott') + ) + return categories['keszetelek'].id + return categories['egyeb'].id + } + + for (const item of menuItems) { + const { name, nameHu, nameEn, priceLarge, priceSmall } = item + + if (name) { + await RestaurantMenuItem.updateOrCreate( + { name }, + { + name, + nameHu, + nameEn, + priceLarge, + priceSmall, + categoryId: getCategoryId(nameHu), + } + ) + } + } + } +} diff --git a/database/seeders/user_seeder.ts b/database/seeders/user_seeder.ts new file mode 100644 index 0000000..b4b776a --- /dev/null +++ b/database/seeders/user_seeder.ts @@ -0,0 +1,13 @@ +import { BaseSeeder } from '@adonisjs/lucid/seeders' +import User from '#models/user' + +export default class extends BaseSeeder { + async run() { + await User.create({ + email: 'kiss.david@test.hu', + password: 'Palacsinta1.', + fullName: 'Kiss Dávid', + role: 'admin', + }) + } +} diff --git a/menu.json b/menu.json new file mode 100644 index 0000000..dac5316 --- /dev/null +++ b/menu.json @@ -0,0 +1,2732 @@ +[ + { + "name": "Babgulyás", + "nameHu": "Babgulyás", + "nameEn": "Bean goulash", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Bakonyi betyárleves", + "nameHu": "Bakonyi betyárleves", + "nameEn": "Bakony outlaw soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Bányászgulyás", + "nameHu": "Bányászgulyás", + "nameEn": "Miner's goulash", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Bográcsgulyás", + "nameHu": "Bográcsgulyás", + "nameEn": "Kettle goulash", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Brokkoli krémleves", + "nameHu": "Brokkoli krémleves", + "nameEn": "Broccoli cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Burgonya krémleves", + "nameHu": "Burgonya krémleves", + "nameEn": "Potato cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Csípőssavanyú leves", + "nameHu": "Csípőssavanyú leves", + "nameEn": "Hot and sour soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Csont leves", + "nameHu": "Csont leves", + "nameEn": "Bone broth", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Daragaluska leves", + "nameHu": "Daragaluska leves", + "nameEn": "Semolina dumpling soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Fehérbab leves kolbásszal", + "nameHu": "Fehérbab leves kolbásszal", + "nameEn": "White bean soup with sausage", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Fejtett bableves kolbásszal", + "nameHu": "Fejtett bableves kolbásszal", + "nameEn": "Shelled bean soup with sausage", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Fokhagyma krémleves", + "nameHu": "Fokhagyma krémleves", + "nameEn": "Garlic cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Frankfurti leves", + "nameHu": "Frankfurti leves", + "nameEn": "Frankfurt soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Gombakrém leves", + "nameHu": "Gombakrém leves", + "nameEn": "Mushroom cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Gombaleves", + "nameHu": "Gombaleves", + "nameEn": "Mushroom soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Gulyásleves", + "nameHu": "Gulyásleves", + "nameEn": "Goulash soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Gyümölcsleves", + "nameHu": "Gyümölcsleves", + "nameEn": "Fruit soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Hagyma krémleves", + "nameHu": "Hagyma krémleves", + "nameEn": "Onion cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Halászlé", + "nameHu": "Halászlé", + "nameEn": "Fisherman's soup", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Hamis gulyásleves", + "nameHu": "Hamis gulyásleves", + "nameEn": "Mock goulash soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Húsgaluska leves", + "nameHu": "Húsgaluska leves", + "nameEn": "Meat dumpling soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Jókai bableves", + "nameHu": "Jókai bableves", + "nameEn": "Jókai bean soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Káposztás bab leves", + "nameHu": "Káposztás bab leves", + "nameEn": "Cabbage and bean soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Karalábé leves", + "nameHu": "Karalábé leves", + "nameEn": "Kohlrabi soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Karfiolleves", + "nameHu": "Karfiolleves", + "nameEn": "Cauliflower soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Lebbencsleves", + "nameHu": "Lebbencsleves", + "nameEn": "Lebbencs pasta soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Lencseleves", + "nameHu": "Lencseleves", + "nameEn": "Lentil soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Libaleves", + "nameHu": "Libaleves", + "nameEn": "Goose soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Májgaluskaleves", + "nameHu": "Májgaluskaleves", + "nameEn": "Liver dumpling soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Marhahús leves", + "nameHu": "Marhahús leves", + "nameEn": "Beef soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Nyírségi gomba leves", + "nameHu": "Nyírségi gomba leves", + "nameEn": "Nyírség mushroom soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Palócgulyás", + "nameHu": "Palócgulyás", + "nameEn": "Palóc goulash", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Paradicsom leves", + "nameHu": "Paradicsom leves", + "nameEn": "Tomato soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Sajtkrém leves", + "nameHu": "Sajtkrém leves", + "nameEn": "Cheese cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Sertésragu leves", + "nameHu": "Sertésragu leves", + "nameEn": "Pork ragout soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Sütőtök krémleves", + "nameHu": "Sütőtök krémleves", + "nameEn": "Pumpkin cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Szárnyas raguleves", + "nameHu": "Szárnyas raguleves", + "nameEn": "Poultry ragout soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Tarhonyaleves", + "nameHu": "Tarhonyaleves", + "nameEn": "Egg barley soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Tárkonyos libazúza leves", + "nameHu": "Tárkonyos libazúza leves", + "nameEn": "Goose gizzard soup with tarragon", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Tarkabableves", + "nameHu": "Tarkabableves", + "nameEn": "Pinto bean soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Tárkonyos pulykaragu leves", + "nameHu": "Tárkonyos pulykaragu leves", + "nameEn": "Turkey ragout soup with tarragon", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Tárkonyos vadragu leves", + "nameHu": "Tárkonyos vadragu leves", + "nameEn": "Wild game ragout soup with tarragon", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Tejfölös erdei gombaleves", + "nameHu": "Tejfölös erdei gombaleves", + "nameEn": "Forest mushroom soup with sour cream", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Tejfölös burgonya leves", + "nameHu": "Tejfölös burgonya leves", + "nameEn": "Potato soup with sour cream", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Tojás leves", + "nameHu": "Tojás leves", + "nameEn": "Egg soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Tyúkhúsleves", + "nameHu": "Tyúkhúsleves", + "nameEn": "Chicken soup", + "priceLarge": 1200, + "priceSmall": 840 + }, + { + "name": "Zellerkrémleves", + "nameHu": "Zellerkrémleves", + "nameEn": "Celery cream soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Zöldbableves", + "nameHu": "Zöldbableves", + "nameEn": "Green bean soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Zöldborsóleves", + "nameHu": "Zöldborsóleves", + "nameEn": "Green pea soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Zöldséges burgonya leves", + "nameHu": "Zöldséges burgonya leves", + "nameEn": "Vegetable potato soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Zöldségleves", + "nameHu": "Zöldségleves", + "nameEn": "Vegetable soup", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Fehérbab főzelék", + "nameHu": "Fehérbab főzelék", + "nameEn": "White bean stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Kelkáposzta főzelék", + "nameHu": "Kelkáposzta főzelék", + "nameEn": "Savoy cabbage stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Lencsefőzelék", + "nameHu": "Lencsefőzelék", + "nameEn": "Lentil stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Meggyszósz", + "nameHu": "Meggyszósz", + "nameEn": "Sour cherry sauce", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Paradicsomos káposzta", + "nameHu": "Paradicsomos káposzta", + "nameEn": "Tomato cabbage", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Sárgaborsó főzelék", + "nameHu": "Sárgaborsó főzelék", + "nameEn": "Yellow pea stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Sóskamártás", + "nameHu": "Sóskamártás", + "nameEn": "Sorrel sauce", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Spenót", + "nameHu": "Spenót", + "nameEn": "Spinach stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Tarkabab főzelék", + "nameHu": "Tarkabab főzelék", + "nameEn": "Pinto bean stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Tejfölös burgonya főzelék", + "nameHu": "Tejfölös burgonya főzelék", + "nameEn": "Potato stew with sour cream", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Tökfőzelék", + "nameHu": "Tökfőzelék", + "nameEn": "Marrow stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Zöldbabfőzelék", + "nameHu": "Zöldbabfőzelék", + "nameEn": "Green bean stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Zöldborsó főz.", + "nameHu": "Zöldborsó főz.", + "nameEn": "Green pea stew", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Alfredo fussili", + "nameHu": "Alfredo fussili", + "nameEn": "Alfredo fusilli", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Baconos csirkemell saláta", + "nameHu": "Baconos csirkemell saláta", + "nameEn": "Chicken breast salad with bacon", + "priceLarge": 2600, + "priceSmall": 0 + }, + { + "name": "Bácskai rizses hús", + "nameHu": "Bácskai rizses hús", + "nameEn": "Meat with rice Bácska style", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Bakony sertésszelet", + "nameHu": "Bakony sertésszelet", + "nameEn": "Pork slice Bakony style", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Bakonyi csirkemell", + "nameHu": "Bakonyi csirkemell", + "nameEn": "Chicken breast Bakony style", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Barackos csirkemell", + "nameHu": "Barackos csirkemell", + "nameEn": "Chicken breast with peaches", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "BBQs csirkeszárny", + "nameHu": "BBQs csirkeszárny", + "nameEn": "BBQ chicken wings", + "priceLarge": 10, + "priceSmall": 900 + }, + { + "name": "Berni csirkemell", + "nameHu": "Berni csirkemell", + "nameEn": "Bernese chicken breast", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Birkapörkölt", + "nameHu": "Birkapörkölt", + "nameEn": "Mutton stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Bolognai rakott tészta", + "nameHu": "Bolognai rakott tészta", + "nameEn": "Baked Bolognese pasta", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Bolognai spagetti", + "nameHu": "Bolognai spagetti", + "nameEn": "Spaghetti Bolognese", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Borjúpaprikás", + "nameHu": "Borjúpaprikás", + "nameEn": "Veal paprikash", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Borsos tokány", + "nameHu": "Borsos tokány", + "nameEn": "Peppery meat stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Brassói aprópecsenye", + "nameHu": "Brassói aprópecsenye", + "nameEn": "Brasov style roast", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Brokkolis csirkés tészta", + "nameHu": "Brokkolis csirkés tészta", + "nameEn": "Chicken pasta with broccoli", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Budapest szelet", + "nameHu": "Budapest szelet", + "nameEn": "Budapest style slice", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Budapest tokány", + "nameHu": "Budapest tokány", + "nameEn": "Budapest style meat stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Burgonya saláta (20 dkg)", + "nameHu": "Burgonya saláta (20 dkg)", + "nameEn": "Potato salad (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Burgonyás csirkemell", + "nameHu": "Burgonyás csirkemell", + "nameEn": "Chicken breast with potatoes", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Cézár saláta", + "nameHu": "Cézár saláta", + "nameEn": "Caesar salad", + "priceLarge": 2600, + "priceSmall": 0 + }, + { + "name": "Chillis bab", + "nameHu": "Chillis bab", + "nameEn": "Chili con carne", + "priceLarge": 1900, + "priceSmall": 1330 + }, + { + "name": "Cigánypecsenye", + "nameHu": "Cigánypecsenye", + "nameEn": "Gypsy roast", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Citromos csirkemell", + "nameHu": "Citromos csirkemell", + "nameEn": "Lemon chicken breast", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Cukkinisfetás csirkemell", + "nameHu": "Cukkinisfetás csirkemell", + "nameEn": "Chicken breast with zucchini and feta", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Cukkinisricottás tészta", + "nameHu": "Cukkinisricottás tészta", + "nameEn": "Pasta with zucchini and ricotta", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Currys csirkemell", + "nameHu": "Currys csirkemell", + "nameEn": "Curry chicken breast", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Császár csirkemell (10 dkg)", + "nameHu": "Császár csirkemell (10 dkg)", + "nameEn": "Emperor chicken breast (100g)", + "priceLarge": 1100, + "priceSmall": 0 + }, + { + "name": "Cserkészfalatok", + "nameHu": "Cserkészfalatok", + "nameEn": "Scout bites", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Csikós tokány", + "nameHu": "Csikós tokány", + "nameEn": "Wrangler's meat stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Csirkemell Marcsi módra", + "nameHu": "Csirkemell Marcsi módra", + "nameEn": "Chicken breast Marcsi style", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Csirkemell Gellért", + "nameHu": "Csirkemell Gellért", + "nameEn": "Chicken breast Gellért style", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Csirkemell pörkölt", + "nameHu": "Csirkemell pörkölt", + "nameEn": "Chicken breast stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Csirkemelles rakott tészta", + "nameHu": "Csirkemelles rakott tészta", + "nameEn": "Baked pasta with chicken breast", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Csirkemelles tortilla", + "nameHu": "Csirkemelles tortilla", + "nameEn": "Chicken breast tortilla", + "priceLarge": 2000, + "priceSmall": 0 + }, + { + "name": "Csirkepörkölt", + "nameHu": "Csirkepörkölt", + "nameEn": "Chicken stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Csirkerizottó", + "nameHu": "Csirkerizottó", + "nameEn": "Chicken risotto", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Csirkésfetás farfalle", + "nameHu": "Csirkésfetás farfalle", + "nameEn": "Farfalle with chicken and feta", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Csőben sült brokkoli", + "nameHu": "Csőben sült brokkoli", + "nameEn": "Gratinated broccoli", + "priceLarge": 1300, + "priceSmall": 0 + }, + { + "name": "Csőben sült karfiol", + "nameHu": "Csőben sült karfiol", + "nameEn": "Gratinated cauliflower", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Csülök Pékné", + "nameHu": "Csülök Pékné", + "nameEn": "Knuckle of pork Baker's wife style", + "priceLarge": 2200, + "priceSmall": 1540 + }, + { + "name": "Csülökpörkölt", + "nameHu": "Csülökpörkölt", + "nameEn": "Pork knuckle stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "DélOlasz rakott tészta", + "nameHu": "DélOlasz rakott tészta", + "nameEn": "Southern Italian baked pasta", + "priceLarge": 1900, + "priceSmall": 1330 + }, + { + "name": "Dubary szelet", + "nameHu": "Dubary szelet", + "nameEn": "Dubarry slice", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Édessavanyú csirkemell", + "nameHu": "Édessavanyú csirkemell", + "nameEn": "Sweet and sour chicken breast", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Erdélyi marhatokány", + "nameHu": "Erdélyi marhatokány", + "nameEn": "Transylvanian beef stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Erdészné kedvence", + "nameHu": "Erdészné kedvence", + "nameEn": "Forester's wife's favorite", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Eszterházy marhatokány", + "nameHu": "Eszterházy marhatokány", + "nameEn": "Eszterházy beef stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Fokhagymás medallion", + "nameHu": "Fokhagymás medallion", + "nameEn": "Garlic medallions", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Főtt füstölt csülök (15 kgos)", + "nameHu": "Főtt füstölt csülök (15 kgos)", + "nameEn": "Boiled smoked pork knuckle (1.5 kg)", + "priceLarge": 7000, + "priceSmall": 0 + }, + { + "name": "Francia rakott burgonya", + "nameHu": "Francia rakott burgonya", + "nameEn": "French baked potatoes", + "priceLarge": 1400, + "priceSmall": 980 + }, + { + "name": "Francia saláta (20 dkg)", + "nameHu": "Francia saláta (20 dkg)", + "nameEn": "French salad (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Francia sertésborda", + "nameHu": "Francia sertésborda", + "nameEn": "French pork chop", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Fussili primavera", + "nameHu": "Fussili primavera", + "nameEn": "Fusilli primavera", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Fűszeres csirkemell falatok", + "nameHu": "Fűszeres csirkemell falatok", + "nameEn": "Spicy chicken breast bites", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Gombás csirkemell", + "nameHu": "Gombás csirkemell", + "nameEn": "Chicken breast with mushrooms", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Gombás máj (10 dkg)", + "nameHu": "Gombás máj (10 dkg)", + "nameEn": "Liver with mushrooms (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Gombás szelet", + "nameHu": "Gombás szelet", + "nameEn": "Mushroom slice", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Gombássajtos tészta", + "nameHu": "Gombássajtos tészta", + "nameEn": "Pasta with mushrooms and cheese", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Grill zöldséges sajtos bulgur", + "nameHu": "Grill zöldséges sajtos bulgur", + "nameEn": "Bulgur with grilled vegetables and cheese", + "priceLarge": 1600, + "priceSmall": 0 + }, + { + "name": "Harcsapörkölt", + "nameHu": "Harcsapörkölt", + "nameEn": "Catfish stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Hawai csirkemell", + "nameHu": "Hawai csirkemell", + "nameEn": "Hawaiian chicken breast", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Hawai saláta (20 dkg)", + "nameHu": "Hawai saláta (20 dkg)", + "nameEn": "Hawaiian salad (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Hentes tokány", + "nameHu": "Hentes tokány", + "nameEn": "Butcher's style meat stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Hétvezér tokány", + "nameHu": "Hétvezér tokány", + "nameEn": "Seven Chieftains meat stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Hízott kacsamáj (10 dkg)", + "nameHu": "Hízott kacsamáj (10 dkg)", + "nameEn": "Fattened duck liver (100g)", + "priceLarge": 5000, + "priceSmall": 0 + }, + { + "name": "Holstein szelet", + "nameHu": "Holstein szelet", + "nameEn": "Holstein slice", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Hortobágyi húsos palacsinta", + "nameHu": "Hortobágyi húsos palacsinta", + "nameEn": "Meat pancakes Hortobágy style", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Húsos lasagne", + "nameHu": "Húsos lasagne", + "nameEn": "Meat lasagne", + "priceLarge": 2000, + "priceSmall": 0 + }, + { + "name": "Húsos rakott burgonya", + "nameHu": "Húsos rakott burgonya", + "nameEn": "Baked potatoes with meat", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Jóasszony tokány", + "nameHu": "Jóasszony tokány", + "nameEn": "Good wife's style meat stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Kacsamáj rizottó", + "nameHu": "Kacsamáj rizottó", + "nameEn": "Duck liver risotto", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Kakashere pörkölt", + "nameHu": "Kakashere pörkölt", + "nameEn": "Rooster testicle stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Káposztás hús", + "nameHu": "Káposztás hús", + "nameEn": "Meat with cabbage", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Karfiolos sertésszelet", + "nameHu": "Karfiolos sertésszelet", + "nameEn": "Pork slice with cauliflower", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Kétsajtos rizottó", + "nameHu": "Kétsajtos rizottó", + "nameEn": "Two-cheese risotto", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Kocsonya", + "nameHu": "Kocsonya", + "nameEn": "Aspic", + "priceLarge": 1400, + "priceSmall": 0 + }, + { + "name": "Körömpörkölt", + "nameHu": "Körömpörkölt", + "nameEn": "Pork trotters stew", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Kukorica saláta (20 dkg)", + "nameHu": "Kukorica saláta (20 dkg)", + "nameEn": "Corn salad (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Lecsós virsli", + "nameHu": "Lecsós virsli", + "nameEn": "Frankfurters with lecsó", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Libabelsőség pörkölt", + "nameHu": "Libabelsőség pörkölt", + "nameEn": "Goose offal stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Libamell paprikás", + "nameHu": "Libamell paprikás", + "nameEn": "Goose breast paprikash", + "priceLarge": 2600, + "priceSmall": 1400 + }, + { + "name": "Libaszív pörkölt", + "nameHu": "Libaszív pörkölt", + "nameEn": "Goose heart stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Libaszív rizottó", + "nameHu": "Libaszív rizottó", + "nameEn": "Goose heart risotto", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Libaszív vetrece", + "nameHu": "Libaszív vetrece", + "nameEn": "Goose heart vetrece", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Libazúza rizottó", + "nameHu": "Libazúza rizottó", + "nameEn": "Goose gizzard risotto", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Ludaskása", + "nameHu": "Ludaskása", + "nameEn": "Goose risotto with vegetables", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Magyaros csirkemell", + "nameHu": "Magyaros csirkemell", + "nameEn": "Hungarian style chicken breast", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Magyaróvári sertésszelet", + "nameHu": "Magyaróvári sertésszelet", + "nameEn": "Pork slice Magyaróvár style", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Majonézes káposzta saláta (20 dkg)", + "nameHu": "Majonézes káposzta saláta (20 dkg)", + "nameEn": "Cabbage salad with mayonnaise (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Majonézes tészta saláta (20 dkg)", + "nameHu": "Majonézes tészta saláta (20 dkg)", + "nameEn": "Pasta salad with mayonnaise (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Marhapörkölt", + "nameHu": "Marhapörkölt", + "nameEn": "Beef stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Mexikói tokány", + "nameHu": "Mexikói tokány", + "nameEn": "Mexican meat stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Mézzel csurgatott sárgadinnye", + "nameHu": "Mézzel csurgatott sárgadinnye", + "nameEn": "Cantaloupe with honey", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Milánói rakott tészta", + "nameHu": "Milánói rakott tészta", + "nameEn": "Milanese baked pasta", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Milánói spagetti", + "nameHu": "Milánói spagetti", + "nameEn": "Spaghetti Milanese", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Mozzarellás bazsalikomos paradicsomos saláta", + "nameHu": "Mozzarellás bazsalikomos paradicsomos saláta", + "nameEn": "Tomato and mozzarella salad with basil", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Mozzarellás csirkemell", + "nameHu": "Mozzarellás csirkemell", + "nameEn": "Chicken breast with mozzarella", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Mozzarellás harcsafilé", + "nameHu": "Mozzarellás harcsafilé", + "nameEn": "Catfish fillet with mozzarella", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Orosz hússaláta (20 dkg)", + "nameHu": "Orosz hússaláta (20 dkg)", + "nameEn": "Russian meat salad (200g)", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Pacal pörkölt (10 dkg)", + "nameHu": "Pacal pörkölt (10 dkg)", + "nameEn": "Tripe stew (100g)", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Paprikás burgonya", + "nameHu": "Paprikás burgonya", + "nameEn": "Potato paprikash", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Párolt Marhaszelet", + "nameHu": "Párolt Marhaszelet", + "nameEn": "Steamed beef slice", + "priceLarge": 1200, + "priceSmall": 600 + }, + { + "name": "Pásztortarhonya", + "nameHu": "Pásztortarhonya", + "nameEn": "Shepherd's egg barley", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Pirított csirke máj (10 dkg)", + "nameHu": "Pirított csirke máj (10 dkg)", + "nameEn": "Roasted chicken liver (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Pirított sertés máj (10 dkg)", + "nameHu": "Pirított sertés máj (10 dkg)", + "nameEn": "Roasted pork liver (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Pulykapörkölt", + "nameHu": "Pulykapörkölt", + "nameEn": "Turkey stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Rácz hús", + "nameHu": "Rácz hús", + "nameEn": "Rác meat", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Rakott brokkoli", + "nameHu": "Rakott brokkoli", + "nameEn": "Baked broccoli", + "priceLarge": 1400, + "priceSmall": 980 + }, + { + "name": "Rakott burgonya", + "nameHu": "Rakott burgonya", + "nameEn": "Baked potatoes", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Rakott káposzta", + "nameHu": "Rakott káposzta", + "nameEn": "Baked cabbage", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Rakott karfiol", + "nameHu": "Rakott karfiol", + "nameEn": "Baked cauliflower", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Rakott kelkáposzta", + "nameHu": "Rakott kelkáposzta", + "nameEn": "Baked savoy cabbage", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Rakott zöldbab", + "nameHu": "Rakott zöldbab", + "nameEn": "Baked green beans", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Rozmaringos marhasült", + "nameHu": "Rozmaringos marhasült", + "nameEn": "Roast beef with rosemary", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Sajtos brokkoli saláta (20 dkg)", + "nameHu": "Sajtos brokkoli saláta (20 dkg)", + "nameEn": "Broccoli salad with cheese (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Savanyú vetrece", + "nameHu": "Savanyú vetrece", + "nameEn": "Sour vetrece", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Savoyard szelet", + "nameHu": "Savoyard szelet", + "nameEn": "Savoyard slice", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Sertés pörkölt", + "nameHu": "Sertés pörkölt", + "nameEn": "Pork stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Sertés sült", + "nameHu": "Sertés sült", + "nameEn": "Roast pork", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Sóletbab", + "nameHu": "Sóletbab", + "nameEn": "Cholent beans", + "priceLarge": 1900, + "priceSmall": 1330 + }, + { + "name": "Sombrero szelet", + "nameHu": "Sombrero szelet", + "nameEn": "Sombrero slice", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Sonkarizottó", + "nameHu": "Sonkarizottó", + "nameEn": "Ham risotto", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Sonkás kocka", + "nameHu": "Sonkás kocka", + "nameEn": "Ham and pasta squares", + "priceLarge": 1900, + "priceSmall": 1330 + }, + { + "name": "Spagetti Carbonara", + "nameHu": "Spagetti Carbonara", + "nameEn": "Spaghetti Carbonara", + "priceLarge": 1900, + "priceSmall": 1330 + }, + { + "name": "Spenótos paradicsomos lasagne", + "nameHu": "Spenótos paradicsomos lasagne", + "nameEn": "Spinach and tomato lasagne", + "priceLarge": 2000, + "priceSmall": 0 + }, + { + "name": "Spenótos tészta", + "nameHu": "Spenótos tészta", + "nameEn": "Spinach pasta", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Szalontüdő", + "nameHu": "Szalontüdő", + "nameEn": "Lung stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Szarvas pörkölt", + "nameHu": "Szarvas pörkölt", + "nameEn": "Venison stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Székelykáposzta", + "nameHu": "Székelykáposzta", + "nameEn": "Székely cabbage", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Tarhonyás hús", + "nameHu": "Tarhonyás hús", + "nameEn": "Meat with egg barley", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Tavaszi csirkemell", + "nameHu": "Tavaszi csirkemell", + "nameEn": "Spring chicken breast", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejfölös kacsacomb darabok", + "nameHu": "Tejfölös kacsacomb darabok", + "nameEn": "Duck leg pieces with sour cream", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Tejfölösgombás pulykacomb", + "nameHu": "Tejfölösgombás pulykacomb", + "nameEn": "Turkey leg with mushrooms and sour cream", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejfölös csirkecomb", + "nameHu": "Tejfölös csirkecomb", + "nameEn": "Chicken leg with sour cream", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejfölös csirketokány", + "nameHu": "Tejfölös csirketokány", + "nameEn": "Chicken stew with sour cream", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejfölös gombatokány", + "nameHu": "Tejfölös gombatokány", + "nameEn": "Mushroom stew with sour cream", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejfölös gombap.", + "nameHu": "Tejfölös gombap.", + "nameEn": "Mushroom stew with sour cream", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejfölös pulykacomb", + "nameHu": "Tejfölös pulykacomb", + "nameEn": "Turkey leg with sour cream", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejfölös sertészelet", + "nameHu": "Tejfölös sertészelet", + "nameEn": "Pork slice with sour cream", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejszínesgombás csirkemell", + "nameHu": "Tejszínesgombás csirkemell", + "nameEn": "Chicken breast with cream and mushrooms", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejszínesgyümölcsös csirkemell", + "nameHu": "Tejszínesgyümölcsös csirkemell", + "nameEn": "Chicken breast with cream and fruit", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejszínes rakott hal", + "nameHu": "Tejszínes rakott hal", + "nameEn": "Baked fish with cream", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Tejszínes zöldborsós csirkemell", + "nameHu": "Tejszínes zöldborsós csirkemell", + "nameEn": "Chicken breast with cream and green peas", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tejszíneskapros csirkemell", + "nameHu": "Tejszíneskapros csirkemell", + "nameEn": "Chicken breast with cream and dill", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Temesvári sertéstokány", + "nameHu": "Temesvári sertéstokány", + "nameEn": "Temesvár pork stew", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Tepsis zöld", + "nameHu": "Tepsis zöld", + "nameEn": "Baked vegetables", + "priceLarge": 1100, + "priceSmall": 770 + }, + { + "name": "Thai csirkemell", + "nameHu": "Thai csirkemell", + "nameEn": "Thai chicken breast", + "priceLarge": 1900, + "priceSmall": 1330 + }, + { + "name": "Tócsni (sajt tejföl) 1 db", + "nameHu": "Tócsni (sajt tejföl) 1 db", + "nameEn": "Potato pancake (with cheese and sour cream) 1 pc", + "priceLarge": 1000, + "priceSmall": 0 + }, + { + "name": "Tócsnis hús", + "nameHu": "Tócsnis hús", + "nameEn": "Meat with potato pancake", + "priceLarge": 2000, + "priceSmall": 0 + }, + { + "name": "Tojáspörkölt", + "nameHu": "Tojáspörkölt", + "nameEn": "Egg stew", + "priceLarge": 1000, + "priceSmall": 700 + }, + { + "name": "Tonhalas par. cukkini", + "nameHu": "Tonhalas par. cukkini", + "nameEn": "Zucchini with tuna and tomato", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Tonhalas penne", + "nameHu": "Tonhalas penne", + "nameEn": "Penne with tuna", + "priceLarge": 1900, + "priceSmall": 1330 + }, + { + "name": "Töltött káposzta", + "nameHu": "Töltött káposzta", + "nameEn": "Stuffed cabbage", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Töltött paprika", + "nameHu": "Töltött paprika", + "nameEn": "Stuffed peppers", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Tutitotti tészta", + "nameHu": "Tutitotti tészta", + "nameEn": "Tutti-totti pasta", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Tzatziki saláta (20 dkg)", + "nameHu": "Tzatziki saláta (20 dkg)", + "nameEn": "Tzatziki salad (200g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Üres kocsonya", + "nameHu": "Üres kocsonya", + "nameEn": "Empty aspic", + "priceLarge": 1000, + "priceSmall": 0 + }, + { + "name": "Vadas csirkemell", + "nameHu": "Vadas csirkemell", + "nameEn": "Chicken breast Hunter style", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Vadas libamell", + "nameHu": "Vadas libamell", + "nameEn": "Goose breast Hunter style", + "priceLarge": 2600, + "priceSmall": 1820 + }, + { + "name": "Vadas marhaszelet", + "nameHu": "Vadas marhaszelet", + "nameEn": "Beef slice Hunter style", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Vaddisznó pörkölt", + "nameHu": "Vaddisznó pörkölt", + "nameEn": "Wild boar stew", + "priceLarge": 2000, + "priceSmall": 1400 + }, + { + "name": "Váradi rakott burgonya", + "nameHu": "Váradi rakott burgonya", + "nameEn": "Baked potatoes Várad style", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Velős máj (10 dkg)", + "nameHu": "Velős máj (10 dkg)", + "nameEn": "Liver with brains (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Vesevelő tojással", + "nameHu": "Vesevelő tojással", + "nameEn": "Kidneys and brains with eggs", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Vörösbabos csirkemell", + "nameHu": "Vörösbabos csirkemell", + "nameEn": "Chicken breast with red beans", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Zöldborsós csirkemell", + "nameHu": "Zöldborsós csirkemell", + "nameEn": "Chicken breast with green peas", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Zöldborsós sertéstokány", + "nameHu": "Zöldborsós sertéstokány", + "nameEn": "Pork stew with green peas", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Zöldborsós szelet", + "nameHu": "Zöldborsós szelet", + "nameEn": "Slice with green peas", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Zöldséges spagetti felfújt", + "nameHu": "Zöldséges spagetti felfújt", + "nameEn": "Vegetable spaghetti soufflé", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Zöldséges Lasagne", + "nameHu": "Zöldséges Lasagne", + "nameEn": "Vegetable Lasagne", + "priceLarge": 2000, + "priceSmall": 0 + }, + { + "name": "Zöldséges sült tészta", + "nameHu": "Zöldséges sült tészta", + "nameEn": "Fried pasta with vegetables", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Zöldségesfetás tészta Saláta", + "nameHu": "Zöldségesfetás tészta Saláta", + "nameEn": "Pasta salad with vegetables and feta", + "priceLarge": 1600, + "priceSmall": 0 + }, + { + "name": "Zúza pörkölt (10 dkg)", + "nameHu": "Zúza pörkölt (10 dkg)", + "nameEn": "Gizzard stew (100g)", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Ananásszalsonkával töltött csirkemell", + "nameHu": "Ananásszalsonkával töltött csirkemell", + "nameEn": "Chicken breast stuffed with pineapple and ham", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Bacsa szelet", + "nameHu": "Bacsa szelet", + "nameEn": "Bacsa slice", + "priceLarge": 2000, + "priceSmall": 1000 + }, + { + "name": "Brokkolissajtos csirkemell", + "nameHu": "Brokkolissajtos csirkemell", + "nameEn": "Chicken breast with broccoli and cheese", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Egészben sült kacsa (fél kacsa)", + "nameHu": "Egészben sült kacsa (fél kacsa)", + "nameEn": "Whole roasted duck (half duck)", + "priceLarge": 2650, + "priceSmall": 0 + }, + { + "name": "Fasírozott 1 db", + "nameHu": "Fasírozott 1 db", + "nameEn": "Meatloaf 1 pc", + "priceLarge": 700, + "priceSmall": 350 + }, + { + "name": "Fűszeres steak csirkecomb (10 dkg)", + "nameHu": "Fűszeres steak csirkecomb (10 dkg)", + "nameEn": "Spicy steak chicken leg (100g)", + "priceLarge": 1000, + "priceSmall": 0 + }, + { + "name": "Gombaropogós 1 db", + "nameHu": "Gombaropogós 1 db", + "nameEn": "Mushroom crunch 1 pc", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Gombával töltött csirkemell", + "nameHu": "Gombával töltött csirkemell", + "nameEn": "Chicken breast stuffed with mushrooms", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Grill camembert", + "nameHu": "Grill camembert", + "nameEn": "Grilled camembert", + "priceLarge": 1700, + "priceSmall": 0 + }, + { + "name": "Grill csirkemell 1 db", + "nameHu": "Grill csirkemell 1 db", + "nameEn": "Grilled chicken breast 1 pc", + "priceLarge": 1100, + "priceSmall": 0 + }, + { + "name": "Ínyenc rántott szelet", + "nameHu": "Ínyenc rántott szelet", + "nameEn": "Gourmet fried slice", + "priceLarge": 2000, + "priceSmall": 1000 + }, + { + "name": "Ínyenc rántott sajt", + "nameHu": "Ínyenc rántott sajt", + "nameEn": "Gourmet fried cheese", + "priceLarge": 2000, + "priceSmall": 1000 + }, + { + "name": "Juhtúróval töltött csirkemell", + "nameHu": "Juhtúróval töltött csirkemell", + "nameEn": "Chicken breast stuffed with sheep's curd", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Kacsamájjal töltött csirkemell", + "nameHu": "Kacsamájjal töltött csirkemell", + "nameEn": "Chicken breast stuffed with duck liver", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Karamellizált körte 1 db", + "nameHu": "Karamellizált körte 1 db", + "nameEn": "Caramelized pear 1 pc", + "priceLarge": 500, + "priceSmall": 0 + }, + { + "name": "Kendermagos csirkemell", + "nameHu": "Kendermagos csirkemell", + "nameEn": "Chicken breast with hemp seeds", + "priceLarge": 1800, + "priceSmall": 900 + }, + { + "name": "Kijevi csirkemell", + "nameHu": "Kijevi csirkemell", + "nameEn": "Chicken Kiev", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Laci pecsenye (10 dkg)", + "nameHu": "Laci pecsenye (10 dkg)", + "nameEn": "Laci roast (100g)", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Lecsós szelet", + "nameHu": "Lecsós szelet", + "nameEn": "Slice with lecsó", + "priceLarge": 1700, + "priceSmall": 1190 + }, + { + "name": "Májjal töltött sertésszelet", + "nameHu": "Májjal töltött sertésszelet", + "nameEn": "Pork slice stuffed with liver", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Manduláskókuszos csirkemell", + "nameHu": "Manduláskókuszos csirkemell", + "nameEn": "Chicken breast with almonds and coconut", + "priceLarge": 1800, + "priceSmall": 900 + }, + { + "name": "Natúr csirkemell", + "nameHu": "Natúr csirkemell", + "nameEn": "Grilled chicken breast", + "priceLarge": 1200, + "priceSmall": 600 + }, + { + "name": "Natúr szelet", + "nameHu": "Natúr szelet", + "nameEn": "Grilled pork slice", + "priceLarge": 1200, + "priceSmall": 600 + }, + { + "name": "Nyitrai szelet", + "nameHu": "Nyitrai szelet", + "nameEn": "Nyitra style slice", + "priceLarge": 2000, + "priceSmall": 1000 + }, + { + "name": "Parasztos töltött szelet", + "nameHu": "Parasztos töltött szelet", + "nameEn": "Peasant style stuffed slice", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Párizsi csirkemell", + "nameHu": "Párizsi csirkemell", + "nameEn": "Parisian style chicken breast", + "priceLarge": 1700, + "priceSmall": 850 + }, + { + "name": "Pecsenye kacsamáj (10 dkg)", + "nameHu": "Pecsenye kacsamáj (10 dkg)", + "nameEn": "Duck liver roast (100g)", + "priceLarge": 1000, + "priceSmall": 0 + }, + { + "name": "Rántott csirkecomb", + "nameHu": "Rántott csirkecomb", + "nameEn": "Fried chicken leg", + "priceLarge": 2000, + "priceSmall": 1000 + }, + { + "name": "Rántott lazac (10 dkg 1 db)", + "nameHu": "Rántott lazac (10 dkg 1 db)", + "nameEn": "Fried salmon (100g/pc)", + "priceLarge": 1500, + "priceSmall": 0 + }, + { + "name": "Rántott brokkoli (10 dkg)", + "nameHu": "Rántott brokkoli (10 dkg)", + "nameEn": "Fried broccoli (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Rántott camembert", + "nameHu": "Rántott camembert", + "nameEn": "Fried camembert", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Rántott cukkini (10 dkg)", + "nameHu": "Rántott cukkini (10 dkg)", + "nameEn": "Fried zucchini (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Rántott csirkeszárny (10 dkg)", + "nameHu": "Rántott csirkeszárny (10 dkg)", + "nameEn": "Fried chicken wings (100g)", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Rántott csirkemell", + "nameHu": "Rántott csirkemell", + "nameEn": "Fried chicken breast", + "priceLarge": 1700, + "priceSmall": 850 + }, + { + "name": "Rántott gomba (10 dkg)", + "nameHu": "Rántott gomba (10 dkg)", + "nameEn": "Fried mushroom (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Rántott hagymakarika", + "nameHu": "Rántott hagymakarika", + "nameEn": "Fried onion rings", + "priceLarge": 700, + "priceSmall": 350 + }, + { + "name": "Rántott halrudak", + "nameHu": "Rántott halrudak", + "nameEn": "Fish fingers", + "priceLarge": 1400, + "priceSmall": 700 + }, + { + "name": "Rántott harcsafilé (10 dkg)", + "nameHu": "Rántott harcsafilé (10 dkg)", + "nameEn": "Fried catfish fillet (100g)", + "priceLarge": 850, + "priceSmall": 0 + }, + { + "name": "Rántott karfiol (10 dkg)", + "nameHu": "Rántott karfiol (10 dkg)", + "nameEn": "Fried cauliflower (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Rántott máj", + "nameHu": "Rántott máj", + "nameEn": "Fried liver", + "priceLarge": 1200, + "priceSmall": 600 + }, + { + "name": "Rántott patiszon (10 dkg)", + "nameHu": "Rántott patiszon (10 dkg)", + "nameEn": "Fried pattypan squash (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Rántott sajt", + "nameHu": "Rántott sajt", + "nameEn": "Fried cheese", + "priceLarge": 1800, + "priceSmall": 900 + }, + { + "name": "Rántott szelet", + "nameHu": "Rántott szelet", + "nameEn": "Fried pork slice", + "priceLarge": 1700, + "priceSmall": 850 + }, + { + "name": "Roston harcsa (10 dkg)", + "nameHu": "Roston harcsa (10 dkg)", + "nameEn": "Grilled catfish (100g)", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Rozmaringos kacsamáj (10 dkg)", + "nameHu": "Rozmaringos kacsamáj (10 dkg)", + "nameEn": "Duck liver with rosemary (100g)", + "priceLarge": 1000, + "priceSmall": 0 + }, + { + "name": "Sajttalsonkával töltött csirkemell", + "nameHu": "Sajttalsonkával töltött csirkemell", + "nameEn": "Chicken breast stuffed with cheese and ham", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Sajttalsonkával töltött palacsinta 1 db", + "nameHu": "Sajttalsonkával töltött palacsinta 1 db", + "nameEn": "Pancake stuffed with cheese and ham 1 pc", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Sajtropogós 1 db", + "nameHu": "Sajtropogós 1 db", + "nameEn": "Cheese crunch 1 pc", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Sajttal töltött hal 1 db", + "nameHu": "Sajttal töltött hal 1 db", + "nameEn": "Fish stuffed with cheese 1 pc", + "priceLarge": 1000, + "priceSmall": 0 + }, + { + "name": "Sörben sült csülök", + "nameHu": "Sörben sült csülök", + "nameEn": "Pork knuckle roasted in beer", + "priceLarge": 5500, + "priceSmall": 0 + }, + { + "name": "Stefánia vagdalt", + "nameHu": "Stefánia vagdalt", + "nameEn": "Stefánia meatloaf", + "priceLarge": 1400, + "priceSmall": 700 + }, + { + "name": "Sült csirkecomb (10 dkg)", + "nameHu": "Sült csirkecomb (10 dkg)", + "nameEn": "Roasted chicken leg (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Sült házi kolbász (10 dkg)", + "nameHu": "Sült házi kolbász (10 dkg)", + "nameEn": "Roasted homemade sausage (100g)", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Sült hekk (10 dkg)", + "nameHu": "Sült hekk (10 dkg)", + "nameEn": "Roasted hake (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Sült hurka (10 dkg)", + "nameHu": "Sült hurka (10 dkg)", + "nameEn": "Roasted black pudding/sausage (100g)", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Sült kacsacomb (10 dkg)", + "nameHu": "Sült kacsacomb (10 dkg)", + "nameEn": "Roasted duck leg (100g)", + "priceLarge": 1700, + "priceSmall": 0 + }, + { + "name": "Sült libacomb (10 dkg)", + "nameHu": "Sült libacomb (10 dkg)", + "nameEn": "Roasted goose leg (100g)", + "priceLarge": 2600, + "priceSmall": 0 + }, + { + "name": "Sült libamell filé (10 dkg)", + "nameHu": "Sült libamell filé (10 dkg)", + "nameEn": "Roasted goose breast fillet (100g)", + "priceLarge": 2700, + "priceSmall": 0 + }, + { + "name": "Sült pisztráng (10 dkg)", + "nameHu": "Sült pisztráng (10 dkg)", + "nameEn": "Roasted trout (100g)", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Sült tök 1 db", + "nameHu": "Sült tök 1 db", + "nameEn": "Roasted pumpkin 1 pc", + "priceLarge": 500, + "priceSmall": 0 + }, + { + "name": "Szezámmagos csirkemell", + "nameHu": "Szezámmagos csirkemell", + "nameEn": "Chicken breast with sesame seeds", + "priceLarge": 1700, + "priceSmall": 850 + }, + { + "name": "Szilvási csirkemell", + "nameHu": "Szilvási csirkemell", + "nameEn": "Chicken breast with plums", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Tojásropogós 1 db", + "nameHu": "Tojásropogós 1 db", + "nameEn": "Egg crunch 1 pc", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Töltött csirkecomb 1 db", + "nameHu": "Töltött csirkecomb 1 db", + "nameEn": "Stuffed chicken leg 1 pc", + "priceLarge": 1600, + "priceSmall": 0 + }, + { + "name": "Velővel töltött sertésszelet", + "nameHu": "Velővel töltött sertésszelet", + "nameEn": "Pork slice stuffed with brains", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Zöldségessajtos csirkemell", + "nameHu": "Zöldségessajtos csirkemell", + "nameEn": "Chicken breast with vegetables and cheese", + "priceLarge": 1900, + "priceSmall": 950 + }, + { + "name": "Zöldségropogós 1 db", + "nameHu": "Zöldségropogós 1 db", + "nameEn": "Vegetable crunch 1 pc", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Aranygaluska", + "nameHu": "Aranygaluska", + "nameEn": "Golden dumplings", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Csokikrémmel töltött fánk", + "nameHu": "Csokikrémmel töltött fánk", + "nameEn": "Doughnut filled with chocolate cream", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Csokis fánk", + "nameHu": "Csokis fánk", + "nameEn": "Chocolate doughnut", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Diós metélt", + "nameHu": "Diós metélt", + "nameEn": "Noodles with walnuts", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Erdei gyümölcsös gombóc", + "nameHu": "Erdei gyümölcsös gombóc", + "nameEn": "Forest fruit dumplings", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Fánk", + "nameHu": "Fánk", + "nameEn": "Doughnut", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Grízes metélt", + "nameHu": "Grízes metélt", + "nameEn": "Pasta with semolina", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Gundel palacsinta", + "nameHu": "Gundel palacsinta", + "nameEn": "Gundel pancake", + "priceLarge": 700, + "priceSmall": 0 + }, + { + "name": "Juhtúrós sztrapacska", + "nameHu": "Juhtúrós sztrapacska", + "nameEn": "Potato dumplings with sheep's curd", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Káposztás kocka", + "nameHu": "Káposztás kocka", + "nameEn": "Cabbage pasta squares", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Káposztás sztrapacska", + "nameHu": "Káposztás sztrapacska", + "nameEn": "Potato dumplings with cabbage", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Krumplis tészta", + "nameHu": "Krumplis tészta", + "nameEn": "Potato pasta", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Lekvárral töltött fánk", + "nameHu": "Lekvárral töltött fánk", + "nameEn": "Doughnut filled with jam", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Máglyarakás", + "nameHu": "Máglyarakás", + "nameEn": "Bonfire stack (bread pudding)", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Mákos guba vaníliával", + "nameHu": "Mákos guba vaníliával", + "nameEn": "Poppy seed bread pudding with vanilla", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Mákos metélt", + "nameHu": "Mákos metélt", + "nameEn": "Noodles with poppy seeds", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Mákos nudli", + "nameHu": "Mákos nudli", + "nameEn": "Potato noodles with poppy seeds", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Palacsinta", + "nameHu": "Palacsinta", + "nameEn": "Pancake", + "priceLarge": 500, + "priceSmall": 0 + }, + { + "name": "Parasztos csusza", + "nameHu": "Parasztos csusza", + "nameEn": "Peasant style pasta with curd and bacon", + "priceLarge": 1800, + "priceSmall": 1260 + }, + { + "name": "Prézlis núdli", + "nameHu": "Prézlis núdli", + "nameEn": "Potato noodles with breadcrumbs", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Rakott metélt", + "nameHu": "Rakott metélt", + "nameEn": "Baked pasta", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Rizsfelfújt", + "nameHu": "Rizsfelfújt", + "nameEn": "Rice pudding soufflé", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Sajtos tejfölös spagetti", + "nameHu": "Sajtos tejfölös spagetti", + "nameEn": "Spaghetti with cheese and sour cream", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Sárgabarackos gombóc vanília öntettel", + "nameHu": "Sárgabarackos gombóc vanília öntettel", + "nameEn": "Apricot dumplings with vanilla sauce", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Savanyú káposztás sztrapacska", + "nameHu": "Savanyú káposztás sztrapacska", + "nameEn": "Potato dumplings with sauerkraut", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Somlói", + "nameHu": "Somlói", + "nameEn": "Somló style sponge cake", + "priceLarge": 1300, + "priceSmall": 0 + }, + { + "name": "Szilvalekváros derelye", + "nameHu": "Szilvalekváros derelye", + "nameEn": "Plum jam dumplings", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Szilvás gombóc", + "nameHu": "Szilvás gombóc", + "nameEn": "Plum dumplings", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Szilvás töltött nudli", + "nameHu": "Szilvás töltött nudli", + "nameEn": "Potato noodles filled with plums", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Tiramisu", + "nameHu": "Tiramisu", + "nameEn": "Tiramisu", + "priceLarge": 1200, + "priceSmall": 0 + }, + { + "name": "Tojásos galuska", + "nameHu": "Tojásos galuska", + "nameEn": "Egg dumplings", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Túrógombóc tejfölös töltelékkel", + "nameHu": "Túrógombóc tejfölös töltelékkel", + "nameEn": "Cottage cheese dumplings with sour cream filling", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Túrókrémes csusza", + "nameHu": "Túrókrémes csusza", + "nameEn": "Pasta with cottage cheese cream", + "priceLarge": 1600, + "priceSmall": 1120 + }, + { + "name": "Túrós csusza", + "nameHu": "Túrós csusza", + "nameEn": "Pasta with cottage cheese and bacon", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Túrós derelye", + "nameHu": "Túrós derelye", + "nameEn": "Cottage cheese dumplings", + "priceLarge": 1300, + "priceSmall": 910 + }, + { + "name": "Túrós sztrapacska", + "nameHu": "Túrós sztrapacska", + "nameEn": "Potato dumplings with cottage cheese", + "priceLarge": 1500, + "priceSmall": 1050 + }, + { + "name": "Túrósvaníliás palacsinta rántva", + "nameHu": "Túrósvaníliás palacsinta rántva", + "nameEn": "Fried pancake with cottage cheese and vanilla", + "priceLarge": 850, + "priceSmall": 0 + }, + { + "name": "Aszalt szilvás párolt káposzta", + "nameHu": "Aszalt szilvás párolt káposzta", + "nameEn": "Steamed cabbage with prunes", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Burgonya röszti", + "nameHu": "Burgonya röszti", + "nameEn": "Potato rösti", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Burgonyakrokett", + "nameHu": "Burgonyakrokett", + "nameEn": "Potato croquettes", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Burgonyapüré", + "nameHu": "Burgonyapüré", + "nameEn": "Mashed potatoes", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Fitness saláta", + "nameHu": "Fitness saláta", + "nameEn": "Fitness salad", + "priceLarge": 2600, + "priceSmall": 0 + }, + { + "name": "Galuska", + "nameHu": "Galuska", + "nameEn": "Dumplings", + "priceLarge": 600, + "priceSmall": 420 + }, + { + "name": "Görög saláta", + "nameHu": "Görög saláta", + "nameEn": "Greek salad", + "priceLarge": 1600, + "priceSmall": 0 + }, + { + "name": "Grill zöldség", + "nameHu": "Grill zöldség", + "nameEn": "Grilled vegetables", + "priceLarge": 1000, + "priceSmall": 0 + }, + { + "name": "Hagymás tört burgonya", + "nameHu": "Hagymás tört burgonya", + "nameEn": "Crushed potatoes with onions", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Hasábburgonya", + "nameHu": "Hasábburgonya", + "nameEn": "French fries", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Juhtúrós galuska", + "nameHu": "Juhtúrós galuska", + "nameEn": "Dumplings with sheep's curd", + "priceLarge": 900, + "priceSmall": 630 + }, + { + "name": "Knédli", + "nameHu": "Knédli", + "nameEn": "Dumplings (Czech style)", + "priceLarge": 700, + "priceSmall": 490 + }, + { + "name": "Köret tészta", + "nameHu": "Köret tészta", + "nameEn": "Side pasta", + "priceLarge": 600, + "priceSmall": 420 + }, + { + "name": "Párolt káposzta", + "nameHu": "Párolt káposzta", + "nameEn": "Steamed cabbage", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Párolt rizs", + "nameHu": "Párolt rizs", + "nameEn": "Steamed rice", + "priceLarge": 600, + "priceSmall": 420 + }, + { + "name": "Petrezselymes burgonya", + "nameHu": "Petrezselymes burgonya", + "nameEn": "Parsley potatoes", + "priceLarge": 600, + "priceSmall": 420 + }, + { + "name": "Steak burgonya", + "nameHu": "Steak burgonya", + "nameEn": "Steak potatoes", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Sült burgonya", + "nameHu": "Sült burgonya", + "nameEn": "Roasted potatoes", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Tarhonya", + "nameHu": "Tarhonya", + "nameEn": "Egg barley", + "priceLarge": 600, + "priceSmall": 420 + }, + { + "name": "Tükörtojás 1 db", + "nameHu": "Tükörtojás 1 db", + "nameEn": "Fried egg 1 pc", + "priceLarge": 300, + "priceSmall": 0 + }, + { + "name": "Zöld köret", + "nameHu": "Zöld köret", + "nameEn": "Green side dish", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Zöldséges rizs", + "nameHu": "Zöldséges rizs", + "nameEn": "Vegetable rice", + "priceLarge": 800, + "priceSmall": 560 + }, + { + "name": "Zsemlegombóc", + "nameHu": "Zsemlegombóc", + "nameEn": "Bread dumplings", + "priceLarge": 600, + "priceSmall": 420 + }, + { + "name": "Almapaprika", + "nameHu": "Almapaprika", + "nameEn": "Apple pepper", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Cékla", + "nameHu": "Cékla", + "nameEn": "Beetroot", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Csalamádé", + "nameHu": "Csalamádé", + "nameEn": "Mixed pickles", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Csemegeuborka", + "nameHu": "Csemegeuborka", + "nameEn": "Pickled cucumbers", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Erős paprika", + "nameHu": "Erős paprika", + "nameEn": "Hot pepper", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Fejes saláta", + "nameHu": "Fejes saláta", + "nameEn": "Lettuce", + "priceLarge": 700, + "priceSmall": 0 + }, + { + "name": "Friss saláta", + "nameHu": "Friss saláta", + "nameEn": "Fresh salad", + "priceLarge": 900, + "priceSmall": 0 + }, + { + "name": "Káposzta saláta", + "nameHu": "Káposzta saláta", + "nameEn": "Cabbage salad", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Kovászos uborka", + "nameHu": "Kovászos uborka", + "nameEn": "Leavened cucumber", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Paradicsom saláta", + "nameHu": "Paradicsom saláta", + "nameEn": "Tomato salad", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Savanyú káposzta", + "nameHu": "Savanyú káposzta", + "nameEn": "Sauerkraut", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Uborka saláta", + "nameHu": "Uborka saláta", + "nameEn": "Cucumber salad", + "priceLarge": 800, + "priceSmall": 0 + }, + { + "name": "Kenyér", + "nameHu": "Kenyér", + "nameEn": "Bread", + "priceLarge": 150, + "priceSmall": 0 + }, + { + "name": "Ketchup", + "nameHu": "Ketchup", + "nameEn": "Ketchup", + "priceLarge": 500, + "priceSmall": 0 + }, + { + "name": "Mustár", + "nameHu": "Mustár", + "nameEn": "Mustard", + "priceLarge": 500, + "priceSmall": 0 + }, + { + "name": "Plusz lekvár", + "nameHu": "Plusz lekvár", + "nameEn": "Extra jam", + "priceLarge": 400, + "priceSmall": 0 + }, + { + "name": "Plusz sajt", + "nameHu": "Plusz sajt", + "nameEn": "Extra cheese", + "priceLarge": 500, + "priceSmall": 0 + }, + { + "name": "Plusz tejföl", + "nameHu": "Plusz tejföl", + "nameEn": "Extra sour cream", + "priceLarge": 400, + "priceSmall": 0 + }, + { + "name": "Pörkölt szaft", + "nameHu": "Pörkölt szaft", + "nameEn": "Stew gravy", + "priceLarge": 200, + "priceSmall": 0 + }, + { + "name": "Tartár mártás", + "nameHu": "Tartár mártás", + "nameEn": "Tartare sauce", + "priceLarge": 600, + "priceSmall": 0 + }, + { + "name": "Áfonya lekvár", + "nameHu": "Áfonya lekvár", + "nameEn": "Blueberry jam", + "priceLarge": 500, + "priceSmall": 0 + }, + { + "name": "Vanília öntet", + "nameHu": "Vanília öntet", + "nameEn": "Vanilla sauce", + "priceLarge": 400, + "priceSmall": 0 + }, + { + "name": "Plusz mártás (Pl: Töltött paprika töltött káposzta vadas marhaszelet...)", + "nameHu": "Plusz mártás (Pl: Töltött paprika töltött káposzta vadas marhaszelet...)", + "nameEn": "Extra sauce (e.g., Stuffed pepper, Stuffed cabbage, Hunter style beef...)", + "priceLarge": 400, + "priceSmall": 0 + }, + { + "name": "Műanyag doboz", + "nameHu": "Műanyag doboz", + "nameEn": "Plastic box", + "priceLarge": 100, + "priceSmall": 0 + }, + { + "name": "Műanyag villa kanál", + "nameHu": "Műanyag villa kanál", + "nameEn": "Plastic fork spoon", + "priceLarge": 10, + "priceSmall": 0 + }, + { + "name": "Szatyor", + "nameHu": "Szatyor", + "nameEn": "Bag", + "priceLarge": 30, + "priceSmall": 0 + } +] \ No newline at end of file diff --git a/ref.txt b/ref.txt new file mode 100755 index 0000000..8b247ff --- /dev/null +++ b/ref.txt @@ -0,0 +1,405 @@ +LEVESEK Egész/Fél +Babgulyás, 1200, 840 +Bakonyi betyárleves, 1200, 840 +Bányászgulyás, 1300, 910 +Bográcsgulyás, 1200, 840 +Brokkoli krémleves, 1000, 700 +Burgonya krémleves, 1000, 700 +Csípőssavanyú leves, 1000, 700 +Csont leves, 1000, 700 +Daragaluska leves, 1000, 700 +Fehérbab leves kolbásszal, 1200, 840 +Fejtett bableves kolbásszal, 1200, 840 +Fokhagyma krémleves, 1000, 700 +Frankfurti leves, 1200, 840 +Gombakrém leves, 1000, 700 +Gombaleves, 1000, 700 +Gulyásleves, 1200, 840 +Gyümölcsleves, 1200, 840 +Hagyma krémleves, 1000, 700 +Halászlé, 2000, 1400 +Hamis gulyásleves, 1000, 700 +Húsgaluska leves, 1200, 840 +Jókai bableves, 1200, 840 +Káposztás bab leves, 1200, 840 +Karalábé leves, 1000, 700 +Karfiolleves, 1000, 700 +Lebbencsleves, 1000, 700 +Lencseleves, 1200, 840 +Libaleves, 1200, 840 +Májgaluskaleves, 1200, 840 +Marhahús leves, 1200, 840 +Nyírségi gomba leves, 1200, 840 +Palócgulyás, 1200, 840 +Paradicsom leves, 1000, 700 +Sajtkrém leves, 1000, 700 +Sertésragu leves, 1200, 840 +Sütőtök krémleves, 1000, 700 +Szárnyas raguleves, 1200, 840 +Tarhonyaleves, 1000, 700 +Tárkonyos libazúza leves, 1300, 910 +Tarkabableves, 1000, 700 +Tárkonyos pulykaragu leves, 1200, 840 +Tárkonyos vadragu leves, 1300, 910 +Tejfölös erdei gombaleves, 1000, 700 +Tejfölös burgonya leves, 1000, 700 +Tojás leves, 1000, 700 +Tyúkhúsleves, 1200, 840 +Zellerkrémleves, 1000, 700 +Zöldbableves, 1000, 700 +Zöldborsóleves, 1000, 700 +Zöldséges burgonya leves, 1000, 700 +Zöldségleves, 1000, 700 + +FŐZELÉKEK Egész/Fél +Fehérbab főzelék, 1100, 770 +Kelkáposzta főzelék, 1100, 770 +Lencsefőzelék, 1100, 770 +Meggyszósz, 1100, 770 +Paradicsomos káposzta, 1100, 770 +Sárgaborsó főzelék, 1100, 770 +Sóskamártás, 1100, 770 +Spenót, 1100, 770 +Tarkabab főzelék, 1100, 770 +Tejfölös burgonya főzelék, 1100, 770 +Tökfőzelék, 1100, 770 +Zöldbabfőzelék, 1100, 770 +Zöldborsó főz., 1100, 770 + +KÉSZÉTELEK Egész/Fél +Alfredo fussili, 2000, 1400 +Baconos csirkemell saláta, 2600 +Bácskai rizses hús, 1800, 1260 +Bakony sertésszelet, 1700, 1190 +Bakonyi csirkemell, 1700, 1190 +Barackos csirkemell, 1800, 1260 +BBQs csirkeszárny, 10 dkg, 900 +Berni csirkemell, 1800, 1260 +Birkapörkölt, 2000, 1400 +Bolognai rakott tészta, 2000, 1400 +Bolognai spagetti, 2000, 1400 +Borjúpaprikás, 2000, 1400 +Borsos tokány, 2000, 1400 +Brassói aprópecsenye, 1700, 1190 +Brokkolis csirkés tészta, 2000, 1400 +Budapest szelet, 1700, 1190 +Budapest tokány, 1700, 1190 +Burgonya saláta (20 dkg), 800, 0 +Burgonyás csirkemell, 2000, 1400 +Cézár saláta, 2600, 0 +Chillis bab, 1900, 1330 +Cigánypecsenye, 1700, 1190 +Citromos csirkemell, 1700, 1190 +Cukkinisfetás csirkemell, 1800, 1260 +Cukkinisricottás tészta, 2000, 1400 +Currys csirkemell, 1700, 1190 +Császár csirkemell (10 dkg), 1100, 0 +Cserkészfalatok, 1700, 1190 +Csikós tokány, 1700, 1190 +Csirkemell Marcsi módra, 1800, 1260 +Csirkemell Gellért, 1800, 1260 +Csirkemell pörkölt, 1700, 1190 +Csirkemelles rakott tészta, 2000, 1400 +Csirkemelles tortilla, 2000, 0 +Csirkepörkölt, 1700, 1190 +Csirkerizottó, 1800, 1260 +Csirkésfetás farfalle, 2000, 1400 +Csőben sült brokkoli, 1300, 0 +Csőben sült karfiol, 1700, 1190 +Csülök Pékné, 2200, 1540 +Csülökpörkölt, 1700, 1190 +DélOlasz rakott tészta, 1900, 1330 +Dubary szelet, 1800, 1260 +Édessavanyú csirkemell, 1700, 1190 +Erdélyi marhatokány, 2000, 1400 +Erdészné kedvence, 1700, 1190 +Eszterházy marhatokány, 2000, 1400 +Fokhagymás medallion, 1800, 1260 +Főtt füstölt csülök (15 kgos), 7000, 0 +Francia rakott burgonya, 1400, 980 +Francia saláta (20 dkg), 800, 0 +Francia sertésborda, 1800, 1260 +Fussili primavera, 2000, 1400 +Fűszeres csirkemell falatok, 1800, 1260 +Gombás csirkemell, 1700, 1190 +Gombás máj (10 dkg), 800, 0 +Gombás szelet, 1700, 1190 +Gombássajtos tészta, 1600, 1120 +Grill zöldséges sajtos bulgur, 1600, 0 +Harcsapörkölt, 2000, 1400 +Hawai csirkemell, 1800, 1260 +Hawai saláta (20 dkg), 800, 0 +Hentes tokány, 1700, 1190 +Hétvezér tokány, 1700, 1190 +Hízott kacsamáj (10 dkg), 5000, 0 +Holstein szelet, 1700, 1190 +Hortobágyi húsos palacsinta, 1700, 1190 +Húsos lasagne, 2000, 0 +Húsos rakott burgonya, 1500, 1050 +Jóasszony tokány, 1700, 1190 +Kacsamáj rizottó, 1800, 1260 +Kakashere pörkölt, 1700, 1190 +Káposztás hús, 1600, 1120 +Karfiolos sertésszelet, 1700, 1190 +Kétsajtos rizottó, 1800, 1260 +Kocsonya, 1400, 0 +Körömpörkölt, 1600, 1120 +Kukorica saláta (20 dkg), 800, 0 +Lecsós virsli, 1700, 1190 +Libabelsőség pörkölt, 1700, 1190 +Libamell paprikás, 2600, 1400 +Libaszív pörkölt, 1700, 1190 +Libaszív rizottó, 1800, 1260 +Libaszív vetrece, 1700, 1190 +Libazúza rizottó, 1800, 1260 +Ludaskása, 1800, 1260 +Magyaros csirkemell, 2000, 1400 +Magyaróvári sertésszelet, 1800, 1260 +Majonézes káposzta saláta (20 dkg), 800, 0 +Majonézes tészta saláta (20 dkg), 800, 0 +Marhapörkölt, 2000, 1400 +Mexikói tokány, 1700, 1190 +Mézzel csurgatott sárgadinnye, 800, 0 +Milánói rakott tészta, 2000, 1400 +Milánói spagetti, 2000, 1400 +Mozzarellás bazsalikomos paradicsomos saláta, 900, 0 +Mozzarellás csirkemell, 1800, 1260 +Mozzarellás harcsafilé, 2000, 1400 +Orosz hússaláta (20 dkg), 900, 0 +Pacal pörkölt (10 dkg), 900, 0 +Paprikás burgonya, 1300, 910 +Párolt Marhaszelet, 1200, 600 +Pásztortarhonya, 2000, 1400 +Pirított csirke máj (10 dkg), 800, 0 +Pirított sertés máj (10 dkg), 800, 0 +Pulykapörkölt, 1700, 1190 +Rácz hús, 1800, 1260 +Rakott brokkoli, 1400, 980 +Rakott burgonya, 1500, 1050 +Rakott káposzta, 1500, 1050 +Rakott karfiol, 1500, 1050 +Rakott kelkáposzta, 1500, 1050 +Rakott zöldbab, 1500, 1050 +Rozmaringos marhasült, 2000, 1400 +Sajtos brokkoli saláta (20 dkg), 800, 0 +Savanyú vetrece, 1700, 1190 +Savoyard szelet, 1700, 1190 +Sertés pörkölt, 1700, 1190 +Sertés sült, 1700, 1190 +Sóletbab, 1900, 1330 +Sombrero szelet, 1800, 1260 +Sonkarizottó, 1800, 1260 +Sonkás kocka, 1900, 1330 +Spagetti Carbonara, 1900, 1330 +Spenótos paradicsomos lasagne, 2000, 0 +Spenótos tészta, 1600, 1120 +Szalontüdő, 1700, 1190 +Szarvas pörkölt, 2000, 1400 +Székelykáposzta, 1600, 1120 +Tarhonyás hús, 1800, 1260 +Tavaszi csirkemell, 1700, 1190 +Tejfölös kacsacomb darabok, 1800, 1260 +Tejfölösgombás pulykacomb, 1700, 1190 +Tejfölös csirkecomb, 1700, 1190 +Tejfölös csirketokány, 1700, 1190 +Tejfölös gombatokány, 1700, 1190 +Tejfölös gombap., 1700, 1190 +Tejfölös pulykacomb, 1700, 1190 +Tejfölös sertészelet, 1700, 1190 +Tejszínesgombás csirkemell, 1700, 1190 +Tejszínesgyümölcsös csirkemell, 1700, 1190 +Tejszínes rakott hal, 1600, 1120 +Tejszínes zöldborsós csirkemell, 1700, 1190 +Tejszíneskapros csirkemell, 1700, 1190 +Temesvári sertéstokány, 1700, 1190 +Tepsis zöld, 1100, 770 +Thai csirkemell, 1900, 1330 +Tócsni (sajt tejföl) 1 db, 1000, 0 +Tócsnis hús, 2000, 0 +Tojáspörkölt, 1000, 700 +Tonhalas par. cukkini, 1200, 0 +Tonhalas penne, 1900, 1330 +Töltött káposzta, 1800, 1260 +Töltött paprika, 1800, 1260 +Tutitotti tészta, 2000, 1400 +Tzatziki saláta (20 dkg), 800, 0 +Üres kocsonya, 1000, 0 +Vadas csirkemell, 1700, 1190 +Vadas libamell, 2600, 1820 +Vadas marhaszelet, 2000, 1400 +Vaddisznó pörkölt, 2000, 1400 +Váradi rakott burgonya, 1800, 1260 +Velős máj (10 dkg), 800, 0 +Vesevelő tojással, 1600, 1120 +Vörösbabos csirkemell, 1700, 1190 +Zöldborsós csirkemell, 1700, 1190 +Zöldborsós sertéstokány, 1700, 1190 +Zöldborsós szelet, 1700, 1190 +Zöldséges spagetti felfújt, 1500, 1050 +Zöldséges Lasagne, 2000, 0 +Zöldséges sült tészta, 1300, 910 +Zöldségesfetás tészta Saláta, 1600 +Zúza pörkölt (10 dkg), 900, 0 + +FRISSENSÜLTEK Egész/Fél +Ananásszalsonkával töltött csirkemell, 1900, 950 +Bacsa szelet, 2000, 1000 +Brokkolissajtos csirkemell, 1900, 950 +Egészben sült kacsa (fél kacsa), 2650 +Fasírozott 1 db, 700, 350 +Fűszeres steak csirkecomb (10 dkg), 1000 +Gombaropogós 1 db, 600 +Gombával töltött csirkemell, 1900, 950 +Grill camembert, 1700 +Grill csirkemell 1 db, 1100 +Ínyenc rántott szelet, 2000, 1000 +Ínyenc rántott sajt, 2000, 1000 +Juhtúróval töltött csirkemell, 1900, 950 +Kacsamájjal töltött csirkemell, 1900, 950 +Karamellizált körte 1 db, 500 +Kendermagos csirkemell, 1800, 900 +Kijevi csirkemell, 1900, 950 +Laci pecsenye (10 dkg), 1200 +Lecsós szelet, 1700, 1190 +Májjal töltött sertésszelet, 1900, 950 +Manduláskókuszos csirkemell, 1800, 900 +Natúr csirkemell, 1200, 600 +Natúr szelet, 1200, 600 +Nyitrai szelet, 2000, 1000 +Parasztos töltött szelet, 1900, 950 +Párizsi csirkemell, 1700, 850 +Pecsenye kacsamáj (10 dkg), 1000 +Rántott csirkecomb, 2000, 1000 +Rántott lazac (10 dkg 1 db), 1500 +Rántott brokkoli (10 dkg), 800 +Rántott camembert, 1900, 950 +Rántott cukkini (10 dkg), 800 +Rántott csirkeszárny (10 dkg), 900 +Rántott csirkemell, 1700, 850 +Rántott gomba (10 dkg), 800 +Rántott hagymakarika, 700, 350 +Rántott halrudak, 1400, 700 +Rántott harcsafilé (10 dkg), 850 +Rántott karfiol (10 dkg), 800 +Rántott máj, 1200, 600 +Rántott patiszon (10 dkg), 800 +Rántott sajt, 1800, 900 +Rántott szelet, 1700, 850 +Roston harcsa (10 dkg), 1200 +Rozmaringos kacsamáj (10 dkg), 1000 +Sajttalsonkával töltött csirkemell, 1900, 950 +Sajttalsonkával töltött palacsinta 1 db, 900 +Sajtropogós 1 db, 600 +Sajttal töltött hal 1 db, 1000 +Sörben sült csülök, 5500 +Stefánia vagdalt, 1400, 700 +Sült csirkecomb (10 dkg), 800 +Sült házi kolbász (10 dkg), 900 +Sült hekk (10 dkg), 800 +Sült hurka (10 dkg), 800 +Sült kacsacomb (10 dkg), 1700 +Sült libacomb (10 dkg), 2600 +Sült libamell filé (10 dkg), 2700 +Sült pisztráng (10 dkg), 1200 +Sült tök 1 db, 500 +Szezámmagos csirkemell, 1700, 850 +Szilvási csirkemell, 1900, 950 +Tojásropogós 1 db, 600 +Töltött csirkecomb 1 db, 1600 +Velővel töltött sertésszelet, 1900, 950 +Zöldségessajtos csirkemell, 1900, 950 +Zöldségropogós 1 db, 600 + +TÉSZTÁK Egész/Fél +Aranygaluska, 1200 ,0 +Csokikrémmel töltött fánk, 600, 0 +Csokis fánk, 600, 0 +Diós metélt, 1300, 910 +Erdei gyümölcsös gombóc, 1300, 910 +Fánk, 600, 0 +Grízes metélt, 1300, 910 +Gundel palacsinta, 700, 0 +Juhtúrós sztrapacska, 1800, 1260 +Káposztás kocka, 1300, 910 +Káposztás sztrapacska, 1500, 1050 +Krumplis tészta, 1300, 910 +Lekvárral töltött fánk, 600 +Máglyarakás, 1200, 0 +Mákos guba vaníliával, 1500, 1050 +Mákos metélt, 1300, 910 +Mákos nudli, 1300, 910 +Palacsinta, 500, 0 +Parasztos csusza, 1800, 1260 +Prézlis núdli, 1300, 910 +Rakott metélt, 1300, 910 +Rizsfelfújt, 1200, 0 +Sajtos tejfölös spagetti, 1300, 910 +Sárgabarackos gombóc vanília öntettel, 1500, 1050 +Savanyú káposztás sztrapacska, 1500, 1050 +Somlói, 1300, 0 +Szilvalekváros derelye, 1300, 910 +Szilvás gombóc, 1300, 910 +Szilvás töltött nudli, 1300, 910 +Tiramisu, 1200, 0 +Tojásos galuska, 1300, 910 +Túrógombóc tejfölös töltelékkel, 1300, 910 +Túrókrémes csusza, 1600, 1120 +Túrós csusza, 1500, 1050 +Túrós derelye, 1300, 910 +Túrós sztrapacska, 1500, 1050 +Túrósvaníliás palacsinta rántva, 850 + +KÖRETEK Egész/Fél adag +Aszalt szilvás párolt káposzta, 800 +Burgonya röszti, 800, 560 +Burgonyakrokett, 800, 560 +Burgonyapüré, 800, 560 +Fitness saláta, 2600 +Galuska, 600, 420 +Görög saláta, 1600, 0 +Grill zöldség, 1000, 0 +Hagymás tört burgonya, 800, 560 +Hasábburgonya, 800, 560 +Juhtúrós galuska, 900, 630 +Knédli, 700, 490 +Köret tészta, 600, 420 +Párolt káposzta, 800, 0 +Párolt rizs, 600, 420 +Petrezselymes burgonya, 600, 420 +Steak burgonya, 800, 560 +Sült burgonya, 800, 560 +Tarhonya, 600, 420 +Tükörtojás 1 db, 300 +Zöld köret, 800, 560 +Zöldséges rizs, 800, 560 +Zsemlegombóc, 600, 420 + +SAVANYÚSÁG Egész/Fél adag +Almapaprika, 600, 0 +Cékla, 600, 0 +Csalamádé, 600, 0 +Csemegeuborka, 600, 0 +Erős paprika, 600, 0 +Fejes saláta, 700, 0 +Friss saláta, 900, 0 +Káposzta saláta, 600, 0 +Kovászos uborka, 800, 0 +Paradicsom saláta, 800, 0 +Savanyú káposzta, 600, 0 +Uborka saláta, 800, 0 + +EGYÉB: +Kenyér, 150, 0 +Ketchup, 500, 0 +Mustár, 500, 0 +Plusz lekvár, 400, 0 +Plusz sajt, 500, 0 +Plusz tejföl, 400, 0 +Pörkölt szaft, 200, 0 +Tartár mártás, 600, 0 +Áfonya lekvár, 500, 0 +Vanília öntet, 400, 0 +Plusz mártás (Pl: Töltött paprika töltött káposzta vadas marhaszelet...), 400, 0 +Műanyag doboz, 100, 0 +Műanyag villa kanál, 10, 0 +Szatyor, 30, 0 diff --git a/tests/unit/categories/list.spec.ts b/tests/unit/categories/list.spec.ts new file mode 100644 index 0000000..762f4e8 --- /dev/null +++ b/tests/unit/categories/list.spec.ts @@ -0,0 +1,9 @@ +import { test } from '@japa/runner' + +test.group('Categories', () => { + test('get all', async ({ assert, client }) => { + const response = await client.get('api/categories') + assert.equal(response.status(), 200) + assert.isArray(response.body()) + }) +})