class MoneyDepositEvent extends DomainEvent {

  private final BigDecimal money;
  private final int accountNo;

  /**
   * Instantiates a new Money deposit event.
   *
   * @param sequenceId  the sequence id
   * @param createdTime the created time
   * @param accountNo   the account no
   * @param money       the money
   */
  @JsonCreator
  public MoneyDepositEvent(@JsonProperty("sequenceId") long sequenceId,
      @JsonProperty("createdTime") long createdTime,
      @JsonProperty("accountNo") int accountNo, @JsonProperty("money") BigDecimal money) {
    super(sequenceId, createdTime, "MoneyDepositEvent");
    this.money = money;
    this.accountNo = accountNo;
  }

  @Override
  public void process() {<FILL_FUNCTION_BODY>}
}

    var account = Optional.ofNullable(AccountAggregate.getAccount(accountNo))
        .orElseThrow(() -> new RuntimeException("Account not found"));
    account.handleEvent(this);
  
<methods>public non-sealed void <init>() ,public abstract void process() <variables>private final non-sealed long createdTime,private final non-sealed java.lang.String eventClassName,private boolean realTime,private final non-sealed long sequenceId