from rest_framework import serializers from .models import Client, Task, TaskResult class ClientSerializer(serializers.ModelSerializer): class Meta: model = Client fields = ['id', 'name', 'token', 'last_seen', 'created_at'] read_only_fields = ['token', 'last_seen', 'created_at'] class TaskSerializer(serializers.ModelSerializer): class Meta: model = Task fields = ['id', 'name', 'client_name', 'script', 'status', 'timeout_seconds', 'created_at', 'updated_at', 'assigned_to', 'started_at', 'completed_at'] read_only_fields = ['created_at', 'updated_at', 'assigned_to', 'started_at', 'completed_at'] class TaskResultSerializer(serializers.ModelSerializer): class Meta: model = TaskResult fields = ['id', 'task', 'client', 'result_file', 'status', 'message', 'created_at'] read_only_fields = ['created_at'] class TaskClaimSerializer(serializers.Serializer): client_name = serializers.CharField(max_length=100) class TaskStartSerializer(serializers.Serializer): pass class TaskCompleteSerializer(serializers.Serializer): status = serializers.ChoiceField(choices=[('success', '成功'), ('failed', '失败')]) message = serializers.CharField(allow_blank=True, required=False)