import redis from aiogram.fsm.storage.base import BaseStorage from .enums import StorageTypeEnum from .settings import StorageSettings def get_telegram_bot_fsm_storage(settings: StorageSettings) -> BaseStorage: match settings.type: case StorageTypeEnum.MEMORY.value: return MemoryStorage() case StorageTypeEnum.REDIS.value: redis_client = redis.Redis( host=settings.host, port=settings.port, db=settings.database, ) return RedisStorage(redis=redis_client) case _: raise ValueError(f"Unsupported telegram bot storage type: {settings.type}")