Files
goodtimes/manage_wallets/api/serializers.py
rizwanisready 97255b2a60 transactions
2024-03-10 23:27:22 +05:30

67 lines
2.3 KiB
Python

from rest_framework import serializers
from accounts.models import IAmPrincipal, IAmPrincipalType
from goodtimes import constants
from manage_wallets import models
class WalletSerializer(serializers.ModelSerializer):
class Meta:
model = models.Wallet
fields = [
"balance",
"deposit",
"earnings",
"coins",
"withdrawal_balance",
]
class TransactionSerializer(serializers.ModelSerializer):
class Meta:
model = models.Transaction
fields = [
'id',
'principal',
'principal_subscription',
'transaction_type',
'payment_method',
'transaction_status',
'amount',
'comment',
'order_id',
'product_id',
'reference_id',
]
extra_kwargs = {
'principal': {'read_only': True},
'order_id': {'required': False},
'product_id': {'required': False},
'reference_id': {'required': False},
}
def to_representation(self, instance):
# Customize the representation of the serializer, if necessary
representation = super().to_representation(instance)
# For example, to display a human-readable version of the transaction type:
representation['transaction_type_display'] = instance.get_transaction_type_display()
representation['payment_method_display'] = instance.get_payment_method_display()
representation['transaction_status_display'] = instance.get_transaction_status_display()
return representation
class MerchantDepositSerializer(serializers.Serializer):
principal_type = serializers.CharField()
field = serializers.ChoiceField(
choices=[
("player_balance", "Player Balance"),
("merchant_balance", "Merchant Balance"),
("player_deposit", "Player Deposit"),
("merchant_deposit", "Merchant Deposit"),
("player_bonus", "Player Bonus"),
("merchant_bonus", "Merchant Bonus"),
("player_winning", "Player Winning"),
("merchant_commission", "Merchant Commission"),
]
)
amount = serializers.DecimalField(max_digits=14, decimal_places=2)