- Introduced a new scheduled task for executing automation rules every 5 minutes in the Celery beat schedule. - Updated URL routing to include a new endpoint for automation-related functionalities. - Refactored imports in various modules to align with the new business layer structure, ensuring backward compatibility for billing models, exceptions, and services.
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""
|
|
Serializers for Automation Models
|
|
"""
|
|
from rest_framework import serializers
|
|
from igny8_core.business.automation.models import AutomationRule, ScheduledTask
|
|
|
|
|
|
class AutomationRuleSerializer(serializers.ModelSerializer):
|
|
"""Serializer for AutomationRule model"""
|
|
|
|
class Meta:
|
|
model = AutomationRule
|
|
fields = [
|
|
'id', 'name', 'description', 'trigger', 'schedule',
|
|
'conditions', 'actions', 'is_active', 'status',
|
|
'last_executed_at', 'execution_count',
|
|
'metadata', 'created_at', 'updated_at',
|
|
'account', 'site', 'sector'
|
|
]
|
|
read_only_fields = ['id', 'created_at', 'updated_at', 'last_executed_at', 'execution_count']
|
|
|
|
|
|
class ScheduledTaskSerializer(serializers.ModelSerializer):
|
|
"""Serializer for ScheduledTask model"""
|
|
automation_rule_name = serializers.CharField(source='automation_rule.name', read_only=True)
|
|
|
|
class Meta:
|
|
model = ScheduledTask
|
|
fields = [
|
|
'id', 'automation_rule', 'automation_rule_name',
|
|
'scheduled_at', 'executed_at', 'status',
|
|
'result', 'error_message', 'metadata',
|
|
'created_at', 'updated_at', 'account'
|
|
]
|
|
read_only_fields = ['id', 'created_at', 'updated_at', 'executed_at']
|
|
|