add my_role in transaction serializer

This commit is contained in:
Sayyid Hamid Mahdavi 2025-03-08 16:34:07 +03:30
parent 531ef4cfc7
commit da0efcb8a1

View file

@ -11,6 +11,7 @@ from ..users.models import User
class TransactionSerializer(serializers.ModelSerializer): class TransactionSerializer(serializers.ModelSerializer):
payee_id = serializers.UUIDField(read_only=True) payee_id = serializers.UUIDField(read_only=True)
payee_type = serializers.UUIDField(read_only=True) payee_type = serializers.UUIDField(read_only=True)
role = serializers.SerializerMethodField()
class Meta: class Meta:
model = Transaction model = Transaction
@ -27,7 +28,20 @@ class TransactionSerializer(serializers.ModelSerializer):
'details', 'details',
) )
read_only_fields = ['uuid', 'updated_at', 'state', 'created_at', 'details'] read_only_fields = ['uuid', 'updated_at', 'state', 'created_at', 'details', 'role']
def get_role(self, obj: Transaction) -> int:
request = self.context.get('request')
user = request.user
if obj.payer_id == user.id:
return 1
elif obj.payee_id == user.id:
return 2
else:
return 0
# def create(self, validated_data): # def create(self, validated_data):
# transaction = Transaction.objects.create_transaction(**validated_data) # transaction = Transaction.objects.create_transaction(**validated_data)