from datetime import date from fastapi import APIRouter, Depends from sqlmodel import Session, select from app.database import get_session from app.models.settings import UserSettings, LunarCalendarEntry router = APIRouter(tags=["réglages"]) @router.get("/settings") def get_settings(session: Session = Depends(get_session)): rows = session.exec(select(UserSettings)).all() return {r.cle: r.valeur for r in rows} @router.put("/settings") def update_settings(data: dict, session: Session = Depends(get_session)): for cle, valeur in data.items(): row = session.exec(select(UserSettings).where(UserSettings.cle == cle)).first() if row: row.valeur = str(valeur) else: row = UserSettings(cle=cle, valeur=str(valeur)) session.add(row) session.commit() return {"ok": True} @router.get("/lunar") def get_lunar(month: str, session: Session = Depends(get_session)): year, m = map(int, month.split("-")) first = date(year, m, 1) last_m, last_y = (m + 1, year) if m < 12 else (1, year + 1) last = date(last_y, last_m, 1) return session.exec( select(LunarCalendarEntry) .where(LunarCalendarEntry.jour >= first) .where(LunarCalendarEntry.jour < last) ).all()