71 lines
2.2 KiB
Python
71 lines
2.2 KiB
Python
from rest_framework import serializers
|
|
|
|
from apps.payments.models import Order
|
|
|
|
|
|
class CheckoutResponseSerializer(serializers.Serializer):
|
|
order_id = serializers.IntegerField()
|
|
redirect_url = serializers.URLField()
|
|
amount_toman = serializers.IntegerField()
|
|
gateway = serializers.CharField()
|
|
|
|
|
|
class OrderSerializer(serializers.ModelSerializer):
|
|
course_id = serializers.IntegerField(read_only=True)
|
|
course_slug = serializers.CharField(source="course.slug", read_only=True)
|
|
course_title = serializers.CharField(source="course.title", read_only=True)
|
|
promo_code = serializers.CharField(source="promo_code.code", read_only=True, allow_null=True)
|
|
referrer_code = serializers.CharField(source="referrer.referral_code", read_only=True, allow_null=True)
|
|
|
|
class Meta:
|
|
model = Order
|
|
fields = [
|
|
"id",
|
|
"course_id",
|
|
"course_slug",
|
|
"course_title",
|
|
"base_amount_toman",
|
|
"discount_amount_toman",
|
|
"amount_toman",
|
|
"ilo_fee_toman",
|
|
"instructor_share_toman",
|
|
"commission_percent_snapshot",
|
|
"gateway",
|
|
"ref_id",
|
|
"status",
|
|
"created_at",
|
|
"paid_at",
|
|
"failed_at",
|
|
"last_error",
|
|
"promo_code",
|
|
"referrer_code",
|
|
]
|
|
read_only_fields = fields
|
|
|
|
|
|
class InstructorSaleSerializer(serializers.ModelSerializer):
|
|
"""Sale entry shown in the instructor's revenue / orders panel."""
|
|
|
|
course_id = serializers.IntegerField(read_only=True)
|
|
course_title = serializers.CharField(source="course.title", read_only=True)
|
|
student_id = serializers.IntegerField(source="student.id", read_only=True)
|
|
student_name = serializers.CharField(source="student.full_name", read_only=True)
|
|
|
|
class Meta:
|
|
model = Order
|
|
fields = [
|
|
"id",
|
|
"course_id",
|
|
"course_title",
|
|
"student_id",
|
|
"student_name",
|
|
"amount_toman",
|
|
"ilo_fee_toman",
|
|
"instructor_share_toman",
|
|
"commission_percent_snapshot",
|
|
"status",
|
|
"created_at",
|
|
"paid_at",
|
|
]
|
|
read_only_fields = fields
|