Some checks failed
CI/CD Pipeline / Code Quality & Linting (push) Has been cancelled
CI/CD Pipeline / Policy Validation (push) Has been cancelled
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-coverage) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-extract) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-firm-connectors) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-forms) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-hmrc) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-ingestion) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-kg) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-normalize-map) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-ocr) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-rag-indexer) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-rag-retriever) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-reason) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (svc-rpa) (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (ui-review) (push) Has been cancelled
CI/CD Pipeline / Security Scanning (svc-coverage) (push) Has been cancelled
CI/CD Pipeline / Security Scanning (svc-extract) (push) Has been cancelled
CI/CD Pipeline / Security Scanning (svc-kg) (push) Has been cancelled
CI/CD Pipeline / Security Scanning (svc-rag-retriever) (push) Has been cancelled
CI/CD Pipeline / Security Scanning (ui-review) (push) Has been cancelled
CI/CD Pipeline / Generate SBOM (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Notifications (push) Has been cancelled
49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
"""Utility models for coverage system."""
|
|
|
|
from datetime import datetime
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from ..enums import OverallStatus
|
|
|
|
|
|
class PolicyError(Exception):
|
|
"""Policy loading or validation error"""
|
|
|
|
pass
|
|
|
|
|
|
class ValidationResult(BaseModel):
|
|
"""Policy validation result"""
|
|
|
|
ok: bool
|
|
errors: list[str] = Field(default_factory=list)
|
|
warnings: list[str] = Field(default_factory=list)
|
|
|
|
|
|
class PolicyVersion(BaseModel):
|
|
"""Policy version record"""
|
|
|
|
id: int | None = None
|
|
version: str
|
|
jurisdiction: str
|
|
tax_year: str
|
|
tenant_id: str | None = None
|
|
source_files: list[str] = Field(default_factory=list)
|
|
compiled_at: datetime
|
|
hash: str
|
|
|
|
|
|
class CoverageAudit(BaseModel):
|
|
"""Coverage audit record"""
|
|
|
|
id: int | None = None
|
|
taxpayer_id: str
|
|
tax_year: str
|
|
policy_version: str
|
|
overall_status: OverallStatus
|
|
blocking_items: list[dict[str, Any]] = Field(default_factory=list)
|
|
created_at: datetime = Field(default_factory=datetime.utcnow)
|
|
trace_id: str | None = None
|