Spaces:
Sleeping
Sleeping
| from pathlib import Path | |
| from pydantic import HttpUrl, SecretStr | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class Settings(BaseSettings): | |
| azure_tenant_id: str | |
| azure_client_id: str | |
| azure_client_secret: SecretStr | |
| mailbox_user: str | |
| mail_folder_name: str | |
| notification_url: HttpUrl | |
| subscription_expiry_minutes: int = 4230 | |
| host: str = "0.0.0.0" | |
| port: int = 8000 | |
| database_path: Path = Path("/data/rcmemail.db") | |
| email_storage_path: Path = Path("/emails") | |
| log_path: Path = Path("/logs") | |
| dropbox_app_key: str | |
| dropbox_app_secret: SecretStr | |
| dropbox_refresh_token: SecretStr | |
| dropbox_po_path: str = "/RCM Supply/Inside Sales/POs" | |
| dropbox_invoice_path: str = "/RCM Supply/Inside Sales/Invoices" | |
| dropbox_mtr_path: str = "/RCM Supply/MTRs" | |
| processor_poll_interval: int = 10 | |
| score_weight_filename: float = 0.35 | |
| score_weight_ocr: float = 0.65 | |
| score_freq_multiplier: float = 0.10 | |
| score_min_threshold: float = 0.30 | |
| brief_recipients: str = "" | |
| dev_alert_recipients: str = "" | |
| model_config = SettingsConfigDict(env_file=".env", extra="ignore") | |
| def brief_recipient_list(self) -> list[str]: | |
| return [r.strip() for r in self.brief_recipients.split(",") if r.strip()] | |
| def dev_alert_recipient_list(self) -> list[str]: | |
| return [r.strip() for r in self.dev_alert_recipients.split(",") if r.strip()] | |
| settings = Settings() | |