Files
solaris-guest-bot/src/utils/db/models/config.py

36 lines
894 B
Python

from beanie import Document
from pydantic import BaseModel, Field
class BotConfig(BaseModel):
admins: list[int] = []
chats_whitelist: list[int] = []
class GeminiModelsConfig(BaseModel):
respond_model: str = "gemini-2.5-flash"
message_review_model: str = "gemini-2.5-flash-lite-preview-06-17"
tts_model: str = "gemini-2.5-flash-preview-tts"
class DynamicConfigBase(BaseModel):
bot: BotConfig = Field(default_factory=BotConfig)
models: GeminiModelsConfig = Field(default_factory=GeminiModelsConfig)
class DynamicConfig(DynamicConfigBase, Document):
class Settings:
name = "config"
async def save(self): # noqa
await super().save() # noqa
@classmethod
async def get_or_create(cls):
config = await cls.find_one()
if not config:
config = cls()
await config.save()
return config