40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from django.db import transaction
|
|
|
|
from rest_framework import serializers
|
|
|
|
from core.apps.finance.models import IncomeMessage
|
|
|
|
|
|
class IncomeMessageListSerializer(serializers.ModelSerializer):
|
|
user = serializers.SerializerMethodField(method_name='get_user')
|
|
|
|
class Meta:
|
|
model = IncomeMessage
|
|
fields = [
|
|
'id', 'user', 'message', 'file', 'created_at'
|
|
]
|
|
|
|
def get_user(self, obj):
|
|
return {
|
|
'id': obj.user.id,
|
|
'full_name': obj.user.full_name,
|
|
'profile_image': obj.user.profile_image.url if obj.user.profile_image else None,
|
|
}
|
|
|
|
|
|
class IncomeMessageCreateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = IncomeMessage
|
|
fields = [
|
|
'message', 'file', 'chat'
|
|
]
|
|
|
|
def create(self, validated_data):
|
|
with transaction.atomic():
|
|
return IncomeMessage.objects.create(
|
|
message=validated_data.get('message'),
|
|
file=validated_data.get('file'),
|
|
user=self.context.get('user'),
|
|
chat=validated_data.get('chat'),
|
|
)
|
|
|