from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles import os from routers import auth_router, chargers, reports, repairs, costs, improvements, accounts, settings, export app = FastAPI(title="EV 충전기 AS 관리 시스템", version="1.0.0") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # 라우터 등록 app.include_router(auth_router.router) app.include_router(chargers.router) app.include_router(reports.router) app.include_router(repairs.router) app.include_router(costs.router) app.include_router(improvements.router) app.include_router(accounts.router) app.include_router(settings.router) app.include_router(export.router) @app.get("/api/health") def health(): return {"status": "ok"} @app.get("/api/stats") def stats(db=None): from database import SessionLocal from sqlalchemy import func from models import Report, Repair, RepairCost, Improvement db = SessionLocal() try: total = db.query(Report).count() pending = db.query(Report).filter(Report.status.in_(["pending","pending_approval"])).count() in_prog = db.query(Report).filter(Report.status == "in_progress").count() done = db.query(Report).filter(Report.status == "done").count() cost_pend = db.query(RepairCost).filter(RepairCost.cost_status == "pending").count() imp_open = db.query(Improvement).filter( Improvement.status.in_(["registered","reviewing","developing"])).count() return { "total": total, "pending": pending, "in_progress": in_prog, "done": done, "cost_pending": cost_pend, "improvement_open": imp_open, } finally: db.close()