Files
paprika-api/MODEL_DESCRIPTION.md
T
2026-03-29 11:18:31 +02:00

55 lines
2.4 KiB
Markdown

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