"""HR Platform SDK Models.

Pydantic models for all API types.

Example:
    >>> from hr_platform.models import FullHRRecord, Entity, RecordStatus
    >>> from hr_platform.models import AnalyticsSummary, TrendDataPoint
"""

from hr_platform.models.enums import (
    Entity,
    RecordStatus,
    UserRole,
    ComplianceDocumentType,
)
from hr_platform.models.records import (
    Workforce,
    Capacity,
    Absences,
    Turnover,
    Performance,
    Financials,
    HRRecord,
    FullHRRecord,
    CreateRecordRequest,
    UpdateRecordRequest,
    RejectRecordRequest,
    RecordCreatedResponse,
    RecordUpdatedResponse,
    RecordDeletedResponse,
    WorkflowResponse,
)
from hr_platform.models.analytics import (
    AnalyticsSummary,
    TrendDataPoint,
    EntityBreakdown,
    AnalyticsQueryParams,
)
from hr_platform.models.users import (
    User,
    UserProfile,
    Session,
    SessionInfo,
    CreateUserRequest,
    UpdateUserRequest,
    ChangePasswordRequest,
    PasswordPolicy,
    PasswordPolicyResponse,
    UserDeletedResponse,
)
from hr_platform.models.compliance import (
    ComplianceDocument,
    DocumentAcknowledgment,
    UserComplianceStatus,
    ComplianceDocumentsResponse,
    AcknowledgeDocumentRequest,
    AcknowledgeDocumentResponse,
    CompleteComplianceResponse,
    AdminUserComplianceRecord,
    AdminComplianceOverview,
    ComplianceSummary,
    ResetComplianceResponse,
)
from hr_platform.models.admin import (
    AdminStatus,
    SecurityStatus,
    AuditStatus,
    SecurityDashboard,
    ActiveSession,
    SessionsResponse,
    AuditLog,
    AuditLogPagination,
    AuditLogsResponse,
    AuditLogsQueryParams,
    BlockUserResponse,
    ResetPasswordResponse,
    LogoutUserResponse,
    InvalidateAllSessionsResponse,
    ClearRateLimitResponse,
    UnlockAccountResponse,
    ApiKeyScope,
    ApiKey,
    ApiKeysListResponse,
    ApiKeyScopesResponse,
    CreateApiKeyRequest,
    CreateApiKeyResponse,
    RevokeApiKeyRequest,
    RevokeApiKeyResponse,
    RotateApiKeyResponse,
)
from hr_platform.models.webhooks import (
    WebhookEventType,
    WebhookEventTypesResponse,
    Webhook,
    WebhookDelivery,
    WebhooksListResponse,
    WebhookDeliveriesResponse,
    CreateWebhookRequest,
    CreateWebhookResponse,
    UpdateWebhookRequest,
    UpdateWebhookResponse,
    RevokeWebhookRequest,
    RevokeWebhookResponse,
    TestWebhookResponse,
    RetryDeliveryResponse,
)

__all__ = [
    # Enums
    "Entity",
    "RecordStatus",
    "UserRole",
    "ComplianceDocumentType",
    # Record models
    "Workforce",
    "Capacity",
    "Absences",
    "Turnover",
    "Performance",
    "Financials",
    "HRRecord",
    "FullHRRecord",
    "CreateRecordRequest",
    "UpdateRecordRequest",
    "RejectRecordRequest",
    "RecordCreatedResponse",
    "RecordUpdatedResponse",
    "RecordDeletedResponse",
    "WorkflowResponse",
    # Analytics models
    "AnalyticsSummary",
    "TrendDataPoint",
    "EntityBreakdown",
    "AnalyticsQueryParams",
    # User models
    "User",
    "UserProfile",
    "Session",
    "SessionInfo",
    "CreateUserRequest",
    "UpdateUserRequest",
    "ChangePasswordRequest",
    "PasswordPolicy",
    "PasswordPolicyResponse",
    "UserDeletedResponse",
    # Compliance models
    "ComplianceDocument",
    "DocumentAcknowledgment",
    "UserComplianceStatus",
    "ComplianceDocumentsResponse",
    "AcknowledgeDocumentRequest",
    "AcknowledgeDocumentResponse",
    "CompleteComplianceResponse",
    "AdminUserComplianceRecord",
    "AdminComplianceOverview",
    "ComplianceSummary",
    "ResetComplianceResponse",
    # Admin models
    "AdminStatus",
    "SecurityStatus",
    "AuditStatus",
    "SecurityDashboard",
    "ActiveSession",
    "SessionsResponse",
    "AuditLog",
    "AuditLogPagination",
    "AuditLogsResponse",
    "AuditLogsQueryParams",
    "BlockUserResponse",
    "ResetPasswordResponse",
    "LogoutUserResponse",
    "InvalidateAllSessionsResponse",
    "ClearRateLimitResponse",
    "UnlockAccountResponse",
    "ApiKeyScope",
    "ApiKey",
    "ApiKeysListResponse",
    "ApiKeyScopesResponse",
    "CreateApiKeyRequest",
    "CreateApiKeyResponse",
    "RevokeApiKeyRequest",
    "RevokeApiKeyResponse",
    "RotateApiKeyResponse",
    # Webhook models
    "WebhookEventType",
    "WebhookEventTypesResponse",
    "Webhook",
    "WebhookDelivery",
    "WebhooksListResponse",
    "WebhookDeliveriesResponse",
    "CreateWebhookRequest",
    "CreateWebhookResponse",
    "UpdateWebhookRequest",
    "UpdateWebhookResponse",
    "RevokeWebhookRequest",
    "RevokeWebhookResponse",
    "TestWebhookResponse",
    "RetryDeliveryResponse",
]
