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}