2026-02-09 15:49:50 +05:30
|
|
|
"""Utilities for recording normalized activity events."""
|
|
|
|
|
|
2026-02-04 03:57:19 +05:30
|
|
|
from __future__ import annotations
|
|
|
|
|
|
2026-02-09 15:49:50 +05:30
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
|
|
|
from uuid import UUID
|
2026-02-04 03:57:19 +05:30
|
|
|
|
2026-02-09 15:49:50 +05:30
|
|
|
from sqlmodel.ext.asyncio.session import AsyncSession
|
2026-02-04 03:57:19 +05:30
|
|
|
|
|
|
|
|
from app.models.activity_events import ActivityEvent
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def record_activity(
|
2026-02-06 16:12:04 +05:30
|
|
|
session: AsyncSession,
|
2026-02-04 03:57:19 +05:30
|
|
|
*,
|
|
|
|
|
event_type: str,
|
|
|
|
|
message: str,
|
|
|
|
|
agent_id: UUID | None = None,
|
|
|
|
|
task_id: UUID | None = None,
|
2026-03-04 16:01:56 +05:30
|
|
|
board_id: UUID | None = None,
|
2026-02-04 03:57:19 +05:30
|
|
|
) -> ActivityEvent:
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Create and attach an activity event row to the current DB session."""
|
2026-02-04 03:57:19 +05:30
|
|
|
event = ActivityEvent(
|
|
|
|
|
event_type=event_type,
|
|
|
|
|
message=message,
|
|
|
|
|
agent_id=agent_id,
|
|
|
|
|
task_id=task_id,
|
2026-03-04 16:01:56 +05:30
|
|
|
board_id=board_id,
|
2026-02-04 03:57:19 +05:30
|
|
|
)
|
|
|
|
|
session.add(event)
|
|
|
|
|
return event
|