Files
ev-charger-as/backend/main.py
2026-04-18 06:18:58 +09:00

54 lines
1.8 KiB
Python

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()