# app/modules/billing/schemas/__init__.py
"""
Billing module Pydantic schemas for API request/response validation.

This is the canonical location for billing schemas.

Usage:
    from app.modules.billing.schemas import (
        MerchantSubscriptionCreate,
        MerchantSubscriptionResponse,
        TierInfo,
    )
"""

from app.modules.billing.schemas.billing import (
    BillingHistoryListResponse,
    # Billing History schemas
    BillingHistoryResponse,
    BillingHistoryWithMerchant,
    # Store Checkout schemas
    CancelRequest,
    CancelResponse,
    CategoryListResponse,
    # Checkout & Portal schemas
    CheckoutRequest,
    CheckoutResponse,
    FeatureCatalogResponse,
    FeatureCodeListResponse,
    # Feature Catalog schemas
    FeatureDeclarationResponse,
    FeatureDetailResponse,
    FeatureGroupedResponse,
    FeatureListResponse,
    FeatureResponse,
    InvoiceListResponse,
    InvoiceResponse,
    # Merchant Feature Override schemas
    MerchantFeatureOverrideEntry,
    MerchantFeatureOverrideResponse,
    MerchantSubscriptionAdminCreate,
    # Merchant Subscription Admin schemas
    MerchantSubscriptionAdminResponse,
    MerchantSubscriptionAdminUpdate,
    MerchantSubscriptionListResponse,
    MerchantSubscriptionWithMerchant,
    PortalResponse,
    PortalSessionResponse,
    StoreFeatureCheckResponse,
    # Stats schemas
    SubscriptionStatsResponse,
    SubscriptionStatusResponse,
    SubscriptionTierBase,
    SubscriptionTierCreate,
    SubscriptionTierListResponse,
    SubscriptionTierResponse,
    SubscriptionTierUpdate,
    # Subscription Tier Admin schemas
    TierFeatureLimitEntry,
    TierListResponse,
    TierResponse,
    UpcomingInvoiceResponse,
)
from app.modules.billing.schemas.billing import (
    ChangeTierRequest as BillingChangeTierRequest,
)
from app.modules.billing.schemas.billing import (
    ChangeTierResponse as BillingChangeTierResponse,
)
from app.modules.billing.schemas.subscription import (
    ChangeTierRequest,
    ChangeTierResponse,
    FeatureCheckResponse,
    # Feature summary schemas
    FeatureSummaryResponse,
    # Limit check schemas
    LimitCheckResult,
    MerchantPortalAvailableTiersResponse,
    MerchantPortalInvoiceListResponse,
    MerchantPortalSubscriptionDetailResponse,
    # Merchant portal schemas
    MerchantPortalSubscriptionItem,
    MerchantPortalSubscriptionListResponse,
    # Subscription schemas
    MerchantSubscriptionCreate,
    MerchantSubscriptionResponse,
    MerchantSubscriptionStatusResponse,
    MerchantSubscriptionUpdate,
    # Tier schemas
    TierFeatureLimitResponse,
    TierInfo,
)

__all__ = [
    # Tier schemas (subscription.py)
    "TierFeatureLimitResponse",
    "TierInfo",
    # Subscription schemas (subscription.py)
    "MerchantSubscriptionCreate",
    "MerchantSubscriptionUpdate",
    "MerchantSubscriptionResponse",
    "MerchantSubscriptionStatusResponse",
    # Feature summary schemas (subscription.py)
    "FeatureSummaryResponse",
    # Limit check schemas (subscription.py)
    "LimitCheckResult",
    "FeatureCheckResponse",
    # Merchant portal schemas (subscription.py)
    "MerchantPortalSubscriptionItem",
    "MerchantPortalSubscriptionListResponse",
    "MerchantPortalSubscriptionDetailResponse",
    "MerchantPortalAvailableTiersResponse",
    "ChangeTierRequest",
    "ChangeTierResponse",
    "MerchantPortalInvoiceListResponse",
    # Subscription Tier Admin schemas (billing.py)
    "TierFeatureLimitEntry",
    "SubscriptionTierBase",
    "SubscriptionTierCreate",
    "SubscriptionTierUpdate",
    "SubscriptionTierResponse",
    "SubscriptionTierListResponse",
    # Merchant Subscription Admin schemas (billing.py)
    "MerchantSubscriptionAdminResponse",
    "MerchantSubscriptionWithMerchant",
    "MerchantSubscriptionListResponse",
    "MerchantSubscriptionAdminCreate",
    "MerchantSubscriptionAdminUpdate",
    # Merchant Feature Override schemas (billing.py)
    "MerchantFeatureOverrideEntry",
    "MerchantFeatureOverrideResponse",
    # Billing History schemas (billing.py)
    "BillingHistoryResponse",
    "BillingHistoryWithMerchant",
    "BillingHistoryListResponse",
    # Checkout & Portal schemas (billing.py)
    "CheckoutRequest",
    "CheckoutResponse",
    "PortalSessionResponse",
    "PortalResponse",
    "CancelRequest",
    "CancelResponse",
    "UpcomingInvoiceResponse",
    "BillingChangeTierRequest",
    "BillingChangeTierResponse",
    # Store subscription schemas (billing.py)
    "SubscriptionStatusResponse",
    "TierResponse",
    "TierListResponse",
    "InvoiceResponse",
    "InvoiceListResponse",
    # Store feature schemas (billing.py)
    "FeatureCodeListResponse",
    "FeatureResponse",
    "FeatureListResponse",
    "FeatureDetailResponse",
    "CategoryListResponse",
    "FeatureGroupedResponse",
    "StoreFeatureCheckResponse",
    # Stats schemas (billing.py)
    "SubscriptionStatsResponse",
    # Feature Catalog schemas (billing.py)
    "FeatureDeclarationResponse",
    "FeatureCatalogResponse",
]
