### 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.