from rest_framework import serializers from .models import MailSender, MailEmail class MailSenderSerializer(serializers.ModelSerializer): type = serializers.SerializerMethodField() class Meta: model = MailSender fields = ['id', 'type', 'email', 'domain', 'rule', 'note', 'created_at'] def get_type(self, obj): return 'address' if obj.email else 'domain' def validate(self, data): email = data.get('email') domain = data.get('domain') if not email and not domain: raise serializers.ValidationError("email または domain のどちらかを指定してください") if email and domain: raise serializers.ValidationError("email と domain を同時に指定することはできません") return data class MailEmailCreateSerializer(serializers.ModelSerializer): """Windmill からの POST 用""" class Meta: model = MailEmail fields = [ 'account', 'message_id', 'sender_email', 'sender_domain', 'subject', 'body_preview', 'received_at', 'llm_verdict' ] class FeedbackDetailSerializer(serializers.ModelSerializer): """フィードバックページ表示用""" class Meta: model = MailEmail fields = [ 'id', 'sender_email', 'sender_domain', 'subject', 'body_preview', 'received_at', 'feedback' ]