"""
Shared Pydantic schemas and models for API routers.

This module contains reusable request/response models and schemas
that are shared across multiple router modules.
"""

# Import all API models for easy access
from .auth import (
  AuthResponse,
  EmailResendRequest,
  EmailVerificationRequest,
  ForgotPasswordRequest,
  LoginRequest,
  PasswordCheckRequest,
  PasswordCheckResponse,
  PasswordPolicyResponse,
  RegisterRequest,
  ResetPasswordRequest,
  ResetPasswordValidateResponse,
  SSOCompleteRequest,
  SSOExchangeRequest,
  SSOExchangeResponse,
  SSOTokenResponse,
)
from .billing import (
  AddOnCreditInfo,
  AllocationResponse,
  AllocationResult,
  AvailableRepositoriesResponse,
  AvailableRepository,
  CreditCheckRequest,
  CreditsSummaryResponse,
  CreditSummary,
  CreditSummaryResponse,
  CreditTransactionResponse,
  DetailedTransactionsResponse,
  EnhancedCreditTransactionResponse,
  GraphSubscriptions,
  GraphSubscriptionTier,
  OfferingRepositoryPlan,
  OperationCosts,
  RepositoryCreditsResponse,
  RepositoryInfo,
  RepositoryPlanInfo,
  RepositorySubscriptions,
  ServiceOfferingsResponse,
  ServiceOfferingSummary,
  SubscriptionInfo,
  SubscriptionRequest,
  SubscriptionResponse,
  TierUpgradeRequest,
  TokenPricing,
  TransactionSummaryResponse,
  UpgradeSubscriptionRequest,
  UserSubscriptionsResponse,
)
from .common import (
  CreditCostInfo,
  ErrorCode,
  ErrorResponse,
  HealthStatus,
  PaginationInfo,
  SuccessResponse,
  create_error_response,
  create_pagination_info,
)
from .entity_graph import (
  AvailableExtension,
  AvailableExtensionsResponse,
  EntityCreate,
  EntityListResponse,
  EntityResponse,
  EntityUpdate,
  EntityWithGraphResponse,
)
from .graphs import (
  DEFAULT_QUERY_TIMEOUT,
  MAX_QUERY_LENGTH,
  AvailableGraphTiersResponse,
  BackupCreateRequest,
  BackupExportRequest,
  BackupListResponse,
  BackupResponse,
  BackupStatsResponse,
  BatchOperatorRequest,
  BatchOperatorResponse,
  ConnectionBase,
  ConnectionOptionsResponse,
  ConnectionProviderInfo,
  ConnectionResponse,
  CreateConnectionRequest,
  CreateGraphRequest,
  CreateGraphResponse,
  CypherQueryRequest,
  CypherQueryResponse,
  ExchangeTokenRequest,
  GraphCapacityResponse,
  GraphMetadata,
  GraphMetricsResponse,
  GraphTierBackup,
  GraphTierCopyOperations,
  GraphTierInfo,
  GraphTierInstance,
  GraphTierLimits,
  GraphUsageResponse,
  LinkTokenRequest,
  MCPQueryRequest,
  MCPQueryResponse,
  MCPSchemaResponse,
  MCPToolCall,
  MCPToolResult,
  MCPToolsResponse,
  OperatorMessage,
  OperatorRequest,
  OperatorResponse,
  ProviderType,
  QuickBooksConnectionConfig,
  SECConnectionConfig,
  SyncConnectionRequest,
  TierCapacity,
)
from .oauth import (
  OAuthCallbackRequest,
  OAuthConnectionUpdate,
  OAuthInitRequest,
  OAuthInitResponse,
  OAuthProvider,
  OAuthTokens,
)
from .user import (
  AccountInfo,
  APIKeyInfo,
  APIKeysResponse,
  CreateAPIKeyRequest,
  CreateAPIKeyResponse,
  GraphInfo,
  UpdateAPIKeyRequest,
  UpdatePasswordRequest,
  UpdateUserRequest,
  UserGraphsResponse,
  UserResponse,
)

