|
|
|
|
@ -46,8 +46,30 @@ class AuthorBalanceCreateSerializer(serializers.ModelSerializer): |
|
|
|
|
return AuthorBalanceSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
user = UserSerializer() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = Payment |
|
|
|
|
fields = BASE_PAYMENT_FIELDS |
|
|
|
|
read_only_fields = ( |
|
|
|
|
'id', |
|
|
|
|
'user', |
|
|
|
|
'created_at', |
|
|
|
|
'update_at', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
def to_representation(self, instance): |
|
|
|
|
if isinstance(instance, CoursePayment): |
|
|
|
|
return CoursePaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
elif isinstance(instance, SchoolPayment): |
|
|
|
|
return SchoolPaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AuthorBalanceSerializer(serializers.ModelSerializer): |
|
|
|
|
author = UserSerializer() |
|
|
|
|
# payment = PaymentSerializer() |
|
|
|
|
payment = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = AuthorBalance |
|
|
|
|
@ -70,25 +92,23 @@ class AuthorBalanceSerializer(serializers.ModelSerializer): |
|
|
|
|
'payment', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
user = UserSerializer() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = Payment |
|
|
|
|
fields = BASE_PAYMENT_FIELDS |
|
|
|
|
read_only_fields = ( |
|
|
|
|
'id', |
|
|
|
|
'user', |
|
|
|
|
'created_at', |
|
|
|
|
'update_at', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
def to_representation(self, instance): |
|
|
|
|
if isinstance(instance, CoursePayment): |
|
|
|
|
return CoursePaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
elif isinstance(instance, SchoolPayment): |
|
|
|
|
return SchoolPaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
def get_payment(self, instance): |
|
|
|
|
try: |
|
|
|
|
p = instance.payment |
|
|
|
|
except Exception: |
|
|
|
|
return None |
|
|
|
|
data = { |
|
|
|
|
'id': p.id, |
|
|
|
|
'created_at': p.created_at, |
|
|
|
|
'amount': p.amount, |
|
|
|
|
'data': p.data, |
|
|
|
|
} |
|
|
|
|
if isinstance(instance.payment, CoursePayment): |
|
|
|
|
data['course'] = { |
|
|
|
|
'id': p.course.id, |
|
|
|
|
'title': p.course.title, |
|
|
|
|
} |
|
|
|
|
return data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CoursePaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
|