"""Application configuration.""" import os from functools import lru_cache from pydantic_settings import BaseSettings class Settings(BaseSettings): # App APP_NAME: str = "JIRA AI Fixer" APP_VERSION: str = "2.0.0" DEBUG: bool = False SECRET_KEY: str = os.getenv("SECRET_KEY", "change-me-in-production-use-openssl-rand-hex-32") # Database DATABASE_URL: str = os.getenv("DATABASE_URL", "postgresql://postgres:postgres@postgres_database:5432/jira_fixer_v2") # Redis REDIS_URL: str = os.getenv("REDIS_URL", "redis://redis_redis:6379/0") # JWT JWT_SECRET: str = os.getenv("JWT_SECRET", "jwt-secret-change-in-production") JWT_ALGORITHM: str = "HS256" JWT_EXPIRE_MINUTES: int = 60 * 24 # 24 hours JWT_REFRESH_DAYS: int = 7 # Email (Resend) RESEND_API_KEY: str = os.getenv("RESEND_API_KEY", "") EMAIL_FROM: str = os.getenv("EMAIL_FROM", "JIRA AI Fixer ") # External APIs OPENROUTER_API_KEY: str = os.getenv("OPENROUTER_API_KEY", "") GITEA_URL: str = os.getenv("GITEA_URL", "https://gitea.startdata.com.br") GITEA_TOKEN: str = os.getenv("GITEA_TOKEN", "") # OAuth (for integrations) JIRA_CLIENT_ID: str = os.getenv("JIRA_CLIENT_ID", "") JIRA_CLIENT_SECRET: str = os.getenv("JIRA_CLIENT_SECRET", "") GITHUB_CLIENT_ID: str = os.getenv("GITHUB_CLIENT_ID", "") GITHUB_CLIENT_SECRET: str = os.getenv("GITHUB_CLIENT_SECRET", "") class Config: env_file = ".env" @lru_cache() def get_settings() -> Settings: return Settings() settings = get_settings()