"""
Jira data models for the MCP Atlassian integration.

This package provides Pydantic models for Jira API data structures,
organized by entity type for better maintainability and clarity.
"""

from .agile import JiraBoard, JiraSprint
from .comment import JiraComment
from .common import (
    JiraAttachment,
    JiraIssueType,
    JiraPriority,
    JiraResolution,
    JiraStatus,
    JiraStatusCategory,
    JiraTimetracking,
    JiraUser,
)
from .field_option import FieldContext, FieldOption
from .forms import ProFormaForm, ProFormaFormField, ProFormaFormState
from .issue import JiraIssue
from .link import (
    JiraIssueLink,
    JiraIssueLinkType,
    JiraLinkedIssue,
    JiraLinkedIssueFields,
)
from .metrics import (
    IssueDatesBatchResponse,
    IssueDatesResponse,
    StatusChangeEntry,
    StatusTimeSummary,
)
from .project import JiraProject
from .queue import (
    JiraQueue,
    JiraQueueIssuesResult,
    JiraServiceDesk,
    JiraServiceDeskQueuesResult,
)
from .search import JiraSearchResult
from .sla import (
    CycleTimeMetric,
    DueDateComplianceMetric,
    FirstResponseTimeMetric,
    IssueSLABatchResponse,
    IssueSLAMetrics,
    IssueSLAResponse,
    LeadTimeMetric,
    ResolutionTimeMetric,
    TimeInStatusEntry,
    TimeInStatusMetric,
    WorkingHoursConfig,
)
from .workflow import JiraTransition
from .worklog import JiraWorklog

__all__ = [
    # Field option models
    "FieldContext",
    "FieldOption",
    # Common models
    "JiraUser",
    "JiraStatusCategory",
    "JiraStatus",
    "JiraIssueType",
    "JiraPriority",
    "JiraAttachment",
    "JiraResolution",
    "JiraTimetracking",
    # Entity-specific models
    "JiraComment",
    "JiraWorklog",
    "JiraProject",
    "JiraTransition",
    "JiraBoard",
    "JiraSprint",
    "JiraIssue",
    "JiraSearchResult",
    "JiraServiceDesk",
    "JiraQueue",
    "JiraServiceDeskQueuesResult",
    "JiraQueueIssuesResult",
    "JiraIssueLinkType",
    "JiraIssueLink",
    "JiraLinkedIssue",
    "JiraLinkedIssueFields",
    # ProForma models
    "ProFormaForm",
    "ProFormaFormField",
    "ProFormaFormState",
    # Metrics models
    "IssueDatesResponse",
    "IssueDatesBatchResponse",
    "StatusChangeEntry",
    "StatusTimeSummary",
    # SLA models
    "IssueSLAResponse",
    "IssueSLABatchResponse",
    "IssueSLAMetrics",
    "CycleTimeMetric",
    "LeadTimeMetric",
    "TimeInStatusEntry",
    "TimeInStatusMetric",
    "DueDateComplianceMetric",
    "ResolutionTimeMetric",
    "FirstResponseTimeMetric",
    "WorkingHoursConfig",
]
