"""
Pydantic Schemas Package

统一导出所有 Pydantic 模型，保持向后兼容。
"""

# Common types
from .common import AssetType, GenerationStatus, StoryboardStatus

# Model configuration schemas
from .model_config import (
    ModelCapability,
    ModelConfig,
    ProviderConfig,
    ModelDefaults,
    ModelsResponse,
)

# Generation schemas
from .generation import (
    BaseGenerationRecord,
    ImageGenerationParams,
    ImageGenerationRecord,
    VideoGenerationParams,
    VideoGenerationRecord,
    GenerationRecord,
    StandardVideoParams,
    StandardImageParams,
    ImageGenerationRequest,
    VideoGenerationRequest,
    AudioGenerationRequest,
    MusicGenerationRequest,
    GenerationResponse,
    UpscaleImageRequest,
    UpscaleImageResponse,
    GenerateAudioRequest,
    AudioResponse,
    ExportProjectRequest,
    ExportResponse,
)

# Asset schemas
from .asset import (
    BaseAsset,
    CharacterAsset,
    SceneAsset,
    PropAsset,
    AudioAsset,
    OtherAsset,
    Asset,
    CreateCharacterAssetRequest,
    CreateSceneAssetRequest,
    CreatePropAssetRequest,
    CreateOtherAssetRequest,
    CreateAssetRequest,
    UpdateAssetRequest,
)

# Project schemas
from .project import (
    Episode,
    Storyboard,
    InitializeProjectRequest,
    CreateProjectRequest,
    UpdateProjectRequest,
    InitializationProgress,
    ProjectData,
    CreateEpisodeRequest,
    UpdateEpisodeRequest,
    CreateStoryboardRequest,
    UpdateStoryboardRequest,
)

# Script schemas
from .script import (
    ScriptProcessRequest,
    ScriptScene,
    NovelSummaryRequest,
    CharacterProfile,
    NovelSummaryResponse,
    CharacterExtractionRequest,
    CharacterExtractionResponse,
    SceneProfile,
    SceneExtractionRequest,
    SceneExtractionResponse,
    PropProfile,
    PropExtractionRequest,
    PropExtractionResponse,
    StoryboardSplitItem,
    StoryboardSplitRequest,
    StoryboardSplitResponse,
    Chapter,
    ChapterSplitRequest,
    ChapterSplitResponse,
    ScriptResponse,
    PromptOptimizationRequest,
    PromptOptimizationResponse,
    StyleRecommendationRequest,
    StyleRecommendationResponse,
)

# Task schemas
from .task import Task

# Canvas schemas
from .canvas import (
    CanvasState,
    CanvasMetadata,
    CreateGeneralCanvasRequest,
    UpdateCanvasMetadataRequest,
)

# Re-export ResponseModel for backward compatibility
from src.models.response import ResponseModel, ErrorResponse, PaginationParams, PaginationMetadata

__all__ = [
    # Common
    "AssetType",
    "GenerationStatus",
    "StoryboardStatus",
    # Model Config
    "ModelCapability",
    "ModelConfig",
    "ProviderConfig",
    "ModelDefaults",
    "ModelsResponse",
    # Generation
    "BaseGenerationRecord",
    "ImageGenerationParams",
    "ImageGenerationRecord",
    "VideoGenerationParams",
    "VideoGenerationRecord",
    "GenerationRecord",
    "StandardVideoParams",
    "StandardImageParams",
    "ImageGenerationRequest",
    "VideoGenerationRequest",
    "AudioGenerationRequest",
    "MusicGenerationRequest",
    "GenerationResponse",
    "UpscaleImageRequest",
    "UpscaleImageResponse",
    "GenerateAudioRequest",
    "AudioResponse",
    "ExportProjectRequest",
    "ExportResponse",
    # Asset
    "BaseAsset",
    "CharacterAsset",
    "SceneAsset",
    "PropAsset",
    "AudioAsset",
    "OtherAsset",
    "Asset",
    "CreateCharacterAssetRequest",
    "CreateSceneAssetRequest",
    "CreatePropAssetRequest",
    "CreateOtherAssetRequest",
    "CreateAssetRequest",
    "UpdateAssetRequest",
    # Project
    "Episode",
    "Storyboard",
    "InitializeProjectRequest",
    "CreateProjectRequest",
    "UpdateProjectRequest",
    "InitializationProgress",
    "ProjectData",
    "CreateEpisodeRequest",
    "UpdateEpisodeRequest",
    "CreateStoryboardRequest",
    "UpdateStoryboardRequest",
    # Script
    "ScriptProcessRequest",
    "ScriptScene",
    "NovelSummaryRequest",
    "CharacterProfile",
    "NovelSummaryResponse",
    "CharacterExtractionRequest",
    "CharacterExtractionResponse",
    "SceneProfile",
    "SceneExtractionRequest",
    "SceneExtractionResponse",
    "PropProfile",
    "PropExtractionRequest",
    "PropExtractionResponse",
    "StoryboardSplitItem",
    "StoryboardSplitRequest",
    "StoryboardSplitResponse",
    "Chapter",
    "ChapterSplitRequest",
    "ChapterSplitResponse",
    "ScriptResponse",
    "PromptOptimizationRequest",
    "PromptOptimizationResponse",
    "StyleRecommendationRequest",
    "StyleRecommendationResponse",
    # Task
    "Task",
    # Canvas
    "CanvasState",
    "CanvasMetadata",
    "CreateGeneralCanvasRequest",
    "UpdateCanvasMetadataRequest",
    # Response
    "ResponseModel",
    "ErrorResponse",
    "PaginationParams",
    "PaginationMetadata",
]
