# app/modules/billing/models/__init__.py
"""
Billing module database models.

This is the canonical location for billing models. Module models are automatically
discovered and registered with SQLAlchemy's Base.metadata at startup.

Usage:
    from app.modules.billing.models import (
        MerchantSubscription,
        SubscriptionTier,
        SubscriptionStatus,
        TierCode,
        TierFeatureLimit,
        MerchantFeatureOverride,
    )
"""

from app.modules.billing.models.merchant_subscription import MerchantSubscription
from app.modules.billing.models.subscription import (
    AddOnCategory,
    AddOnProduct,
    BillingHistory,
    BillingPeriod,
    StoreAddOn,
    StripeWebhookEvent,
    SubscriptionStatus,
    SubscriptionTier,
    TierCode,
)
from app.modules.billing.models.tier_feature_limit import (
    MerchantFeatureOverride,
    TierFeatureLimit,
)

__all__ = [
    # Subscription Enums
    "TierCode",
    "SubscriptionStatus",
    "AddOnCategory",
    "BillingPeriod",
    # Subscription Models
    "SubscriptionTier",
    "AddOnProduct",
    "StoreAddOn",
    "StripeWebhookEvent",
    "BillingHistory",
    # Merchant Subscription
    "MerchantSubscription",
    # Feature Limits
    "TierFeatureLimit",
    "MerchantFeatureOverride",
]
