85 lines
2.4 KiB
Java
85 lines
2.4 KiB
Java
package dev.lions.models;
|
|
|
|
import jakarta.validation.constraints.Email;
|
|
import jakarta.validation.constraints.NotBlank;
|
|
import jakarta.validation.constraints.Size;
|
|
import java.util.Map;
|
|
import java.util.Collections;
|
|
import lombok.Builder;
|
|
import lombok.Data;
|
|
import lombok.Setter;
|
|
|
|
/**
|
|
* Représente un modèle de email à utiliser pour l'envoi de communications.
|
|
* Cette classe encapsule les informations nécessaires pour générer et envoyer un email.
|
|
*/
|
|
@Data
|
|
@Builder
|
|
public class EmailTemplate {
|
|
|
|
@NotBlank(message = "L'identifiant du modèle de courriel est obligatoire")
|
|
private Long id;
|
|
|
|
@NotBlank(message = "Le nom du modèle de courriel est obligatoire")
|
|
@Size(max = 100, message = "Le nom du modèle ne peut pas dépasser 100 caractères")
|
|
private String templateName;
|
|
|
|
@NotBlank(message = "L'objet du courriel est obligatoire")
|
|
@Size(max = 100, message = "L'objet ne peut pas dépasser 100 caractères")
|
|
private String subject;
|
|
|
|
@NotBlank(message = "Le destinataire du courriel est obligatoire")
|
|
@Email(message = "Le destinataire doit être une adresse email valide")
|
|
private String recipient;
|
|
|
|
private Map<String, String> parameters;
|
|
|
|
@Builder.Default
|
|
private boolean isActive = true;
|
|
|
|
/**
|
|
* -- SETTER --
|
|
* Met à jour la version du modèle de courriel.
|
|
*
|
|
* @param version Nouvelle version
|
|
*/
|
|
@Setter
|
|
@Builder.Default
|
|
private long version = 0;
|
|
|
|
@NotBlank(message = "Le contenu du courriel est obligatoire")
|
|
@Size(max = 10000, message = "Le contenu ne peut pas dépasser 10 000 caractères")
|
|
private String content;
|
|
|
|
/**
|
|
* Récupère une copie immuable des paramètres.
|
|
*
|
|
* @return Paramètres du modèle de courriel
|
|
*/
|
|
public Map<String, String> getParameters() {
|
|
return Collections.unmodifiableMap(parameters);
|
|
}
|
|
|
|
/**
|
|
* Met à jour l'état d'activation du modèle de courriel.
|
|
*
|
|
* @param active Nouvel état d'activation
|
|
*/
|
|
public void setActive(boolean active) {
|
|
this.isActive = active;
|
|
}
|
|
|
|
|
|
/**
|
|
* Vérifie si le modèle de courriel est valide et prêt à l'emploi.
|
|
*
|
|
* @return true si le modèle est valide
|
|
*/
|
|
public boolean isValid() {
|
|
return id != null &&
|
|
templateName != null && !templateName.isBlank() &&
|
|
subject != null && !subject.isBlank() &&
|
|
recipient != null && !recipient.isBlank() &&
|
|
content != null && !content.isBlank();
|
|
}
|
|
} |