from pydantic_settings import BaseSettings
from typing import List


class Settings(BaseSettings):
    APP_NAME: str = "My FastAPI Project"
    ADMIN_EMAIL: str
    SECRET_KEY: str
    DEBUG: bool = False

    JWT_SECRET_KEY: str
    JWT_ALGORITHM: str
    JWT_EXPIRES: int = 10080  # 7 days
    JWT_REFRESH_EXPIRES: int = 120  # 2 hours

    API_PORT: int = 8000
    DOCKER_API_PORT: int = 8000

    DB_URL: str
    DB_PORT: int = 5433
    DOCKER_DB_PORT: int = 5433
    DB_NAME: str
    DB_USERNAME: str
    DB_PASSWORD: str

    PG_ADMIN_EMAIL: str
    PG_ADMIN_PASSWORD: str
    PG_ADMIN_PORT: int = 5000

    ORIGINS: List[str] = ["*"]

    class Config:
        env_file = ".env"
        extra = "allow"


settings = Settings()
