from rest_framework import serializers from .models import Ticket from apps.accounts.serializers import UserSerializer class TicketSerializer(serializers.ModelSerializer): user = UserSerializer(read_only=True) class Meta: model = Ticket fields = [ "id", "user", "subject", "message", "email", "status", "created_at", "updated_at", ] read_only_fields = ["id", "status", "created_at", "updated_at", "user"] def validate(self, data): # Ensure email is provided if user is anonymous request = self.context.get('request') if request and not request.user.is_authenticated and not data.get('email'): raise serializers.ValidationError({"email": "Email is required for guests."}) return data