onCommandProcessed method
Send response after successful command processing
Implementation
@override
Future<void> onCommandProcessed(Command command, List<Event> events) async {
await super.onCommandProcessed(command, events);
if (!_isInActorSystem()) return;
final sender = _capturedSenders[command.commandId];
if (sender == null) return;
for (final event in events) {
if (event is InvoicePaidEvent) {
sender.tell(InvoiceStatusMessage(
invoiceId: event.invoiceId,
status: InvoiceStatus.paid,
paidAt: event.paidAt,
txid: event.txid,
statusMessage: 'Invoice marked as paid',
));
} else if (event is InvoiceCancelledEvent) {
sender.tell(InvoiceStatusMessage(
invoiceId: event.invoiceId,
status: InvoiceStatus.cancelled,
statusMessage: 'Invoice cancelled',
));
} else if (event is InvoiceExpiredEvent) {
sender.tell(InvoiceStatusMessage(
invoiceId: event.invoiceId,
status: InvoiceStatus.expired,
statusMessage: 'Invoice expired',
));
}
}
}