Skip to content

Commit 34da0fb

Browse files
committed
fix(examples): persist media-buy list fields
1 parent d15d364 commit 34da0fb

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

examples/seller_agent.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,10 +619,12 @@ async def create_media_buy(self, params: dict[str, Any], context: Any = None) ->
619619
status = "active" if has_creatives else "pending_creatives"
620620

621621
mb_id = f"mb-{uuid.uuid4().hex[:8]}"
622+
confirmed_at = _now_z()
622623
media_buys[mb_id] = {
623624
"status": status,
624625
"currency": "USD",
625626
"packages": packages,
627+
"confirmed_at": confirmed_at,
626628
"revision": 1,
627629
}
628630
# Pull valid_actions from the SDK's authoritative state machine —
@@ -631,6 +633,8 @@ async def create_media_buy(self, params: dict[str, Any], context: Any = None) ->
631633
mb_id,
632634
packages,
633635
status=status,
636+
revision=1,
637+
confirmed_at=confirmed_at,
634638
valid_actions=valid_actions_for_status(status) or None,
635639
)
636640

@@ -645,6 +649,8 @@ async def get_media_buys(self, params: dict[str, Any], context: Any = None) -> d
645649
{
646650
"media_buy_id": mb_id,
647651
"status": mb["status"],
652+
"confirmed_at": mb.get("confirmed_at") or _now_z(),
653+
"revision": mb.get("revision", 1),
648654
"currency": mb.get("currency", "USD"),
649655
"packages": mb.get("packages", []),
650656
"total_budget": total_budget,
@@ -710,7 +716,8 @@ async def update_media_buy(self, params: dict[str, Any], context: Any = None) ->
710716
if status in ("completed", "rejected", "canceled"):
711717
return adcp_error("NOT_CANCELLABLE", f"Cannot cancel a {status} media buy")
712718
mb["status"] = "canceled"
713-
return cancel_media_buy_response(mb_id, "buyer")
719+
mb["revision"] = mb.get("revision", 1) + 1
720+
return cancel_media_buy_response(mb_id, "buyer", revision=mb["revision"])
714721

715722
mb["revision"] = mb.get("revision", 1) + 1
716723
return update_media_buy_response(
@@ -797,6 +804,7 @@ async def sync_creatives(self, params: dict[str, Any], context: Any = None) -> d
797804
if mb.get("status") == "pending_creatives":
798805
mb["status"] = "pending_start"
799806
mb["revision"] = mb.get("revision", 1) + 1
807+
mb.setdefault("confirmed_at", _now_z())
800808
return sync_creatives_response(results)
801809

802810
async def list_creatives(self, params: dict[str, Any], context: Any = None) -> dict[str, Any]:
@@ -1138,6 +1146,8 @@ async def seed_media_buy(
11381146
data.setdefault("status", "active")
11391147
data.setdefault("currency", "USD")
11401148
data.setdefault("packages", [])
1149+
data.setdefault("confirmed_at", _now_z())
1150+
data.setdefault("revision", 1)
11411151
media_buys[mb_id] = data
11421152
return {"media_buy_id": mb_id}
11431153

0 commit comments

Comments
 (0)