FastAPI backend (Python 3.11, MSSQL ODBC for SambaPOS, Azure DI OCR),
kitchen_db on central PG. React/TS/Vite frontend with navy sidebar layout.
Backend: auth.py (APP_SLUG=kitchen, SimpleNamespace — archive routes use
.kitchen_id/.is_admin without modification), main.py (51 migrations, scheduler,
internal router for KDS bookings feed), api/internal.py, full archive API
(31 routers: invoices, recipes, menus, sambapos, resos, newbook, disputes,
purchase_orders, etc.), models, migrations, OCR pipeline.
kitchen_id pinned to 1 (B1 — single hotel).
Frontend: AuthGate (app=kitchen, token shim for archive compat — B5b pending),
Layout (navy sidebar, 6 sections, Lucide icons, teal --app-primary),
App.tsx (Outlet pattern, UploadApp outside Layout), index.css (full :root block).
strict: false — archive components have type issues; build clean.
Note: 45 archive components call fetch('/api/...') without /kitchen/ prefix
(B5b). Runtime 404s; deferred until after initial testing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
2.2 KiB
Python
44 lines
2.2 KiB
Python
from .user import User, Kitchen
|
|
from .invoice import Invoice
|
|
from .supplier import Supplier
|
|
from .gp import RevenueEntry, GPPeriod
|
|
from .settings import KitchenSettings
|
|
from .line_item import LineItem
|
|
from .field_mapping import FieldMapping
|
|
from .product_definition import ProductDefinition
|
|
from .newbook import NewbookGLAccount, NewbookDailyRevenue, NewbookDailyOccupancy, NewbookSyncLog
|
|
from .resos import ResosBooking, ResosDailyStats, ResosOpeningHour, ResosSyncLog
|
|
from .backup import BackupHistory
|
|
from .acknowledged_price import AcknowledgedPrice
|
|
from .dispute import (
|
|
InvoiceDispute, DisputeLineItem, DisputeAttachment, DisputeActivity, CreditNote,
|
|
DisputeType, DisputeStatus, DisputePriority
|
|
)
|
|
from .purchase_order import PurchaseOrder, PurchaseOrderLineItem
|
|
from .ingredient import Ingredient, IngredientCategory, IngredientSource, IngredientFlag
|
|
from .food_flag import FoodFlagCategory, FoodFlag, LineItemFlag, RecipeFlag, RecipeFlagOverride
|
|
from .recipe import (
|
|
Recipe, MenuSection, RecipeIngredient, RecipeSubRecipe,
|
|
RecipeStep, RecipeImage, RecipeChangeLog, RecipeCostSnapshot,
|
|
RecipeTextFlagDismissal,
|
|
)
|
|
from .menu import Menu, MenuDivision, MenuItem
|
|
from .event_order import EventOrder, EventOrderItem
|
|
|
|
__all__ = [
|
|
"User", "Kitchen", "Invoice", "Supplier", "RevenueEntry", "GPPeriod",
|
|
"KitchenSettings", "LineItem", "FieldMapping", "ProductDefinition",
|
|
"NewbookGLAccount", "NewbookDailyRevenue", "NewbookDailyOccupancy", "NewbookSyncLog",
|
|
"ResosBooking", "ResosDailyStats", "ResosOpeningHour", "ResosSyncLog",
|
|
"BackupHistory", "AcknowledgedPrice",
|
|
"InvoiceDispute", "DisputeLineItem", "DisputeAttachment", "DisputeActivity", "CreditNote",
|
|
"DisputeType", "DisputeStatus", "DisputePriority",
|
|
"PurchaseOrder", "PurchaseOrderLineItem",
|
|
"Ingredient", "IngredientCategory", "IngredientSource", "IngredientFlag",
|
|
"FoodFlagCategory", "FoodFlag", "LineItemFlag", "RecipeFlag", "RecipeFlagOverride",
|
|
"Recipe", "MenuSection", "RecipeIngredient", "RecipeSubRecipe",
|
|
"RecipeStep", "RecipeImage", "RecipeChangeLog", "RecipeCostSnapshot",
|
|
"RecipeTextFlagDismissal",
|
|
"Menu", "MenuDivision", "MenuItem",
|
|
"EventOrder", "EventOrderItem",
|
|
]
|