"""Environment configuration derived from environment variables."""

from functools import lru_cache
from pydantic_settings import BaseSettings, SettingsConfigDict

class Settings(BaseSettings):
    """Application settings."""

    service_name: str = "avaaz-backend" # Used as a functional ID
    environment: str = "development"

    title: str = "Avaaz Language Tutoring API"
    description: str ="""
        # Avaaz Language Tutoring API

        This API powers the **avaaz.ai** mobile and web applications, providing the robust backend services for our AI-driven oral language skills tutor. The platform is specifically engineered to help students achieve oral proficiency using adaptive, conversational AI agents.

        ## Key Services Provided:
        *   **Conversational AI Engine:** Facilitates ultra-low-latency speech-to-speech interaction and provides instant corrective feedback (grammar, pronunciation, fluency).
        *   **Curriculum Management:** Delivers structured, CEFR aligned lessons and scenarios focused on real-life immigrant contexts (healthcare, workplace, school).
        *   **Assessment & Gamification:** Manages progress tracking, mock oral exam simulations, performance summaries, and motivational mechanics (streaks, badges).
        *   **Cross-Platform Sync:** Ensures seamless learning continuity and progress synchronization across all user devices.
        """
    
    version: str = "0.1.0" 
    
    database_url: str = "postgresql+psycopg://postgres:postgres@postgres:5432/avaaz"

    model_config = SettingsConfigDict(env_prefix="", case_sensitive=False)


@lru_cache(maxsize=1)
def get_settings() -> Settings:
    """Return cached settings instance."""
    return Settings()
