"""
Strategy Domain Entity — Scorecard (Balanced Scorecard).
"""

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 Scorecard(TenantEntity):
    """کارت امتیازی متوازن (BSC)."""

    name: str = ""
    description: str = ""
    owner_id: Optional[uuid.UUID] = None
    period_start: Optional[date] = None
    period_end: Optional[date] = None
    status: str = "draft"  # draft / active / closed / archived

    metadata: dict[str, Any] = field(default_factory=dict)

    def activate(self) -> None:
        self.status = "active"

    def close(self) -> None:
        self.status = "closed"

    def archive(self) -> None:
        self.status = "archived"