# Explicitly define what models are available for import from this module
__all__ = [
  "DEFAULT_QUERY_TIMEOUT",
  # Graph models and constants
  "MAX_QUERY_LENGTH",
  "APIKeyInfo",
  "APIKeysResponse",
  # User models
  "AccountInfo",
  "AddOnCreditInfo",
  "AllocationResponse",
  "AllocationResult",
  "AuthResponse",
  "AvailableExtension",
  "AvailableExtensionsResponse",
  "AvailableGraphTiersResponse",
  "AvailableRepositoriesResponse",
  "AvailableRepository",
  "BackupCreateRequest",
  "BackupExportRequest",
  "BackupListResponse",
  "BackupResponse",
  "BackupStatsResponse",
  # AI Operator models
  "BatchOperatorRequest",
  "BatchOperatorResponse",
  "ConnectionBase",
  "ConnectionOptionsResponse",
  "ConnectionProviderInfo",
  "ConnectionResponse",
  "CreateAPIKeyRequest",
  "CreateAPIKeyResponse",
  "CreateConnectionRequest",
  "CreateGraphRequest",
  "CreateGraphResponse",
  "CreditCheckRequest",
  "CreditCostInfo",
  "CreditSummary",
  # Credit models
  "CreditSummaryResponse",
  "CreditTransactionResponse",
  "CreditsSummaryResponse",
  "CypherQueryRequest",
  "CypherQueryResponse",
  "DetailedTransactionsResponse",
  "EmailResendRequest",
  "EmailVerificationRequest",
  "EnhancedCreditTransactionResponse",
  # Entity models
  "EntityCreate",
  "EntityListResponse",
  "EntityResponse",
  "EntityUpdate",
  "EntityWithGraphResponse",
  "ErrorCode",
  # Common models
  "ErrorResponse",
  "ExchangeTokenRequest",
  "ForgotPasswordRequest",
  # Offering models
  "GraphCapacityResponse",
  "GraphInfo",
  "GraphMetadata",
  "GraphMetricsResponse",
  "GraphSubscriptionTier",
  "GraphSubscriptions",
  "GraphTierBackup",
  # Tier models
  "GraphTierCopyOperations",
  "GraphTierInfo",
  "GraphTierInstance",
  "GraphTierLimits",
  "GraphUsageResponse",
  "HealthStatus",
  "LinkTokenRequest",
  # Auth models
  "LoginRequest",
  "MCPQueryRequest",
  "MCPQueryResponse",
  "MCPSchemaResponse",
  # MCP models
  "MCPToolCall",
  "MCPToolResult",
  "MCPToolsResponse",
  "OAuthCallbackRequest",
  "OAuthConnectionUpdate",
  "OAuthInitRequest",
  "OAuthInitResponse",
  # OAuth models
  "OAuthProvider",
  "OAuthTokens",
  "OfferingRepositoryPlan",
  "OperationCosts",
  "OperatorMessage",
  "OperatorRequest",
  "OperatorResponse",
  "PaginationInfo",
  "PasswordCheckRequest",
  "PasswordCheckResponse",
  "PasswordPolicyResponse",
  # Connection models
  "ProviderType",
  "QuickBooksConnectionConfig",
  "RegisterRequest",
  "RepositoryCreditsResponse",
  "RepositoryInfo",
  # Subscription models
  "RepositoryPlanInfo",
  "RepositorySubscriptions",
  "ResetPasswordRequest",
  "ResetPasswordValidateResponse",
  "SECConnectionConfig",
  "SSOCompleteRequest",
  "SSOExchangeRequest",
  "SSOExchangeResponse",
  "SSOTokenResponse",
  "ServiceOfferingSummary",
  "ServiceOfferingsResponse",
  "SubscriptionInfo",
  "SubscriptionRequest",
  "SubscriptionResponse",
  "SuccessResponse",
  "SyncConnectionRequest",
  "TierCapacity",
  "TierUpgradeRequest",
  "TokenPricing",
  "TransactionSummaryResponse",
  "UpdateAPIKeyRequest",
  "UpdatePasswordRequest",
  "UpdateUserRequest",
  # Billing models
  "UpgradeSubscriptionRequest",
  "UserGraphsResponse",
  "UserResponse",
  "UserSubscriptionsResponse",
  "create_error_response",
  "create_pagination_info",
]
