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", ]