class ExtendedUserInfo {
  public Long id;

  public String addon_token;
  public String api_key;
  public String email;
  public String name;
  public Date premium_from;
  public Date premium_to;
  public Timestamp cancel_date;
  public Long subscription_months;
  public String geo_ip_country;
  public Long managed_accounts;
  public UUID groupId;
  public String groupRole;


  // for jackson-databind deserialization
  public ExtendedUserInfo() {}

  // for myBatis deserialization
  public ExtendedUserInfo(String addon_token, String api_key, String email, String name, Date premium_from, Date premium_to, Timestamp cancel_date, Long subscription_months, String geo_ip_country,
   Long managed_accounts, UUID groupId, String groupRole) {

    this.addon_token = addon_token;
    this.api_key = api_key;
    this.email = email;
    this.name = name;
    this.premium_from = premium_from;
    this.premium_to = premium_to;
    this.cancel_date = cancel_date;
    this.subscription_months = subscription_months;
    this.geo_ip_country = geo_ip_country;
    this.managed_accounts = managed_accounts;
    this.groupId = groupId;
    this.groupRole = groupRole;
  }

  @Override
  public String toString() {<FILL_FUNCTION_BODY>}


  // getters for tests (i.e. org.hamcrest.Matchers.hasProperty)

  public Long getId() {
    return id;
  }

  public String getAddon_token() {
    return addon_token;
  }

  public String getApi_key() {
    return api_key;
  }

  public String getEmail() {
    return email;
  }

  public String getName() {
    return name;
  }

  public Date getPremium_from() {
    return premium_from;
  }

  public Date getPremium_to() {
    return premium_to;
  }

  public Timestamp getCancel_date() {
    return cancel_date;
  }

  public Long getSubscription_months() {
    return subscription_months;
  }

  public String getGeo_ip_country() {
    return geo_ip_country;
  }

  public Long getManaged_accounts() {
    return managed_accounts;
  }

  public UUID getGroupId() {
    return groupId;
  }

  public String getGroupRole() {
    return groupRole;
  }

  
}

    return new ToStringBuilder(this)
      .append("id", id)
      .append("addon_token", addon_token)
      .append("api_key", api_key)
      .append("email", email)
      .append("name", name)
      .append("premium_from", premium_from)
      .append("premium_to", premium_to)
      .append("cancel_date", cancel_date)
      .append("subscription_months", subscription_months)
      .append("geo_ip_country", geo_ip_country)
      .append("managed_accounts", managed_accounts)
      .append("groupId", groupId)
      .append("groupRole", groupRole)
      .toString();
  
<no_super_class>