@@ -254,6 +254,7 @@ class _SessionDocument(TypedDict, total=False):
254
254
title : Optional [str ]
255
255
consumption_offsets : Mapping [ConsumerId , int ]
256
256
created_at : datetime
257
+ metadata : Optional [Mapping [str , JSONSerializable ]]
257
258
258
259
259
260
@dataclass (frozen = True )
@@ -305,6 +306,7 @@ def _serialize_session(
305
306
title = session .title ,
306
307
consumption_offsets = session .consumption_offsets ,
307
308
created_at = session .created_at ,
309
+ metadata = session .metadata ,
308
310
)
309
311
310
312
def _deserialize_session (
@@ -319,6 +321,7 @@ def _deserialize_session(
319
321
title = doc .get ("title" ),
320
322
consumption_offsets = doc ["consumption_offsets" ],
321
323
created_at = doc ["created_at" ],
324
+ metadata = doc .get ("metadata" , None ),
322
325
)
323
326
324
327
def _serialize_event (
@@ -364,6 +367,7 @@ async def create_session(
364
367
id : Optional [SessionId ] = None ,
365
368
mode : Optional [SessionMode ] = None ,
366
369
title : Optional [str ] = None ,
370
+ metadata : Optional [Mapping [str , JSONSerializable ]] = None ,
367
371
created_at : Optional [datetime ] = None ,
368
372
) -> Session :
369
373
created_at = created_at or datetime .now (timezone .utc )
@@ -376,6 +380,7 @@ async def create_session(
376
380
title = title ,
377
381
consumption_offsets = consumption_offsets ,
378
382
created_at = created_at ,
383
+ metadata = metadata ,
379
384
)
380
385
await self ._session_col .insert_one (document = self ._serialize_session (session ))
381
386
return session
0 commit comments