# -*- coding: utf-8 -*-
"""
===================================
API v1 Schemas 模块初始化
===================================

职责：
1. 导出所有 Pydantic 模型
"""

from api.v1.schemas.common import (
    RootResponse,
    HealthResponse,
    ErrorResponse,
    SuccessResponse,
)
from api.v1.schemas.market_phase import MarketPhaseSummary
from api.v1.schemas.analysis import (
    AnalyzeRequest,
    AnalysisResultResponse,
    TaskAccepted,
    BatchTaskAcceptedResponse,
    TaskStatus,
)
from api.v1.schemas.history import (
    HistoryItem,
    HistoryListResponse,
    DeleteHistoryRequest,
    DeleteHistoryResponse,
    NewsIntelItem,
    NewsIntelResponse,
    AnalysisReport,
    ReportMeta,
    ReportSummary,
    ReportStrategy,
    ReportDetails,
)
from api.v1.schemas.stocks import (
    StockQuote,
    StockHistoryResponse,
    KLineData,
)
from api.v1.schemas.backtest import (
    BacktestRunRequest,
    BacktestRunResponse,
    BacktestResultItem,
    BacktestResultsResponse,
    PerformanceMetrics,
)
from api.v1.schemas.system_config import (
    SystemConfigFieldSchema,
    SystemConfigCategorySchema,
    SystemConfigSchemaResponse,
    SystemConfigItem,
    SystemConfigResponse,
    ExportSystemConfigResponse,
    SystemConfigUpdateItem,
    UpdateSystemConfigRequest,
    UpdateSystemConfigResponse,
    ValidateSystemConfigRequest,
    ImportSystemConfigRequest,
    ConfigValidationIssue,
    ValidateSystemConfigResponse,
    LLMCapabilityCheck,
    LLMCapabilityCheckResult,
    TestLLMChannelRequest,
    TestLLMChannelResponse,
    SystemConfigValidationErrorResponse,
    SystemConfigConflictResponse,
)
from api.v1.schemas.portfolio import (
    PortfolioAccountCreateRequest,
    PortfolioAccountUpdateRequest,
    PortfolioAccountItem,
    PortfolioAccountListResponse,
    PortfolioTradeCreateRequest,
    PortfolioCashLedgerCreateRequest,
    PortfolioCorporateActionCreateRequest,
    PortfolioEventCreatedResponse,
    PortfolioTradeListItem,
    PortfolioTradeListResponse,
    PortfolioCashLedgerListItem,
    PortfolioCashLedgerListResponse,
    PortfolioCorporateActionListItem,
    PortfolioCorporateActionListResponse,
    PortfolioPositionAnalysisRequest,
    PortfolioPositionItem,
    PortfolioAccountSnapshot,
    PortfolioSnapshotResponse,
    PortfolioImportTradeItem,
    PortfolioImportParseResponse,
    PortfolioImportCommitResponse,
    PortfolioImportBrokerItem,
    PortfolioImportBrokerListResponse,
    PortfolioFxRefreshResponse,
    PortfolioDecisionSignalRiskBlock,
    PortfolioDecisionSignalRiskItem,
    PortfolioRiskResponse,
)
from api.v1.schemas.alerts import (
    AlertDeleteResponse,
    AlertNotificationItem,
    AlertNotificationListResponse,
    AlertRuleCreateRequest,
    AlertRuleItem,
    AlertRuleListResponse,
    AlertRuleTestResponse,
    AlertRuleUpdateRequest,
    AlertTriggerItem,
    AlertTriggerListResponse,
)
from api.v1.schemas.decision_signals import (
    DecisionSignalCreateRequest,
    DecisionSignalFeedbackItem,
    DecisionSignalFeedbackRequest,
    DecisionSignalItem,
    DecisionSignalListResponse,
    DecisionSignalMutationResponse,
    DecisionSignalOutcomeItem,
    DecisionSignalOutcomeListResponse,
    DecisionSignalOutcomeRunRequest,
    DecisionSignalOutcomeRunResponse,
    DecisionSignalOutcomeStatsBucket,
    DecisionSignalOutcomeStatsResponse,
    DecisionSignalStatusUpdateRequest,
)

