Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11)
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>
This commit is contained in:
commit
8d688b459d
10003 changed files with 1928395 additions and 0 deletions
44
backend/models/__init__.py
Normal file
44
backend/models/__init__.py
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
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",
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue