"""Pydantic models for request validation and response serialization.

This module re-exports all schema classes from feature packages for
backward compatibility.  Code that does ``from peon_mcp.schemas import
TaskResponse`` will continue to work.
"""

# Common / generic
from peon_mcp.common.schemas import (  # noqa: F401
    BulkUpdateResponse,
    OkResponse,
    PaginatedResponse,
    SuccessResponse,
)

# System
from peon_mcp.system.schemas import (  # noqa: F401
    LoopsResponse,
    SystemInfoResponse,
)

# Projects (includes stats models)
from peon_mcp.projects.schemas import (  # noqa: F401
    ActivityDataPoint,
    AddProjectRelationRequest,
    CreateProjectRequest,
    DeployConfig,
    DurationStatsResponse,
    PerformanceStatsResponse,
    ProjectActivityResponse,
    ProjectRelationResponse,
    ProjectResponse,
    ProjectStatsResponse,
    UpdateProjectRequest,
)

# Work logs
from peon_mcp.work_logs.schemas import (  # noqa: F401
    CreateWorkLogRequest,
    WorkLogResponse,
)

# Tasks
from peon_mcp.tasks.schemas import (  # noqa: F401
    BulkUpdateTasksRequest,
    ConflictResolutionResponse,
    CreateTaskRequest,
    GlobalNextTaskRequest,
    NextTaskRequest,
    NextTaskResponse,
    RecoverableTaskResponse,
    RecoveryResponse,
    TaskDetailResponse,
    TaskResponse,
    UpdateTaskProgressRequest,
    UpdateTaskRequest,
)

# Features
from peon_mcp.features.schemas import (  # noqa: F401
    CompleteFeatureRequest,
    CreateFeatureRequest,
    FeatureResponse,
    FeatureTasksResponse,
    ResolveConflictsResponse,
    UpdateFeatureRequest,
)

# Memories
from peon_mcp.memories.schemas import (  # noqa: F401
    CreateMemoryRequest,
    MemoryResponse,
    RecallMemoriesRequest,
)

# Sessions
from peon_mcp.sessions.schemas import (  # noqa: F401
    SessionCreate,
    SessionDetailResponse,
    SessionEventCreate,
    SessionEventResponse,
    SessionResponse,
    SessionStatsResponse,
    SessionUpdate,
)

# Discord
from peon_mcp.discord.schemas import (  # noqa: F401
    ActivityLogCreate,
    ActivityLogResponse,
    BotStatusResponse,
    ChannelMappingCreate,
    ChannelMappingResponse,
    ChannelMappingUpdate,
    DiscordConfigCreate,
    DiscordConfigResponse,
    DiscordConfigUpdate,
    DiscordEmbedField,
    DiscordInboundMessageResponse,
    DiscordMessagePayload,
    SendMessageRequest,
    SendMessageResponse,
)

# GitHub Webhooks
from peon_mcp.github_webhooks.schemas import (  # noqa: F401
    GitHubWebhookEventLogResponse,
    GitHubWebhookResponse,
)

# Approvals
from peon_mcp.approvals.schemas import (  # noqa: F401
    ApprovalResponse,
    CreateApprovalRequest,
    RespondApprovalRequest,
)

# Loop Directives
from peon_mcp.directives.schemas import (  # noqa: F401
    DirectiveCreate,
    DirectiveResponse,
    DirectiveStatus,
    DirectiveType,
    DirectiveUpdate,
)

# Grukk Messages
from peon_mcp.grukk_messages.schemas import (  # noqa: F401
    GrukkMessageCreate,
    GrukkMessageResponse,
    GrukkMessageRole,
)

# Forward reference updates (needed due to cross-references)
FeatureTasksResponse.model_rebuild()
TaskDetailResponse.model_rebuild()
