# app/modules/messaging/schemas/__init__.py
"""
Messaging module Pydantic schemas.

This module contains the canonical implementations of messaging-related schemas.
"""

from app.modules.messaging.schemas.message import (
    # Attachment schemas
    AttachmentResponse,
    # Message schemas
    MessageCreate,
    MessageResponse,
    # Participant schemas
    ParticipantInfo,
    ParticipantResponse,
    # Conversation schemas
    ConversationCreate,
    ConversationSummary,
    ConversationDetailResponse,
    ConversationListResponse,
    ConversationResponse,
    # Unread count
    UnreadCountResponse,
    # Notification preferences
    NotificationPreferencesUpdate,
    # Conversation actions
    CloseConversationResponse,
    ReopenConversationResponse,
    MarkReadResponse,
    # Recipient selection
    RecipientOption,
    RecipientListResponse,
    # Admin schemas
    AdminConversationSummary,
    AdminConversationListResponse,
    AdminMessageStats,
)

from app.modules.messaging.schemas.notification import (
    # Response schemas
    MessageResponse as NotificationMessageResponse,
    UnreadCountResponse as NotificationUnreadCountResponse,
    # Notification schemas
    NotificationResponse,
    NotificationListResponse,
    # Settings schemas
    NotificationSettingsResponse,
    NotificationSettingsUpdate,
    # Template schemas
    NotificationTemplateResponse,
    NotificationTemplateListResponse,
    NotificationTemplateUpdate,
    # Test notification
    TestNotificationRequest,
    # Alert statistics
    AlertStatisticsResponse,
)

# Email template schemas
from app.modules.messaging.schemas.email import (
    EmailPreviewRequest,
    EmailPreviewResponse,
    EmailTemplateBase,
    EmailTemplateCreate,
    EmailTemplateResponse,
    EmailTemplateSummary,
    EmailTemplateUpdate,
    EmailTemplateWithOverrideStatus,
    EmailTestRequest,
    EmailTestResponse,
    VendorEmailTemplateCreate,
    VendorEmailTemplateResponse,
    VendorEmailTemplateUpdate,
)

__all__ = [
    # Attachment schemas
    "AttachmentResponse",
    # Message schemas
    "MessageCreate",
    "MessageResponse",
    # Participant schemas
    "ParticipantInfo",
    "ParticipantResponse",
    # Conversation schemas
    "ConversationCreate",
    "ConversationSummary",
    "ConversationDetailResponse",
    "ConversationListResponse",
    "ConversationResponse",
    # Unread count
    "UnreadCountResponse",
    # Notification preferences
    "NotificationPreferencesUpdate",
    # Conversation actions
    "CloseConversationResponse",
    "ReopenConversationResponse",
    "MarkReadResponse",
    # Recipient selection
    "RecipientOption",
    "RecipientListResponse",
    # Admin schemas
    "AdminConversationSummary",
    "AdminConversationListResponse",
    "AdminMessageStats",
    # Notification response schemas
    "NotificationMessageResponse",
    "NotificationUnreadCountResponse",
    # Notification schemas
    "NotificationResponse",
    "NotificationListResponse",
    # Settings schemas
    "NotificationSettingsResponse",
    "NotificationSettingsUpdate",
    # Template schemas
    "NotificationTemplateResponse",
    "NotificationTemplateListResponse",
    "NotificationTemplateUpdate",
    # Test notification
    "TestNotificationRequest",
    # Alert statistics
    "AlertStatisticsResponse",
    # Email template schemas
    "EmailPreviewRequest",
    "EmailPreviewResponse",
    "EmailTemplateBase",
    "EmailTemplateCreate",
    "EmailTemplateResponse",
    "EmailTemplateSummary",
    "EmailTemplateUpdate",
    "EmailTemplateWithOverrideStatus",
    "EmailTestRequest",
    "EmailTestResponse",
    "VendorEmailTemplateCreate",
    "VendorEmailTemplateResponse",
    "VendorEmailTemplateUpdate",
]
