feat(local_backend): reservations, print analytics, workday summary, zone-PIN management

- New reservations module: model, schema, router (CRUD + status updates + upcoming alerts)
  and background task for auto-expiring stale reservations
- Reports: print_products, print_categories, print_tables analytics endpoints
  plus meta_products and business_day_summary for workday close/view flow
- printer_service: configurable font sizes/weights, donut/bar chart print layout helpers,
  analytics print blocks per printer
- tables/schemas: surfaced color, zone, and other new fields on Table, Product, User, Printer
- demo_seed.py for quick dev DB population; wipe_database.py utility

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 20:25:22 +03:00
parent aed71a18d8
commit 79bd3b0f41
25 changed files with 2017 additions and 146 deletions

View File

@@ -257,6 +257,7 @@ class PreferenceSetOut(BaseModel):
class ProductBase(BaseModel):
name: str
description: Optional[str] = None
category_id: Optional[int] = None
base_price: float
is_available: bool = True
@@ -269,7 +270,7 @@ class ProductBase(BaseModel):
digital_name: Optional[str] = None
digital_description: Optional[str] = None
digital_price: Optional[float] = None
digital_discount: float = 0.0
digital_discount: Optional[float] = None
digital_image_url: Optional[str] = None
@@ -282,6 +283,7 @@ class ProductCreate(ProductBase):
class ProductUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
category_id: Optional[int] = None
base_price: Optional[float] = None
is_available: Optional[bool] = None