Initial certificate system

This commit is contained in:
nelso
2026-06-06 19:32:24 +08:00
commit ce4ed6213b
105 changed files with 9133 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.api.deps import require_roles
from app.db.session import get_db
from app.models import AdminUser, Certificate, ImportBatch, Learner
router = APIRouter()
@router.get("/summary")
def get_summary(
db: Session = Depends(get_db),
_: AdminUser = Depends(require_roles("system_admin", "certificate_admin", "readonly")),
) -> dict[str, int]:
return {
"learner_count": db.query(Learner).count(),
"certificate_count": db.query(Certificate).count(),
"valid_certificate_count": db.query(Certificate).filter(Certificate.status == "valid").count(),
"voided_certificate_count": db.query(Certificate).filter(Certificate.status == "voided").count(),
"recent_import_count": db.query(ImportBatch).count(),
}