from sqlmodel import inspect from app.database import ( add_to_database, delete_from_database_where, get_from_database, get_from_database_where_id, update_database_where, ) from app.models.service import Service def get_all(): return get_from_database(Service) def get_by_id(service_id: int): return get_from_database_where_id(Service, service_id) def create(service: Service): add_to_database(service) return service def update( service_id: int, update_attribute: str, new_value: int | str | None, ): if update_attribute not in inspect(Service).attrs: raise ValueError(f"Invalid attribute: {update_attribute}") attribute = getattr(Service, update_attribute) return update_database_where( Service, Service.id, # type: ignore (Type correct on runtime) service_id, attribute, new_value, ) def delete(service_id: int): return delete_from_database_where( Service, Service.id, # type: ignore (Type correct on runtime) service_id, )