"""SDIJAP data models."""

from pydantic import BaseModel
from datetime import datetime
from typing import Optional


class AnnihilationResult(BaseModel):
    """Result of a cryptographic annihilation operation."""
    scope: str  # "project" or "all"
    status: str = "completed"  # pending / executing / completed / failed

    # Phase 1: Key destruction
    keys_destroyed: int = 0
    key_refs_destroyed: list[str] = []

    # Phase 2: Data overwrite
    episodic_destroyed: int = 0
    semantic_destroyed: int = 0
    receipts_preserved: int = 0  # receipts are kept for audit
    relationships_destroyed: int = 0
    topics_destroyed: int = 0
    overwrite_passes: int = 3

    # Phase 3: Embedding poisoning
    embeddings_poisoned: int = 0

    # Metadata
    receipt_id: Optional[str] = None
    duration_ms: float = 0.0
    timestamp: Optional[str] = None
