from __future__ import annotations

from dataclasses import dataclass, field


@dataclass(slots=True)
class AnalyticsMeta:
    analysis_id: str = ""
    application: str = ""
    platform: str = ""
    domains: list[str] = field(default_factory=list)
    subdomains: list[str] = field(default_factory=list)


@dataclass(slots=True)
class FeatureRequirementUnit:
    heading: str
    body: str
    metadata: dict[str, object] = field(default_factory=dict)


@dataclass(slots=True)
class PlannedChange:
    op: str
    path: str
    doc_type: str
    reason: str
    title: str
    doc_id: str
    requirement_body: str = ""
    source_refs: list[str] = field(default_factory=list)
    related_docs: list[str] = field(default_factory=list)