__all__ = [
    # common
    "RootResponse",
    "HealthResponse",
    "ErrorResponse",
    "SuccessResponse",
    # market phase
    "MarketPhaseSummary",
    # analysis
    "AnalyzeRequest",
    "AnalysisResultResponse",
    "TaskAccepted",
    "BatchTaskAcceptedResponse",
    "TaskStatus",
    # history
    "HistoryItem",
    "HistoryListResponse",
    "DeleteHistoryRequest",
    "DeleteHistoryResponse",
    "NewsIntelItem",
    "NewsIntelResponse",
    "AnalysisReport",
    "ReportMeta",
    "ReportSummary",
    "ReportStrategy",
    "ReportDetails",
    # stocks
    "StockQuote",
    "StockHistoryResponse",
    "KLineData",
    # backtest
    "BacktestRunRequest",
    "BacktestRunResponse",
    "BacktestResultItem",
    "BacktestResultsResponse",
    "PerformanceMetrics",
    # system config
    "SystemConfigFieldSchema",
    "SystemConfigCategorySchema",
    "SystemConfigSchemaResponse",
    "SystemConfigItem",
    "SystemConfigResponse",
    "ExportSystemConfigResponse",
    "SystemConfigUpdateItem",
    "UpdateSystemConfigRequest",
    "UpdateSystemConfigResponse",
    "ValidateSystemConfigRequest",
    "ImportSystemConfigRequest",
    "ConfigValidationIssue",
    "ValidateSystemConfigResponse",
    "LLMCapabilityCheck",
    "LLMCapabilityCheckResult",
    "TestLLMChannelRequest",
    "TestLLMChannelResponse",
    "SystemConfigValidationErrorResponse",
    "SystemConfigConflictResponse",
    # portfolio
    "PortfolioAccountCreateRequest",
    "PortfolioAccountUpdateRequest",
    "PortfolioAccountItem",
    "PortfolioAccountListResponse",
    "PortfolioTradeCreateRequest",
    "PortfolioCashLedgerCreateRequest",
    "PortfolioCorporateActionCreateRequest",
    "PortfolioEventCreatedResponse",
    "PortfolioTradeListItem",
    "PortfolioTradeListResponse",
    "PortfolioCashLedgerListItem",
    "PortfolioCashLedgerListResponse",
    "PortfolioCorporateActionListItem",
    "PortfolioCorporateActionListResponse",
    "PortfolioPositionAnalysisRequest",
    "PortfolioPositionItem",
    "PortfolioAccountSnapshot",
    "PortfolioSnapshotResponse",
    "PortfolioImportTradeItem",
    "PortfolioImportParseResponse",
    "PortfolioImportCommitResponse",
    "PortfolioImportBrokerItem",
    "PortfolioImportBrokerListResponse",
    "PortfolioFxRefreshResponse",
    "PortfolioDecisionSignalRiskBlock",
    "PortfolioDecisionSignalRiskItem",
    "PortfolioRiskResponse",
    # alerts
    "AlertDeleteResponse",
    "AlertNotificationItem",
    "AlertNotificationListResponse",
    "AlertRuleCreateRequest",
    "AlertRuleItem",
    "AlertRuleListResponse",
    "AlertRuleTestResponse",
    "AlertRuleUpdateRequest",
    "AlertTriggerItem",
    "AlertTriggerListResponse",
    # decision signals
    "DecisionSignalCreateRequest",
    "DecisionSignalFeedbackItem",
    "DecisionSignalFeedbackRequest",
    "DecisionSignalItem",
    "DecisionSignalListResponse",
    "DecisionSignalMutationResponse",
    "DecisionSignalOutcomeItem",
    "DecisionSignalOutcomeListResponse",
    "DecisionSignalOutcomeRunRequest",
    "DecisionSignalOutcomeRunResponse",
    "DecisionSignalOutcomeStatsBucket",
    "DecisionSignalOutcomeStatsResponse",
    "DecisionSignalStatusUpdateRequest",
]
