33 lines
675 B
TypeScript
33 lines
675 B
TypeScript
import { DomainEvent } from './domain-event.base';
|
|
|
|
export interface RewardSettledPayload {
|
|
entryId: string;
|
|
userId: string;
|
|
usdtAmount: number;
|
|
hashpowerAmount: number;
|
|
settleCurrency: string;
|
|
receivedAmount: number;
|
|
}
|
|
|
|
export class RewardSettledEvent extends DomainEvent {
|
|
constructor(private readonly payload: RewardSettledPayload) {
|
|
super();
|
|
}
|
|
|
|
get eventType(): string {
|
|
return 'RewardSettled';
|
|
}
|
|
|
|
get aggregateId(): string {
|
|
return this.payload.entryId;
|
|
}
|
|
|
|
get aggregateType(): string {
|
|
return 'RewardLedgerEntry';
|
|
}
|
|
|
|
toPayload(): RewardSettledPayload {
|
|
return { ...this.payload };
|
|
}
|
|
}
|