"""ForgetStone receipt models for antifragility metrics."""

from __future__ import annotations

from datetime import datetime, timezone
from typing import Any, Dict, Optional

from receipts.compat.pyd import BaseModel, ConfigDictLike, Field


class ForgetStone(BaseModel):
    """Minimal ForgetStone receipt used by trust tiles."""

    model_config = ConfigDictLike(frozen=True)

    receipt_type: str = Field(default="ForgetStone")
    receipt_id: str = Field(default_factory=lambda: f"forget_{datetime.now(timezone.utc).timestamp():.0f}")
    ts: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
    node_id: Optional[str] = None
    reason: Optional[str] = None
    context: Dict[str, Any] = Field(default_factory=dict)


__all__ = ["ForgetStone"]
