70 lines
1.8 KiB
Java
70 lines
1.8 KiB
Java
package dev.lions.unionflow.server.entity;
|
|
|
|
import jakarta.persistence.*;
|
|
import jakarta.validation.constraints.NotBlank;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Builder;
|
|
import lombok.Data;
|
|
import lombok.EqualsAndHashCode;
|
|
import lombok.NoArgsConstructor;
|
|
|
|
/**
|
|
* Entité ConfigurationWave pour la configuration de l'intégration Wave
|
|
*
|
|
* @author UnionFlow Team
|
|
* @version 3.0
|
|
* @since 2025-01-29
|
|
*/
|
|
@Entity
|
|
@Table(
|
|
name = "configurations_wave",
|
|
indexes = {
|
|
@Index(name = "idx_config_wave_cle", columnList = "cle", unique = true)
|
|
})
|
|
@Data
|
|
@NoArgsConstructor
|
|
@AllArgsConstructor
|
|
@Builder
|
|
@EqualsAndHashCode(callSuper = true)
|
|
public class ConfigurationWave extends BaseEntity {
|
|
|
|
/** Clé de configuration */
|
|
@NotBlank
|
|
@Column(name = "cle", unique = true, nullable = false, length = 100)
|
|
private String cle;
|
|
|
|
/** Valeur de configuration (peut être encryptée) */
|
|
@Column(name = "valeur", columnDefinition = "TEXT")
|
|
private String valeur;
|
|
|
|
/** Description de la configuration */
|
|
@Column(name = "description", length = 500)
|
|
private String description;
|
|
|
|
/** Type de valeur (STRING, NUMBER, BOOLEAN, JSON, ENCRYPTED) */
|
|
@Column(name = "type_valeur", length = 20)
|
|
private String typeValeur;
|
|
|
|
/** Environnement (SANDBOX, PRODUCTION, COMMON) */
|
|
@Column(name = "environnement", length = 20)
|
|
private String environnement;
|
|
|
|
/** Méthode métier pour vérifier si la valeur est encryptée */
|
|
public boolean isEncryptee() {
|
|
return "ENCRYPTED".equals(typeValeur);
|
|
}
|
|
|
|
/** Callback JPA avant la persistance */
|
|
@PrePersist
|
|
protected void onCreate() {
|
|
super.onCreate();
|
|
if (typeValeur == null || typeValeur.isEmpty()) {
|
|
typeValeur = "STRING";
|
|
}
|
|
if (environnement == null || environnement.isEmpty()) {
|
|
environnement = "COMMON";
|
|
}
|
|
}
|
|
}
|
|
|