Files
central-task/tasks/serializers.py

31 lines
1.2 KiB
Python
Raw Normal View History

2025-12-05 13:45:16 +08:00
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)