28 lines
768 B
Python
28 lines
768 B
Python
from __future__ import annotations
|
|
|
|
from review_agent.application_form_fill.constants import WORKFLOW_TYPE
|
|
from review_agent.models import ApplicationFormFillBatch, WorkflowEvent
|
|
|
|
|
|
def record_event(
|
|
batch: ApplicationFormFillBatch,
|
|
event_type: str,
|
|
payload: dict | None = None,
|
|
) -> WorkflowEvent:
|
|
return WorkflowEvent.objects.create(
|
|
workflow_type=WORKFLOW_TYPE,
|
|
workflow_batch_id=batch.pk,
|
|
conversation=batch.conversation,
|
|
event_type=event_type,
|
|
payload=payload or {},
|
|
)
|
|
|
|
|
|
def serialize_event(event: WorkflowEvent) -> dict[str, object]:
|
|
return {
|
|
"id": event.pk,
|
|
"event_type": event.event_type,
|
|
"payload": event.payload,
|
|
"created_at": event.created_at.isoformat(),
|
|
}
|