InvoiceStatusChangedEvent class
Event fired when invoice status changes.
Nothing in lib/ emits this event (reachability sweep 2026-09-18,
section 2). Every status transition the aggregate performs today is
journaled as the specific event for it — InvoicePaidEvent,
InvoiceExpiredEvent, InvoiceCancelledEvent — each of which carries the
fields that transition needs. This generic one carries only
oldStatus/newStatus, so it cannot replace any of them.
Both InvoiceAggregate.applyEvent and InvoiceProjection.handle still
carry an arm for it, deliberately: see the comment at each arm.
DO NOT DELETE THIS CLASS. It is deprecated, not dead. It is registered
for replay in LibSpiffyActorSystem under the stable type name
invoice.status_changed, and a journal written by an earlier release may
already contain events with that name. A journal is permanent and its
contents are never rewritten, so deleting the class (or its fromMap, or
its registration, or either handler arm) would make such a journal
unreplayable — which the data-retention rule in spv-understanding.md
forbids outright. The deprecation marks it as "do not emit anything new";
it says nothing about removability.
- Inheritance
-
- Object
- InvoiceEvent
- InvoiceStatusChangedEvent
- Annotations
-
- @Deprecated('Nothing emits this event; journal the specific transition instead ' '(InvoicePaidEvent, InvoiceExpiredEvent, InvoiceCancelledEvent). The ' 'class MUST be kept: it is registered for replay as ' 'invoice.status_changed and a journal written by an earlier release may ' 'contain it, so deleting the class would make that journal unreplayable. ' 'Not scheduled for removal.')
Constructors
-
InvoiceStatusChangedEvent({required String invoiceId, required String walletId, required InvoiceStatus oldStatus, required InvoiceStatus newStatus, String? reason, String? eventId, DateTime? timestamp, int? version, Map<
String, dynamic> ? metadata})
Properties
- aggregateId → String
-
The ID of the aggregate this event belongs to
no setterinherited
- aggregateType → String
-
The type of aggregate this event belongs to
no setterinherited
- correlationId → String
-
The correlation ID of the message.
no setterinherited
- eventId → String
-
Unique identifier for this event
Used for deduplication and correlation
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- invoiceId → String
-
finalinherited
-
metadata
→ Map<
String, dynamic> -
Additional metadata for the event
Can include correlation IDs, causation IDs, user context, etc.
no setterinherited
- newStatus → InvoiceStatus
-
final
- oldStatus → InvoiceStatus
-
final
-
persistableMetadata
→ Map<
String, dynamic> -
metadataas it is persisted: transientActorRefentries removed.no setterinherited - reason → String?
-
final
- replyTo → ActorRef?
-
The actor to reply to, if a live
ActorRefwas placed inmetadata['replyTo'].no setterinherited - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- timestamp → DateTime
-
Timestamp when the event occurred
no setterinherited
- typeName → String
-
Stable identity of this event type in storage.
no setter
- version → int
-
Version/sequence number of this event within its aggregate
Used for ordering and optimistic concurrency control
no setterinherited
- walletId → String
-
finalinherited
Methods
-
getEventData(
) → Map< String, dynamic> -
Implementation of SerializableEvent.getEventData
inherited
-
getInvoiceEventData(
) → Map< String, dynamic> -
Get event-specific data for serialization
override
-
getValidationErrors(
) → List< String> -
Get validation errors
Override in subclasses to provide specific error messages
inherited
-
isValid(
) → bool -
Validate the event
Override in subclasses for custom validation
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toCbor(
) → List< int> -
Serialize event to CBOR bytes
inherited
-
toMap(
) → Map< String, dynamic> -
Convert event to a map for serialization
Override in subclasses to include event-specific data
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
fromMap(
Map< String, dynamic> map) → InvoiceStatusChangedEvent - Create event from a map during deserialization This is a factory method that should be implemented by concrete event classes
Constants
- stableTypeName → const String
- Journal identifier of this event type. Stored with every event and independent of the class name; never change it (audit 2026-09-14 M8).