55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import re
|
|
|
|
from django.contrib.auth.hashers import make_password
|
|
from rest_framework import serializers
|
|
|
|
from accounts.models import (
|
|
IAmPrincipal,
|
|
IAmPrincipalType,
|
|
# IAmPrincipalKYCDetails,
|
|
)
|
|
from manage_referrals.models import (
|
|
ReferralCode,
|
|
ReferralRecord,
|
|
ReferralRecordReward,
|
|
)
|
|
from goodtimes import constants, date_utils
|
|
|
|
|
|
class ReferralCodeSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ReferralCode
|
|
fields = ["referral_code"]
|
|
|
|
|
|
class ReferralRecordSerializer(serializers.ModelSerializer):
|
|
name = serializers.SerializerMethodField()
|
|
join_at = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = ReferralRecord
|
|
fields = ["name", "join_at"]
|
|
|
|
def get_name(self, obj):
|
|
# Check if the referred_principal is set (not None) and get the full name
|
|
if obj.referred_principal:
|
|
return obj.referred_principal.get_full_name()
|
|
return None
|
|
|
|
def get_join_at(self, obj):
|
|
return date_utils.format_date_to_string(obj.created_on)
|
|
|
|
|
|
class ReferralRecordRewardSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ReferralRecordReward
|
|
fields = [
|
|
"referral_record",
|
|
"subscription",
|
|
"sell",
|
|
"coins",
|
|
"unique_token",
|
|
"value",
|
|
"created_on",
|
|
]
|