from motor.motor_asyncio import AsyncIOMotorClient from repos.assets_repo import AssetsRepo from repos.char_repo import CharacterRepo from repos.generation_repo import GenerationRepo from repos.user_repo import UsersRepo from repos.albums_repo import AlbumsRepo from typing import Optional from adapters.s3_adapter import S3Adapter class DAO: def __init__(self, client: AsyncIOMotorClient, s3_adapter: Optional[S3Adapter] = None, db_name="bot_db"): self.chars = CharacterRepo(client, db_name) self.assets = AssetsRepo(client, s3_adapter, db_name) self.generations = GenerationRepo(client, db_name) self.albums = AlbumsRepo(client, db_name)