"""Snowflake Base Model.""" from sqlalchemy.engine import Result from sqlalchemy.orm import Query from moneyhub.connectors.snowflake import Base from moneyhub.connectors.snowflake import db class BaseModel(Base): """Snowflake Base model.""" def __init__(self, *args, **kwargs): """Initialize model with default values.""" super().__init__(*args, **kwargs) __abstract__ = True @staticmethod def execute_and_commit(query: Query) -> Result: """Execute the query and commit the session, returning the result of the query. Args: query (Query): Query to execute Returns: Result: Result of the query """ result = db.session.execute(query) db.session.commit() return result def to_dict(self) -> dict: """Convert the object into a dictionary. Returns: dict: The contents as a dictionary. """ the_dict = dict(self.__dict__) the_dict.pop('_sa_instance_state', None) return the_dict