payemnt billing and credits refactoring

This commit is contained in:
IGNY8 VPS (Salman)
2026-01-20 07:39:51 +00:00
parent a97c72640a
commit bc50b022f1
34 changed files with 3028 additions and 307 deletions

View File

@@ -41,6 +41,11 @@ class AccountSerializer(serializers.ModelSerializer):
plan = PlanSerializer(read_only=True)
plan_id = serializers.PrimaryKeyRelatedField(queryset=Plan.objects.filter(is_active=True), write_only=True, source='plan', required=False)
subscription = SubscriptionSerializer(read_only=True, allow_null=True)
total_credits = serializers.SerializerMethodField()
def get_total_credits(self, obj):
"""Return total available credits (plan + bonus)."""
return obj.credits + obj.bonus_credits
def validate_plan_id(self, value):
"""Validate plan_id is provided during creation."""
@@ -52,7 +57,7 @@ class AccountSerializer(serializers.ModelSerializer):
model = Account
fields = [
'id', 'name', 'slug', 'owner', 'plan', 'plan_id',
'credits', 'status', 'payment_method',
'credits', 'bonus_credits', 'total_credits', 'status', 'payment_method',
'subscription', 'billing_country',
'account_timezone', 'timezone_mode', 'timezone_offset',
'created_at'