"""
Strategy Domain Entity — KPI Actual.
"""

from __future__ import annotations

import uuid
from dataclasses import dataclass, field
from datetime import date, datetime
from typing import Any, Optional

from shared.base_classes.entity import TenantEntity


@dataclass
class KPIActual(TenantEntity):
    """مقدار واقعی ثبت‌شده برای KPI."""

    kpi_id: Optional[uuid.UUID] = None
    period_start: Optional[date] = None
    period_end: Optional[date] = None
    actual_value: float = 0.0

    notes: str = ""
    source: str = "manual"  # manual / system / integrated
    recorded_by: Optional[uuid.UUID] = None

    metadata: dict[str, Any] = field(default_factory=dict)
