from fastapi import APIRouter

from app.api.v1 import (
    analytics,
    branches,
    bundle_definitions,
    catalog,
    configurations,
    connectors,
    dining_areas,
    events,
    feature_toggles,
    kitchen,
    menus,
    menu_categories,
    menu_items,
    permissions,
    pos_lite,
    pos_pro,
    qr,
    roles,
    settings,
    table_service,
    tables,
    tenant_bundles,
    venues,
)

api_router = APIRouter()
api_router.include_router(venues.router, prefix="/venues", tags=["venues"])
api_router.include_router(branches.router, prefix="/branches", tags=["branches"])
api_router.include_router(dining_areas.router, prefix="/dining-areas", tags=["dining-areas"])
api_router.include_router(tables.router, prefix="/tables", tags=["tables"])
api_router.include_router(menus.router, prefix="/menus", tags=["menus"])
api_router.include_router(menu_categories.router, prefix="/menu-categories", tags=["menu-categories"])
api_router.include_router(menu_items.router, prefix="/menu-items", tags=["menu-items"])
api_router.include_router(catalog.allergens_router, prefix="/allergens", tags=["allergens"])
api_router.include_router(catalog.modifier_groups_router, prefix="/modifier-groups", tags=["modifier-groups"])
api_router.include_router(catalog.modifier_options_router, prefix="/modifier-options", tags=["modifier-options"])
api_router.include_router(catalog.menu_item_modifiers_router, prefix="/menu-item-modifiers", tags=["menu-item-modifiers"])
api_router.include_router(catalog.menu_item_allergens_router, prefix="/menu-item-allergens", tags=["menu-item-allergens"])
api_router.include_router(catalog.availability_windows_router, prefix="/availability-windows", tags=["availability-windows"])
api_router.include_router(catalog.menu_media_refs_router, prefix="/menu-media-refs", tags=["menu-media-refs"])
api_router.include_router(catalog.menu_localizations_router, prefix="/menu-localizations", tags=["menu-localizations"])
api_router.include_router(qr.qr_codes_router, prefix="/qr-codes", tags=["qr-codes"])
api_router.include_router(qr.qr_menu_sessions_router, prefix="/qr-menu-sessions", tags=["qr-menu-sessions"])
api_router.include_router(qr.qr_ordering_sessions_router, prefix="/qr-ordering-sessions", tags=["qr-ordering-sessions"])
api_router.include_router(qr.carts_router, prefix="/carts", tags=["carts"])
api_router.include_router(qr.cart_lines_router, prefix="/cart-lines", tags=["cart-lines"])
api_router.include_router(table_service.reservations_router, prefix="/reservations", tags=["reservations"])
api_router.include_router(table_service.table_assignments_router, prefix="/table-assignments", tags=["table-assignments"])
api_router.include_router(table_service.service_requests_router, prefix="/service-requests", tags=["service-requests"])
api_router.include_router(table_service.waitlist_router, prefix="/waitlist", tags=["waitlist"])
api_router.include_router(pos_lite.pos_registers_router, prefix="/pos-registers", tags=["pos-registers"])
api_router.include_router(pos_lite.pos_shifts_router, prefix="/pos-shifts", tags=["pos-shifts"])
api_router.include_router(pos_lite.pos_tickets_router, prefix="/pos-tickets", tags=["pos-tickets"])
api_router.include_router(pos_lite.pos_ticket_lines_router, prefix="/pos-ticket-lines", tags=["pos-ticket-lines"])
api_router.include_router(pos_pro.pos_payments_router, prefix="/pos-payments", tags=["pos-payments"])
api_router.include_router(pos_pro.pos_discounts_router, prefix="/pos-discounts", tags=["pos-discounts"])
api_router.include_router(pos_pro.pos_tax_lines_router, prefix="/pos-tax-lines", tags=["pos-tax-lines"])
api_router.include_router(pos_pro.pos_floor_plans_router, prefix="/pos-floor-plans", tags=["pos-floor-plans"])
api_router.include_router(pos_pro.pos_stations_router, prefix="/pos-stations", tags=["pos-stations"])
api_router.include_router(kitchen.kitchen_stations_router, prefix="/kitchen-stations", tags=["kitchen-stations"])
api_router.include_router(kitchen.kitchen_tickets_router, prefix="/kitchen-tickets", tags=["kitchen-tickets"])
api_router.include_router(kitchen.kitchen_ticket_items_router, prefix="/kitchen-ticket-items", tags=["kitchen-ticket-items"])
api_router.include_router(connectors.connector_registrations_router, prefix="/connector-registrations", tags=["connector-registrations"])
api_router.include_router(connectors.connector_dispatches_router, prefix="/connector-dispatches", tags=["connector-dispatches"])
api_router.include_router(analytics.analytics_reports_router, prefix="/analytics-reports", tags=["analytics-reports"])
api_router.include_router(analytics.analytics_snapshots_router, prefix="/analytics-snapshots", tags=["analytics-snapshots"])
api_router.include_router(bundle_definitions.router, prefix="/bundle-definitions", tags=["bundle-definitions"])
api_router.include_router(tenant_bundles.router, prefix="/tenant-bundles", tags=["tenant-bundles"])
api_router.include_router(feature_toggles.router, prefix="/feature-toggles", tags=["feature-toggles"])
api_router.include_router(roles.router, prefix="/roles", tags=["roles"])
api_router.include_router(permissions.router, prefix="/permissions", tags=["permissions"])
api_router.include_router(configurations.router, prefix="/configurations", tags=["configurations"])
api_router.include_router(events.router, prefix="/events", tags=["events"])
api_router.include_router(settings.router, prefix="/settings", tags=["settings"])
