from typing import Any, Dict, List, Optional, Union
from pydantic import AnyHttpUrl
from pydantic_settings import BaseSettings, SettingsConfigDict
from pathlib import Path
 
class Settings(BaseSettings):
    SECRET_KEY: str
    DB_HOST: str
    DB_PORT: int
    DB_USER: str
    DB_PASSWORD: str
    DB_DATABASE: str
    DATABASE_URL: str
    AZURE_OPENAI_API_KEY: str
    AZURE_OPENAI_ENDPOINT: str
    AZURE_OPENAI_DEPLOYMENT: str
    AZURE_OPENAI_API_VERSION: str
    WEBHOOK_STATIC_TOKEN: str
    BRIGHT_DATA_TOKEN: str
    BRIGHT_DATASET_ID: str
    WEBHOOK_BASE_URL: str
    BRIGHT_DATA_API_URL: str
    GOOGLE_DATASET_ID: str
    CSV_WEBHOOK_URL: str
    app_id: str
    key: str
    secret: str
    cluster: str  
    batch_size: int
    MEM0_API_KEY:  str
    BASE_URL: str
    HUGGING_FACE_API_KEY: str
    IDEOGRAM_URL:  str
    IDEOGRAM_API_KEY:  str
    BG_REMOVAL_URL:  str
    BG_REMOVAL_API_KEY:  str
    QDRANT_API_KEY: str
    QADERND_URL: str
    AZURE_OPENAI_API_ENDPOINT: str
    AZUREKEY_CREDENTIAL_API_KEY: str
    MAIL_USERNAME: str
    MAIL_PASSWORD: str

    REDIS_HOST: str = "localhost"
    REDIS_PORT: int = 6379
    REDIS_DB: int = 0
 
    class Config:
        case_sensitive = True
        env_file = ".env"
        extra = "allow"
 
 
settings = Settings()