24 lines
866 B
Python
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
|