"""
Strategy Domain Entity — Strategy Map Objective (node on map).
"""

from __future__ import annotations

import uuid
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any, Optional

from shared.base_classes.entity import TenantEntity


@dataclass
class StrategyMapObjective(TenantEntity):
    """هدف روی نقشه راهبردی (گره)."""

    map_id: Optional[uuid.UUID] = None
    perspective_id: Optional[uuid.UUID] = None
    objective_id: Optional[uuid.UUID] = None  # FK to Objective entity

    x_position: float = 0.0
    y_position: float = 0.0

    metadata: dict[str, Any] = field(default_factory=dict)
