Create app/modules/billing/ directory structure with:
- definition.py: Module definition with features and menu items
- routes/admin.py: Admin billing routes with module access control
- routes/vendor.py: Vendor billing routes with module access control
Key changes:
- Billing module uses require_module_access("billing") dependency
- Admin router now includes billing module router instead of legacy
- Module registry imports billing_module from extracted location
- Routes have identical functionality but are now module-gated
Module structure pattern for future extractions:
app/modules/{module}/
├── __init__.py
├── definition.py (ModuleDefinition + router getters)
└── routes/
├── __init__.py
├── admin.py (require_module_access dependency)
└── vendor.py (require_module_access dependency)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
23 lines
502 B
Python
23 lines
502 B
Python
# app/modules/billing/__init__.py
|
|
"""
|
|
Billing Module - Subscription and payment management.
|
|
|
|
This module provides:
|
|
- Subscription tier management
|
|
- Vendor subscription CRUD
|
|
- Billing history and invoices
|
|
- Stripe integration
|
|
|
|
Routes:
|
|
- Admin: /api/v1/admin/subscriptions/*
|
|
- Vendor: /api/v1/vendor/billing/*
|
|
|
|
Menu Items:
|
|
- Admin: subscription-tiers, subscriptions, billing-history
|
|
- Vendor: billing, invoices
|
|
"""
|
|
|
|
from app.modules.billing.definition import billing_module
|
|
|
|
__all__ = ["billing_module"]
|