"""
Strategy Domain Entity — Gate (a single gate / stage inside a GateProcess).
"""

from __future__ import annotations

import uuid
from dataclasses import dataclass, field
from typing import Any, Optional

from shared.base_classes.entity import TenantEntity


@dataclass
class Gate(TenantEntity):
    """دروازه — یک مرحله تأیید در فرآیند Stage-Gate."""

    process_id: Optional[uuid.UUID] = None
    name: str = ""
    sequence: int = 0
    description: str = ""
    mandatory_deliverables: list[str] = field(default_factory=list)
    criteria: str = ""

    metadata: dict[str, Any] = field(default_factory=dict)
