import uvicorn from fastapi import FastAPI from starlette.middleware.sessions import SessionMiddleware from .routers import ( guest_book, menu_category, modifier, modifier_category, printer, product, login, sale_category, section, section_printer, table, tax, ) from .routers.auth import client, user, role from .routers.reports import ( beer_consumption_report, bill_settlement_report, cashier_report, discount_report, product_sale_report, sale_report, tax_report ) from .routers.voucher import show, save, update, receive_payment, void, merge_move, split, change from .db.base_class import Base from .core.config import settings from .db.session import engine Base.metadata.create_all(bind=engine) app = FastAPI() app.add_middleware(SessionMiddleware, secret_key=settings.MIDDLEWARE_SECRET_KEY) app.include_router(login.router, tags=["login"]) app.include_router(client.router, prefix="/api/clients", tags=["clients"]) app.include_router(role.router, prefix="/api/roles", tags=["users"]) app.include_router(user.router, prefix="/api/users", tags=["users"]) app.include_router(modifier.router, prefix="/api/modifiers", tags=["modifiers"]) app.include_router(modifier_category.router, prefix="/api/modifier-categories", tags=["modifiers"]) app.include_router(printer.router, prefix="/api/printers", tags=["printers"]) app.include_router(menu_category.router, prefix="/api/menu-categories", tags=["products"]) app.include_router(product.router, prefix="/api/products", tags=["products"]) app.include_router(sale_category.router, prefix="/api/sale-categories", tags=["products"]) app.include_router(section.router, prefix="/api/sections", tags=["sections"]) app.include_router(section_printer.router, prefix="/api/section-printers", tags=["section-printers"]) app.include_router(tax.router, prefix="/api/taxes", tags=["taxes"]) app.include_router(table.router, prefix="/api/tables", tags=["tables"]) app.include_router(beer_consumption_report.router, prefix="/api/beer-consumption-report", tags=["reports"]) app.include_router(bill_settlement_report.router, prefix="/api/bill-settlement-report", tags=["reports"]) app.include_router(cashier_report.router, prefix="/api/cashier-report", tags=["reports"]) app.include_router(discount_report.router, prefix="/api/discount-report", tags=["reports"]) app.include_router(product_sale_report.router, prefix="/api/product-sale-report", tags=["reports"]) app.include_router(sale_report.router, prefix="/api/sale-report", tags=["reports"]) app.include_router(tax_report.router, prefix="/api/tax-report", tags=["reports"]) app.include_router(guest_book.router, prefix="/api/guest-book", tags=["guest-book"]) app.include_router(show.router, prefix="/api/voucher", tags=["voucher"]) app.include_router(save.router, prefix="/api/voucher", tags=["voucher"]) app.include_router(update.router, prefix="/api/voucher", tags=["voucher"]) app.include_router(receive_payment.router, prefix="/api/voucher", tags=["voucher"]) app.include_router(void.router, prefix="/api/voucher", tags=["voucher"]) app.include_router(merge_move.router, prefix="/api", tags=["voucher"]) app.include_router(split.router, prefix="/api", tags=["voucher"]) app.include_router(change.router, prefix="/api/voucher", tags=["voucher"]) # app.include_router(issue_grid.router, prefix="/api/issue-grid", tags=["vouchers"]) # app.include_router(batch.router, prefix="/api/batch", tags=["vouchers"]) # app.include_router(journal.router, prefix="/api/journal", tags=["vouchers"]) # app.include_router(journal.router, prefix="/api/payment", tags=["vouchers"]) # app.include_router(journal.router, prefix="/api/receipt", tags=["vouchers"]) # app.include_router(purchase.router, prefix="/api/purchase", tags=["vouchers"]) # app.include_router(purchase_return.router, prefix="/api/purchase-return", tags=["vouchers"]) # app.include_router(issue.router, prefix="/api/issue", tags=["vouchers"]) # app.include_router(employee_benefit.router, prefix="/api/employee-benefit", tags=["vouchers"]) # app.include_router(incentive.router, prefix="/api/incentive", tags=["vouchers"]) # app.include_router(credit_salary.router, prefix="/api/credit-salary", tags=["vouchers"]) # app.include_router(voucher.router, prefix="/api", tags=["vouchers"]) # app.include_router(lock_information.router, prefix="/api/lock-information", tags=["settings"]) # app.include_router(maintenance.router, prefix="/api/maintenance", tags=["settings"]) # app.include_router(db_integrity.router, prefix="/api/db-integrity", tags=["management"]) # app.include_router(reset_stock.router, prefix="/api/reset-stock", tags=["management"]) # app.include_router(rebase.router, prefix="/api/rebase", tags=["management"]) def init(): uvicorn.run(app, host=settings.HOST, port=settings.PORT)