Bases: Generic[TEvent]
Wrapper for events with all relevant metadata.
Returned from EventStore when loading events from a stream.
Example usage:
class OrderCancelled(Event):
order_id: OrderId
event = OrderCancelled(order_id=OrderId("#123"))
wrapped_event = WrappedEvent.wrap(event, version=1)
Source code in event_sourcery/event_store/event/dto.py
| @dataclasses.dataclass()
class WrappedEvent(Generic[TEvent]):
"""Wrapper for events with all relevant metadata.
Returned from EventStore when loading events from a stream.
Example usage:
```
class OrderCancelled(Event):
order_id: OrderId
event = OrderCancelled(order_id=OrderId("#123"))
wrapped_event = WrappedEvent.wrap(event, version=1)
```
"""
event: TEvent
version: int | None
uuid: UUID = dataclasses.field(default_factory=uuid4)
created_at: datetime = dataclasses.field(
default_factory=lambda: datetime.now(timezone.utc).replace(tzinfo=None)
)
context: Context = dataclasses.field(default_factory=Context)
@classmethod
def wrap(cls, event: TEvent, version: int | None) -> "WrappedEvent[TEvent]":
return WrappedEvent[TEvent](event=event, version=version)
|