31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
|
|
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)
|