dingdanquanliucheng/backend/app/repositories/config_repository.py

24 lines
866 B
Python

from sqlalchemy import select
from sqlalchemy.orm import Session
from backend.app.models.system import SystemConfig
class ConfigRepository:
def get_by_key(self, session: Session, config_key: str) -> SystemConfig | None:
stmt = select(SystemConfig).where(SystemConfig.config_key == config_key)
return session.execute(stmt).scalar_one_or_none()
def create_config(self, session: Session, payload: dict) -> SystemConfig:
config = SystemConfig(**payload)
session.add(config)
session.flush()
return config
def update_config(self, config: SystemConfig, payload: dict) -> SystemConfig:
config.config_value = payload["config_value"]
config.config_name = payload["config_name"]
config.remark = payload.get("remark")
config.status = payload.get("status", 1)
return config