class AccountCreateEvent extends DomainEvent {

  private final int accountNo;
  private final String owner;

  /**
   * Instantiates a new Account created event.
   *
   * @param sequenceId  the sequence id
   * @param createdTime the created time
   * @param accountNo   the account no
   * @param owner       the owner
   */
  @JsonCreator
  public AccountCreateEvent(@JsonProperty("sequenceId") long sequenceId,
      @JsonProperty("createdTime") long createdTime,
      @JsonProperty("accountNo") int accountNo, @JsonProperty("owner") String owner) {
    super(sequenceId, createdTime, "AccountCreateEvent");
    this.accountNo = accountNo;
    this.owner = owner;
  }

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

    var account = AccountAggregate.getAccount(accountNo);
    if (account != null) {
      throw new RuntimeException("Account already exists");
    }
    account = new Account(accountNo, owner);
    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