class DatabaseSchema {

  @Override
  public boolean equals(Object other) {
    if (this == other) {
      return true;
    }
    if (!(other instanceof DatabaseSchema)) {
      return false;
    }
    DatabaseSchema that = (DatabaseSchema) other;
    return Objects.equals(name, that.getName())
        && Objects.equals(version, that.getVersion())
        && Objects.equals(cksum, that.getCksum())
        && Objects.equals(tables, that.getTables());
  }

  @JsonCreator public  DatabaseSchema(
      @JsonProperty(value = "name", required = true) String name,
      @JsonProperty(value = "version", required = true) String version,
      @JsonProperty(value = "cksum") String cksum,
      @JsonProperty(value = "tables", required = true) Map<String, TableSchema> tables
  );

}