diff --git a/deploy/db/prompts.py b/deploy/db/prompts.py index d693730..f62021d 100644 --- a/deploy/db/prompts.py +++ b/deploy/db/prompts.py @@ -2,12 +2,19 @@ from .connection import query, execute, execute_returning +def _serialize(row): + """Convert datetime fields to strings for JSON serialization.""" + if row and row.get("created_at"): + row["created_at"] = str(row["created_at"]) + return row + + def get_active(role): rows = query( "SELECT * FROM prompts WHERE role = %s AND is_active = true ORDER BY created_at DESC LIMIT 1", (role,), ) - return rows[0] if rows else None + return _serialize(rows[0]) if rows else None def get(prompt_id): @@ -40,10 +47,14 @@ def seed_defaults(): def list_by_role(role): """List all versions for a role, newest first.""" - return query( + rows = query( "SELECT id, role, name, is_active, created_by, notes, created_at FROM prompts WHERE role=%s ORDER BY created_at DESC", (role,), ) + for r in rows: + if r.get("created_at"): + r["created_at"] = str(r["created_at"]) + return rows def save_new_version(role, name, body, notes="", is_active=True):