import uvicorn from fastapi import FastAPI from starlette.middleware.sessions import SessionMiddleware from .core.config import settings from .db.base_class import Base from .db.session import engine from .routers import ( account, account_types, attendance, attendance_report, attendance_types, batch, cost_centre, credit_salary, db_image, db_integrity, employee, employee_attendance, employee_benefit, fingerprint, incentive, issue, issue_grid, journal, lock_information, login, maintenance, product, product_group, purchase, purchase_return, rebase, recipe, reset_stock, voucher, ) from .routers.auth import client, role, user from .routers.reports import ( balance_sheet, cash_flow, closing_stock, daybook, ledger, net_transactions, product_ledger, profit_loss, purchase_entries, purchases, raw_material_cost, reconcile, stock_movement, trial_balance, unposted, ) Base.metadata.create_all(bind=engine) app = FastAPI() app.add_middleware(SessionMiddleware, secret_key=settings.MIDDLEWARE_SECRET_KEY) app.include_router(db_image.router, prefix="/db-image", tags=["db-image"]) app.include_router(login.router, tags=["login"]) app.include_router(account.router, prefix="/api/accounts", tags=["accounts"]) app.include_router(account_types.router, prefix="/api/account-types", tags=["accounts"]) app.include_router(attendance.router, prefix="/api/attendance", tags=["attendance"]) app.include_router( attendance_types.router, prefix="/api/attendance-types", tags=["attendance"] ) app.include_router( employee_attendance.router, prefix="/api/employee-attendance", tags=["attendance"] ) app.include_router( employee_attendance.router, prefix="/api/employee-attendance", tags=["attendance"] ) app.include_router( attendance_report.router, prefix="/attendance-report", tags=["attendance"] ) app.include_router( cost_centre.router, prefix="/api/cost-centres", tags=["cost-centres"] ) app.include_router(employee.router, prefix="/api/employees", tags=["employees"]) app.include_router(fingerprint.router, prefix="/api/fingerprint", tags=["employees"]) app.include_router(product.router, prefix="/api/products", tags=["products"]) app.include_router( product_group.router, prefix="/api/product-groups", tags=["products"] ) app.include_router(recipe.router, prefix="/api/recipes", tags=["products"]) 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(ledger.router, prefix="/api/ledger", tags=["reports"]) app.include_router(balance_sheet.router, prefix="/api/balance-sheet", tags=["reports"]) app.include_router(profit_loss.router, prefix="/api/profit-loss", tags=["reports"]) app.include_router(closing_stock.router, prefix="/api/closing-stock", tags=["reports"]) app.include_router(cash_flow.router, prefix="/api/cash-flow", tags=["reports"]) app.include_router(daybook.router, prefix="/api/daybook", tags=["reports"]) app.include_router( net_transactions.router, prefix="/api/net-transactions", tags=["reports"] ) app.include_router( product_ledger.router, prefix="/api/product-ledger", tags=["reports"] ) app.include_router( purchase_entries.router, prefix="/api/purchase-entries", tags=["reports"] ) app.include_router(purchases.router, prefix="/api/purchases", tags=["reports"]) app.include_router( raw_material_cost.router, prefix="/api/raw-material-cost", tags=["reports"] ) app.include_router(reconcile.router, prefix="/api/reconcile", tags=["reports"]) app.include_router( stock_movement.router, prefix="/api/stock-movement", tags=["reports"] ) app.include_router(trial_balance.router, prefix="/api/trial-balance", tags=["reports"]) app.include_router(unposted.router, prefix="/api/unposted", tags=["reports"]) 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)