""" Configuration module for FactsDB service Loads configuration from environment variables """ import os from dataclasses import dataclass from typing import Optional @dataclass class DatabaseConfig: """Database configuration""" path: str = "./facts.db" @dataclass class AIEndpointConfig: """AI endpoint configuration""" url: str = "http://example.com:4000/v1/chat/completions" auth_token: str = "111" @dataclass class FTPServerConfig: """FTP server configuration""" host: str = "0.0.0.0" port: int = 2121 username: str = "factsdb" password: str = "factsdb" @dataclass class SchedulerConfig: """Scheduler configuration""" interval_minutes: int = 10 class Config: """Main configuration class""" def __init__(self): self.database = DatabaseConfig( path=os.getenv('DATABASE_PATH', 'facts.db') ) self.ai_endpoint = AIEndpointConfig( url=os.getenv('AI_ENDPOINT_URL', 'http://example.com:4000/v1/chat/completions'), auth_token=os.getenv('AI_ENDPOINT_TOKEN', '111') ) self.ftp_server = FTPServerConfig( host=os.getenv('FTP_HOST', '0.0.0.0'), port=int(os.getenv('FTP_PORT', '2121')), username=os.getenv('FTP_USERNAME', 'factsdb'), password=os.getenv('FTP_PASSWORD', 'factsdb') ) self.scheduler = SchedulerConfig( interval_minutes=int(os.getenv('SCHEDULER_INTERVAL', '10')) )