刘涛 8c0a5f489d Initial commit: hulai admin API backend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 22:01:23 +08:00

40 行
1.2 KiB
Python

from __future__ import annotations
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.database import get_db
from app.auth import get_current_user
from app.models.courses import CoursesConfig
from app.schemas.courses import CoursesConfigSchema, CoursesConfigResponse
router = APIRouter(
prefix="/api/courses",
tags=["研学课程"],
dependencies=[Depends(get_current_user)],
)
def _get_or_create(db: Session) -> CoursesConfig:
config = db.query(CoursesConfig).first()
if not config:
config = CoursesConfig(modules=[], age_groups=[], faqs=[])
db.add(config)
db.commit()
return config
@router.get("/", response_model=CoursesConfigResponse)
def get_config(db: Session = Depends(get_db)):
return CoursesConfigResponse.model_validate(_get_or_create(db))
@router.put("/", response_model=CoursesConfigResponse)
def update_config(req: CoursesConfigSchema, db: Session = Depends(get_db)):
config = _get_or_create(db)
config.modules = req.modules
config.age_groups = req.age_groups
config.faqs = req.faqs
db.commit()
db.refresh(config)
return CoursesConfigResponse.model_validate(config)