from pydantic_settings import BaseSettings
from typing import Optional


class Settings(BaseSettings):
    APP_NAME: str = "Image to Font Generation"
    ENV: str = "production"
    APP_TIMEZONE: str = "Europe/London"

    IMAGE_TO_FONT_API_KEY: str | None = None
    SLACK_ERROR_WEBHOOK_URL: str | None = None
    SLACK_ERROR_NOTIFICATIONS_ENABLED: bool = False

    DO_SPACES_ENDPOINT: str | None = None
    DO_SPACES_REGION: str = "LON1"
    DO_SPACES_BUCKET: str | None = None
    DO_SPACES_ACCESS_KEY: str | None = None
    DO_SPACES_SECRET_KEY: str | None = None

    HANDWRITING_PRESERVE_WORK_DIR: bool = False
    HANDWRITING_PRESERVE_DIR: str | None = None
    HANDWRITING_RETENTION_DAYS_SUCCESS: int = 10
    HANDWRITING_RETENTION_DAYS_FAILED: int = 30
    RUN_CRON: bool = False

    class Config:
        env_file = ".env"


settings = Settings()
