package fr.titionfire.ffsaf.rest.data; import fr.titionfire.ffsaf.data.model.MembreModel; import fr.titionfire.ffsaf.net2.data.SimpleClubModel; import fr.titionfire.ffsaf.utils.Categorie; import fr.titionfire.ffsaf.utils.Genre; import fr.titionfire.ffsaf.utils.GradeArbitrage; import fr.titionfire.ffsaf.utils.RoleAsso; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import org.eclipse.microprofile.openapi.annotations.media.Schema; import java.util.Date; @Data @Builder @AllArgsConstructor @RegisterForReflection public class SimpleMembre { @Schema(description = "L'identifiant du membre.", examples = "1") private long id; @Schema(description = "L'identifiant long du membre (userID).", examples = "e81d1d35-d897-421e-8086-6c5e74d13c6e") private String userId; @Schema(description = "Le nom du membre.", examples = "Dupont") private String lname = ""; @Schema(description = "Le prénom du membre.", examples = "Jean") private String fname = ""; @Schema(description = "La catégorie du membre.", examples = "SENIOR") private Categorie categorie; @Schema(description = "Le club du membre.") private SimpleClubModel club; @Schema(description = "Le genre du membre.", examples = "H") private Genre genre; @Schema(description = "Le numéro de licence du membre.", examples = "12345") private Integer licence; @Schema(description = "Le pays du membre.", examples = "FR") private String country; @Schema(description = "La date de naissance du membre.") private Date birth_date; @Schema(description = "L'adresse e-mail du membre.", examples = "jean.dupont@examples.com") private String email; @Schema(description = "Le rôle du membre dans l'association.", examples = "MEMBRE") private RoleAsso role; @Schema(description = "Le grade d'arbitrage du membre.", examples = "N/A") private GradeArbitrage grade_arbitrage; public static SimpleMembre fromModel(MembreModel model) { if (model == null) return null; return new SimpleMembreBuilder() .id(model.getId()) .userId(model.getUserId()) .lname(model.getLname()) .fname(model.getFname()) .categorie(model.getCategorie()) .club(SimpleClubModel.fromModel(model.getClub())) .genre(model.getGenre()) .licence(model.getLicence()) .country(model.getCountry()) .birth_date(model.getBirth_date()) .email(model.getEmail()) .role(model.getRole()) .grade_arbitrage(model.getGrade_arbitrage()) .build(); } }