eventHandler method
Apply an event to update the aggregate state This is called during both command processing and recovery
Implementation
@override
void eventHandler(Event event) {
// Ensure state is initialized before processing events
ensureStateInitialized();
if (event is! ChannelEvent) {
throw ArgumentError('Expected ChannelEvent, got ${event.runtimeType}');
}
switch (event.runtimeType) {
case ChannelRequestedEvent:
_applyChannelRequested(event as ChannelRequestedEvent);
break;
case ChannelAcceptedEvent:
_applyChannelAccepted(event as ChannelAcceptedEvent);
break;
case ChannelRejectedEvent:
_applyChannelRejected(event as ChannelRejectedEvent);
break;
case ServerAcceptanceRecordedEvent:
_applyServerAcceptanceRecorded(event as ServerAcceptanceRecordedEvent);
break;
case RefundBuiltEvent:
_applyRefundBuilt(event as RefundBuiltEvent);
break;
case RefundCountersignedEvent:
_applyRefundCountersigned(event as RefundCountersignedEvent);
break;
case ChannelOpenedEvent:
_applyChannelOpened(event as ChannelOpenedEvent);
break;
case PaymentRecordedEvent:
_applyPaymentRecorded(event as PaymentRecordedEvent);
break;
case PaymentAcknowledgedEvent:
_applyPaymentAcknowledged(event as PaymentAcknowledgedEvent);
break;
case ChannelClosingEvent:
_applyChannelClosing(event as ChannelClosingEvent);
break;
case ChannelClosedEvent:
_applyChannelClosed(event as ChannelClosedEvent);
break;
case RefundClaimedEvent:
_applyRefundClaimed(event as RefundClaimedEvent);
break;
default:
throw ArgumentError('Unknown event type: ${event.runtimeType}');
}
}