Versions stable (inachevée mais prête à un déploiement en prod)
This commit is contained in:
85
src/main/java/dev/lions/models/EmailTemplate.java
Normal file
85
src/main/java/dev/lions/models/EmailTemplate.java
Normal file
@@ -0,0 +1,85 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user