from sqlalchemy import select from sqlalchemy.orm import Session from app.models.entities import CallbackLog, RedeemCode, SystemConfig class SystemRepository: def __init__(self, db: Session) -> None: self.db = db def list_configs(self): return self.db.query(SystemConfig).order_by(SystemConfig.group_name.asc(), SystemConfig.id.asc()) def get_config(self, config_key: str) -> SystemConfig | None: return self.db.scalar(select(SystemConfig).where(SystemConfig.config_key == config_key)) def list_redeem_codes(self): return self.db.query(RedeemCode).order_by(RedeemCode.id.desc()) def get_redeem_code(self, redeem_id: int) -> RedeemCode | None: return self.db.scalar(select(RedeemCode).where(RedeemCode.id == redeem_id)) def list_callback_logs(self): return self.db.query(CallbackLog).order_by(CallbackLog.id.desc())