from sqlalchemy.ext.asyncio import AsyncSession from app.core.contracts import DomainEvent from app.model.platform import DomainEventOutbox class OutboxRepository: def __init__(self, session: AsyncSession) -> None: self.session = session async def append(self, event: DomainEvent) -> None: self.session.add(DomainEventOutbox( event_id=event.event_id, event_type=event.event_type, aggregate_type=event.aggregate_type, aggregate_id=event.aggregate_id, trace_id=event.trace_id, payload=event.payload, occurred_at=event.occurred_at, created_at=event.occurred_at, updated_at=event.occurred_at, ))