import pathlib import sqlmodel import sqlalchemy import sqlalchemy.engine.base from .users_loader import users_loader from .users_collection import users_collection from .product_app import product_app from .users_app import users_app class app_resources: def __init__(self, config: object) -> None: self.__config = config self.__database = sqlmodel.create_engine(self.config.database_uri) self.__users = users_loader(self.config.users_path).collection sqlmodel.SQLModel.metadata.create_all(self.database) self.__product_app = product_app(self.database, self.users) self.__users_app = users_app(self.users) @property def users_app(self) -> users_app: return self.__users_app @property def product_app(self) -> product_app: return self.__product_app @property def database(self) -> sqlalchemy.engine.base.Engine: return self.__database @property def users(self) -> users_collection: return self.__users @property def config(self) -> object: return self.__config