from rest_framework import serializers from .models import Ticket, Message, Attachment from django.utils.timezone import localtime from account.serializers import ProfileSerializer class MessageSerializer(serializers.ModelSerializer): class Meta: model = Message fields = '__all__' class TicketSerializer(serializers.ModelSerializer): messages = MessageSerializer(many=True, read_only=True) admin = ProfileSerializer(read_only=True) class Meta: model = Ticket exclude = ('customer', ) read_only_fields = ('status', 'admin', ) class TicketListSerializer(serializers.ModelSerializer): class Meta: model = Ticket exclude = ('customer', 'admin', 'order', 'content') read_only_fields = ('status',) class AttachmentSerializer(serializers.ModelSerializer): file = serializers.FileField(write_only=True) link = serializers.SerializerMethodField() class Meta: model = Attachment fields = ['id', 'name', 'file','link' , 'created_at', 'size'] read_only_fields = ('size', 'name', ) def get_link(self, obj): request = self.context.get('request') if request is not None: return request.build_absolute_uri(obj.file.url) return obj.file.url