Files
2025-12-02 21:26:08 +01:00

50 lines
1.4 KiB
Python

import os
from typing import Optional
class Config:
"""Application configuration management."""
# API Configuration
API_URL: str = "https://api.kleer.se/v1"
DEFAULT_COMPANY_ID: str = "1336"
API_KEY : str = "rjAXm8PM70kqTUt" # To be set via environment variable
# Date Formats
CSV_DATE_FORMAT: str = '%m/%d/%Y'
API_DATE_FORMAT: str = '%Y-%m-%d'
XLSX_SHEET_NAME: str = "AGRESSO"
# CSV Column Indices
DATE_COL_INDEX: int = 5
HOURS_COL_INDEX: int = 10
# Business Rules
MIN_HOURS_THRESHOLD: float = 0.2
# Server Configuration
SERVER_HOST: str = "0.0.0.0"
SERVER_PORT: int = 8000
# Environment Variables
@staticmethod
def get_api_key() -> Optional[str]:
"""Get Kleer API key from environment."""
return os.getenv('KLEER_API_KEY',Config.API_KEY)
@staticmethod
def get_username() -> str:
"""Get username from environment with fallback."""
return os.getenv('KLEER_USERNAME', 'Christopher Juhlin')
@staticmethod
def get_company_id() -> str:
"""Get company ID from environment with fallback."""
return os.getenv('KLEER_COMPANY_ID', Config.DEFAULT_COMPANY_ID)
@staticmethod
def validate_config() -> None:
"""Validate required configuration is present."""
if not Config.get_api_key():
raise ValueError("KLEER_API_KEY environment variable is not set")