# app/modules/payments/__init__.py
"""
Payments Module - Payment gateway integrations.

This module provides low-level payment gateway abstractions:
- Gateway integrations (Stripe, PayPal, Bank Transfer, etc.)
- Payment processing and refunds
- Payment method storage and management
- Transaction records

This module is used by:
- billing: Platform subscriptions and store invoices
- orders: Customer checkout and order payments

Routes:
- Admin: /api/v1/admin/payments/*
- Store: /api/v1/store/payments/*

Menu Items:
- Admin: payments (payment configuration)
- Store: payment-methods (stored payment methods)
"""

# Lazy imports to avoid circular dependencies

__all__ = ["payments_module", "get_payments_module"]


def get_payments_module():
    """Lazy getter to avoid circular imports."""
    from app.modules.payments.definition import payments_module
    return payments_module


def __getattr__(name: str):
    """Lazy import to avoid circular dependencies."""
    if name == "payments_module":
        from app.modules.payments.definition import payments_module
        return payments_module
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
