56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
from typing import Any, Dict, List
|
|
|
|
from sqlalchemy import text
|
|
|
|
from app.db import engine
|
|
|
|
|
|
def list_business_events(limit: int = 100) -> List[Dict[str, Any]]:
|
|
sql = text("""
|
|
SELECT
|
|
id::text,
|
|
event_type,
|
|
task_id::text,
|
|
action_run_id::text,
|
|
conversation_id,
|
|
contact_id,
|
|
payload,
|
|
created_by,
|
|
created_at
|
|
FROM business_events
|
|
ORDER BY created_at DESC
|
|
LIMIT :limit
|
|
""")
|
|
|
|
with engine.begin() as conn:
|
|
rows = conn.execute(sql, {"limit": limit}).mappings().all()
|
|
|
|
return [dict(row) for row in rows]
|
|
|
|
|
|
def list_action_runs(limit: int = 100) -> List[Dict[str, Any]]:
|
|
sql = text("""
|
|
SELECT
|
|
id::text,
|
|
conversation_id,
|
|
contact_id,
|
|
source_system,
|
|
model,
|
|
provider,
|
|
decision_source,
|
|
action_decision,
|
|
action_result,
|
|
total_tokens,
|
|
cost,
|
|
needs_review,
|
|
created_at
|
|
FROM action_runs
|
|
ORDER BY created_at DESC
|
|
LIMIT :limit
|
|
""")
|
|
|
|
with engine.begin() as conn:
|
|
rows = conn.execute(sql, {"limit": limit}).mappings().all()
|
|
|
|
return [dict(row) for row in rows]
|