feat(billing): add missing payment methods and configurations
- Added migration to include global payment method configurations for Stripe and PayPal (both disabled). - Ensured existing payment methods like bank transfer and manual payment are correctly configured. - Added database constraints and indexes for improved data integrity in billing models. - Introduced foreign key relationship between CreditTransaction and Payment models. - Added webhook configuration fields to PaymentMethodConfig for future payment gateway integrations. - Updated SignUpFormUnified component to handle payment method selection based on user country and plan. - Implemented PaymentHistory component to display user's payment history with status indicators.
This commit is contained in:
37
backend/igny8_core/business/billing/config.py
Normal file
37
backend/igny8_core/business/billing/config.py
Normal file
@@ -0,0 +1,37 @@
|
||||
"""
|
||||
Billing configuration settings
|
||||
"""
|
||||
from django.conf import settings
|
||||
|
||||
# Payment Gateway Mode
|
||||
PAYMENT_GATEWAY_MODE = getattr(settings, 'PAYMENT_GATEWAY_MODE', 'sandbox') # 'sandbox' or 'production'
|
||||
|
||||
# Auto-approve payments (development only)
|
||||
AUTO_APPROVE_PAYMENTS = getattr(settings, 'AUTO_APPROVE_PAYMENTS', False)
|
||||
|
||||
# Invoice due date offset (days)
|
||||
INVOICE_DUE_DATE_OFFSET = getattr(settings, 'INVOICE_DUE_DATE_OFFSET', 7)
|
||||
|
||||
# Grace period for payment (days)
|
||||
PAYMENT_GRACE_PERIOD = getattr(settings, 'PAYMENT_GRACE_PERIOD', 7)
|
||||
|
||||
# Maximum payment retry attempts
|
||||
MAX_PAYMENT_RETRIES = getattr(settings, 'MAX_PAYMENT_RETRIES', 3)
|
||||
|
||||
# Subscription renewal advance notice (days)
|
||||
SUBSCRIPTION_RENEWAL_NOTICE_DAYS = getattr(settings, 'SUBSCRIPTION_RENEWAL_NOTICE_DAYS', 7)
|
||||
|
||||
# Default subscription plan slugs
|
||||
DEFAULT_PLAN_SLUGS = {
|
||||
'free': getattr(settings, 'FREE_PLAN_SLUG', 'basic-free'),
|
||||
'starter': getattr(settings, 'STARTER_PLAN_SLUG', 'starter-10'),
|
||||
'professional': getattr(settings, 'PROFESSIONAL_PLAN_SLUG', 'professional-100'),
|
||||
'enterprise': getattr(settings, 'ENTERPRISE_PLAN_SLUG', 'enterprise-unlimited'),
|
||||
}
|
||||
|
||||
# Credit package slugs
|
||||
DEFAULT_CREDIT_PACKAGES = {
|
||||
'small': getattr(settings, 'SMALL_CREDIT_PACKAGE_SLUG', 'credits-100'),
|
||||
'medium': getattr(settings, 'MEDIUM_CREDIT_PACKAGE_SLUG', 'credits-500'),
|
||||
'large': getattr(settings, 'LARGE_CREDIT_PACKAGE_SLUG', 'credits-1000'),
|
||||
}
|
||||
Reference in New Issue
Block a user