""" config/schema.py — schema & defaults for chat configuration. """ from dataclasses import dataclass, field from typing import Optional @dataclass class DatabaseConfig: engine: str = "sqlite" # "sqlite" | "mariadb" sqlite_path: str = "chat.db" mariadb_host: str = "localhost" mariadb_port: int = 3306 mariadb_user: str = "chat" mariadb_password: str = "chat" mariadb_database: str = "chat" @dataclass class SecurityConfig: secret: str = "default_secret_change_me" salt: str = "default_salt_change_me" admin_token: str = "" rate_limit: int = 5 rate_window: int = 10 max_message_length: int = 2000 @dataclass class ServerConfig: host: str = "0.0.0.0" port: int = 8080 debug: bool = False @dataclass class TenorConfig: api_key: str = "" @dataclass class AppConfig: db: DatabaseConfig = field(default_factory=DatabaseConfig) security: SecurityConfig = field(default_factory=SecurityConfig) server: ServerConfig = field(default_factory=ServerConfig) tenor: TenorConfig = field(default_factory=TenorConfig)