package com.dbg.cloud.acheron.pluginconfig.store.cassandra; import com.dbg.cloud.acheron.pluginconfig.PluginConfig; import lombok.*; import org.springframework.data.cassandra.mapping.Column; import org.springframework.data.cassandra.mapping.PrimaryKey; import org.springframework.data.cassandra.mapping.Table; import java.io.Serializable; import java.util.Date; import java.util.HashSet; import java.util.Set; import java.util.UUID; @Table(value = "plugins") @Getter @Setter @EqualsAndHashCode @AllArgsConstructor @NoArgsConstructor public final class CassandraPluginConfig implements PluginConfig, Serializable { @PrimaryKey private CassandraPluginConfigPK pk; @Column(value = "route_id") private String routeId; @Column(value = "consumer_id") private UUID consumerId; @Column(value = "http_methods") private Set<String> httpMethods; @Column private String config; @Column private boolean enabled; @Column(value = "created_at") private Date createdAt = new Date(); @Override public UUID getId() { return pk.getId(); } @Override public String getName() { return pk.getName(); } public Set<String> getHttpMethods() { return this.httpMethods != null ? this.httpMethods : new HashSet<>(); } }