43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
"""
|
|
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)
|