24 lines
781 B
TypeScript
24 lines
781 B
TypeScript
import { type PaymentType } from '@prisma/client';
|
|
import { type DomainEvent } from '@modules/shared';
|
|
|
|
/**
|
|
* Emitted when an admin manually confirms a VN bank transfer payment.
|
|
*
|
|
* Carries enough metadata for downstream consumers (audit logging,
|
|
* subscription activation, accounting) without requiring a re-read
|
|
* of the payment aggregate.
|
|
*/
|
|
export class BankTransferConfirmedEvent implements DomainEvent {
|
|
readonly eventName = 'payment.bank_transfer_confirmed';
|
|
readonly occurredAt = new Date();
|
|
|
|
constructor(
|
|
public readonly aggregateId: string,
|
|
public readonly userId: string,
|
|
public readonly type: PaymentType,
|
|
public readonly amountVND: bigint,
|
|
public readonly confirmedBy: string,
|
|
public readonly bankReference: string | null,
|
|
) {}
|
|
}
|