import os from typing import Dict, Any from pydantic_settings import BaseSettings class RateLimitSettings(BaseSettings): GLOBAL_HOURLY_LIMIT: int = int(os.getenv("GLOBAL_HOURLY_LIMIT", "10000")) GLOBAL_DAILY_LIMIT: int = int(os.getenv("GLOBAL_DAILY_LIMIT", "100000")) SENDER_HOURLY_LIMIT: int = int(os.getenv("SENDER_HOURLY_LIMIT", "100")) SENDER_DAILY_LIMIT: int = int(os.getenv("SENDER_DAILY_LIMIT", "1000")) DEFAULT_TENANT_HOURLY_LIMIT: int = int(os.getenv("DEFAULT_TENANT_HOURLY_LIMIT", "500")) DEFAULT_TENANT_DAILY_LIMIT: int = int(os.getenv("DEFAULT_TENANT_DAILY_LIMIT", "5000")) TENANT_SPECIFIC_LIMITS: str = os.getenv("TENANT_SPECIFIC_LIMITS", "{}") HOURLY_WINDOW: int = 3600 DAILY_WINDOW: int = 86400 RESET_TIME_HOUR: int = 0 RESET_TIME_MINUTE: int = 0 class Config: env_file = ".env" env_file_encoding = "utf-8" extra = "ignore" rate_limit_settings = RateLimitSettings()