package fr.titionfire.ffsaf.rest.data; import fr.titionfire.ffsaf.data.model.CompetitionGuestModel; import fr.titionfire.ffsaf.data.model.LicenceModel; import fr.titionfire.ffsaf.data.model.MembreModel; import fr.titionfire.ffsaf.data.model.RegisterModel; import fr.titionfire.ffsaf.net2.data.SimpleClubModel; import fr.titionfire.ffsaf.utils.Categorie; import fr.titionfire.ffsaf.utils.Genre; import fr.titionfire.ffsaf.utils.Utils; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.AllArgsConstructor; import lombok.Data; import java.util.List; @Data @AllArgsConstructor @RegisterForReflection public class SimpleRegisterComb { private long id; private String fname; private String lname; private Genre genre; private String country; private Categorie categorie; private SimpleClubModel club; private Integer licence; private Integer weight; private int overCategory; private boolean hasLicenceActive; private boolean lockEdit; public static SimpleRegisterComb fromModel(RegisterModel register, List licences) { MembreModel membreModel = register.getMembre(); return new SimpleRegisterComb(membreModel.getId(), membreModel.getFname(), membreModel.getLname(), membreModel.getGenre(), membreModel.getCountry(), (register.getCategorie() == null) ? null : register.getCategorie(), SimpleClubModel.fromModel(register.getClub()), membreModel.getLicence(), register.getWeight(), register.getOverCategory(), licences.stream().anyMatch(l -> l.isValidate() && l.getSaison() == Utils.getSaison()), register.isLockEdit()); } public static SimpleRegisterComb fromModel(CompetitionGuestModel guest) { return new SimpleRegisterComb(guest.getId() * -1, guest.getFname(), guest.getLname(), guest.getGenre(), guest.getCountry(), guest.getCategorie(), new SimpleClubModel(null, guest.getClub(), "fr", null), null, guest.getWeight(), 0, false, false); } }