infrasynth-backend-kit/infrasynth/scheduler/serializers.py
2026-08-28 14:38:47 -05:00

44 lines
1.1 KiB
Python

from rest_framework import serializers
from .models import ScheduledTask, TaskExecution
class ScheduledTaskSerializer(serializers.ModelSerializer):
class Meta:
model = ScheduledTask
fields = [
"id",
"name",
"task_path",
"schedule_type",
"schedule_config",
"args",
"kwargs",
"is_active",
"queue",
"priority",
]
read_only_fields = ["id"]
class TaskExecutionSerializer(serializers.ModelSerializer):
task_info = serializers.SerializerMethodField()
class Meta:
model = TaskExecution
fields = [
"id",
"task",
"task_info",
"celery_task_id",
"status",
"started_at",
"completed_at",
"result",
"error_traceback",
"worker_hostname",
]
read_only_fields = ["id", "started_at", "completed_at"]
def get_task_info(self, obj):
return {"id": obj.task_id, "name": obj.task.name}