from sqlalchemy.orm import DeclarativeMeta from app.modules.business import models DOMAIN_MODELS: dict[str, type[DeclarativeMeta]] = { "projects": models.Project, "tasks": models.WorkTask, "procurements": models.Procurement, "expenses": models.Expense, "fund-accounts": models.FundAccount, "policies": models.Policy, "standards": models.Standard, "performance-metrics": models.PerformanceMetric, "suppliers": models.Supplier, } LOW_RISK_DOMAINS = {"projects", "tasks", "procurements", "expenses", "policies", "standards"} HIGH_RISK_DOMAINS = {"fund-accounts", "performance-metrics"} def get_domain_model(domain: str) -> type[DeclarativeMeta]: if domain not in DOMAIN_MODELS: supported = ", ".join(sorted(DOMAIN_MODELS)) raise KeyError(f"Unsupported domain '{domain}'. Supported: {supported}") return DOMAIN_MODELS[domain]