"""Configuration module""" import os from pydantic_settings import BaseSettings class Settings(BaseSettings): """Application settings""" PROJECT_NAME: str = "Employee Request System" API_V1_STR: str = "/api" # Database POSTGRES_USER: str = os.getenv("POSTGRES_USER", "postgres") POSTGRES_PASSWORD: str = os.getenv("POSTGRES_PASSWORD", "postgres") POSTGRES_HOST: str = os.getenv("POSTGRES_HOST", "localhost") POSTGRES_PORT: str = os.getenv("POSTGRES_PORT", "5432") POSTGRES_DB: str = os.getenv("POSTGRES_DB", "app") # JWT SECRET_KEY: str = os.getenv("SECRET_KEY", "your-secret-key-super-secret") ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 # Redis REDIS_HOST: str = os.getenv("REDIS_HOST", "localhost") REDIS_PORT: int = int(os.getenv("REDIS_PORT", "6379")) REDIS_DB: int = int(os.getenv("REDIS_DB", "0")) # Telegram TELEGRAM_BOT_TOKEN: str = os.getenv("TELEGRAM_BOT_TOKEN", "") TELEGRAM_CHAT_ID: str = os.getenv("TELEGRAM_CHAT_ID", "") model_config = { "case_sensitive": True, "env_file": ".env", "extra": "allow" } def get_database_url(self) -> str: """Get database URL""" return os.getenv( "DATABASE_URL", f"postgresql://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}@{self.POSTGRES_HOST}:{self.POSTGRES_PORT}/{self.POSTGRES_DB}" ) settings = Settings()