from pydantic_settings import BaseSettings
from typing import List


class Settings(BaseSettings):
    # API Configuration
    API_VERSION: str
    DEBUG: bool
    PORT: int
    HOST: str

    # Database Configuration
    DB_URL: str
    MONGODB_URL: str
    MONGODB_DB_NAME: str

    # JWT Configuration
    JWT_SECRET_KEY: str
    JWT_ALGORITHM: str
    ACCESS_TOKEN_EXPIRE_MINUTES: int

    # Retell Configuration
    RETELL_API_KEY: str
    TWILIO_SIP_PASSWORD: str
    OUTBOUND_AGENT_RETELL_ID: str
    RETELLAI_API_KEY: str
    RETELLAI_API_URL: str
    CORS_ORIGINS: str

    # JWT Configuration
    SECRET_KEY: str
    ALGORITHM: str

    SMTP_SERVER: str
    SMTP_PORT: int
    smtp_username: str
    SMTP_PASSWORD: str
    EMAIL_SENDER: str

    # Service URLs
    AGENT_SERVICE: str
    SCHEDULE_SERVICE: str
    AUTH_SERVICE: str
    CALL_SERVICE: str
    SMS_SERVICE: str

    # Twilio Configuration
    TWILIO_ACCOUNT_SID: str
    TWILIO_AUTH_TOKEN: str
    TWILIO_FROM_NUMBER: str
    TWILIO_SIP_USERNAME: str

    class Config:
        env_file = ".env"


settings = Settings()
