from dotenv import load_dotenv
from pydantic_settings import BaseSettings
from pathlib import Path

# Load .env manually too (in case you want to use os.getenv anywhere else)
load_dotenv(override=True)


class Settings(BaseSettings):
    DATABASE_USERNAME: str
    DATABASE_PASSWORD: str
    DATABASE_NAME: str
    DATABASE_HOST: str
    DATABASE_PORT: int

    SECRET_KEY: str

    MAIL_SERVER: str
    MAIL_PORT: int
    MAIL_USE_SSL: bool
    MAIL_USE_TLS: bool
    MAIL_USERNAME: str
    MAIL_PASSWORD: str
    MAIL_DEFAULT_SENDER: str
    MAIL_RECIPIENT: str
    
    REDIS_HOST: str
    REDIS_PORT: int
    REDIS_PASSWORD: str


    UPLOAD_DIR: str

    class Config:
        env_file = Path(__file__).resolve().parent.parent.parent / ".env"
        env_file_encoding = "utf-8"


settings = Settings()

BASE_DIR = Path(__file__).resolve().parent.parent.parent

UPLOAD_DIR = (BASE_DIR / settings.UPLOAD_DIR).resolve()
