# 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 (
        SubscriptionCreate,
        SubscriptionResponse,
        TierInfo,
    )
"""

from app.modules.billing.schemas.subscription import (
    # Tier schemas
    TierFeatures,
    TierLimits,
    TierInfo,
    # Subscription CRUD schemas
    SubscriptionCreate,
    SubscriptionUpdate,
    SubscriptionResponse,
    # Usage schemas
    SubscriptionUsage,
    UsageSummary,
    SubscriptionStatusResponse,
    # Limit check schemas
    LimitCheckResult,
    CanCreateOrderResponse,
    CanAddProductResponse,
    CanAddTeamMemberResponse,
    FeatureCheckResponse,
)
from app.modules.billing.schemas.billing import (
    # Subscription Tier Admin schemas
    SubscriptionTierBase,
    SubscriptionTierCreate,
    SubscriptionTierUpdate,
    SubscriptionTierResponse,
    SubscriptionTierListResponse,
    # Vendor Subscription schemas
    VendorSubscriptionResponse,
    VendorSubscriptionWithVendor,
    VendorSubscriptionListResponse,
    VendorSubscriptionCreate,
    VendorSubscriptionUpdate,
    # Billing History schemas
    BillingHistoryResponse,
    BillingHistoryWithVendor,
    BillingHistoryListResponse,
    # Checkout & Portal schemas
    CheckoutRequest,
    CheckoutResponse,
    PortalSessionResponse,
    # Stats schemas
    SubscriptionStatsResponse,
)

__all__ = [
    # Tier schemas (subscription.py)
    "TierFeatures",
    "TierLimits",
    "TierInfo",
    # Subscription CRUD schemas (subscription.py)
    "SubscriptionCreate",
    "SubscriptionUpdate",
    "SubscriptionResponse",
    # Usage schemas (subscription.py)
    "SubscriptionUsage",
    "UsageSummary",
    "SubscriptionStatusResponse",
    # Limit check schemas (subscription.py)
    "LimitCheckResult",
    "CanCreateOrderResponse",
    "CanAddProductResponse",
    "CanAddTeamMemberResponse",
    "FeatureCheckResponse",
    # Subscription Tier Admin schemas (billing.py)
    "SubscriptionTierBase",
    "SubscriptionTierCreate",
    "SubscriptionTierUpdate",
    "SubscriptionTierResponse",
    "SubscriptionTierListResponse",
    # Vendor Subscription schemas (billing.py)
    "VendorSubscriptionResponse",
    "VendorSubscriptionWithVendor",
    "VendorSubscriptionListResponse",
    "VendorSubscriptionCreate",
    "VendorSubscriptionUpdate",
    # Billing History schemas (billing.py)
    "BillingHistoryResponse",
    "BillingHistoryWithVendor",
    "BillingHistoryListResponse",
    # Checkout & Portal schemas (billing.py)
    "CheckoutRequest",
    "CheckoutResponse",
    "PortalSessionResponse",
    # Stats schemas (billing.py)
    "SubscriptionStatsResponse",
]
