diff --git a/src/main/java/fr/titionfire/ffsaf/data/model/CardModel.java b/src/main/java/fr/titionfire/ffsaf/data/model/CardModel.java index f3b0c2c..1cb830f 100644 --- a/src/main/java/fr/titionfire/ffsaf/data/model/CardModel.java +++ b/src/main/java/fr/titionfire/ffsaf/data/model/CardModel.java @@ -1,5 +1,7 @@ package fr.titionfire.ffsaf.data.model; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import io.quarkus.runtime.annotations.RegisterForReflection; import jakarta.persistence.*; import lombok.AllArgsConstructor; @@ -27,7 +29,14 @@ public class CardModel { Long comb; Long match; Long category; - Long competition; + + @JsonIgnore + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "competition", referencedColumnName = "id") + CompetitionModel competition; + + @JsonProperty("competition") + Long competitionId; CardType type; String reason; diff --git a/src/main/java/fr/titionfire/ffsaf/domain/entity/MatchModelExtend.java b/src/main/java/fr/titionfire/ffsaf/domain/entity/MatchModelExtend.java new file mode 100644 index 0000000..ed0cdef --- /dev/null +++ b/src/main/java/fr/titionfire/ffsaf/domain/entity/MatchModelExtend.java @@ -0,0 +1,17 @@ +package fr.titionfire.ffsaf.domain.entity; + +import fr.titionfire.ffsaf.data.model.CardModel; +import fr.titionfire.ffsaf.data.model.MatchModel; +import io.quarkus.runtime.annotations.RegisterForReflection; + +import java.util.List; + +@RegisterForReflection +public class MatchModelExtend{ + final MatchModel match; + + public MatchModelExtend(MatchModel match, List c) { + this.match = match; + } + +} diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/CardService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/CardService.java index e96fd80..56c330f 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/CardService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/CardService.java @@ -62,18 +62,18 @@ public class CardService { public Uni> getForMatch(MatchModel match) { return cardRepository.list( "competition = ?1 AND (type IN ?2 OR (type = CardType.BLUE AND category = ?4)) AND comb IN ?3", - match.getCategory().getCompet().getId(), COMPETITION_LEVEL_CARDS, + match.getCategory().getCompet(), COMPETITION_LEVEL_CARDS, extractCombIds(match), match.getCategory().getId()); } - public Uni> getAll(Long competitionId) { - return cardRepository.list("competition = ?1", competitionId); + public Uni> getAll(CompetitionModel competition) { + return cardRepository.list("competition = ?1", competition); } public Uni checkCanBeAdded(RCard.SendCardAdd card, MatchModel matchModel) { return cardRepository.find("competition = ?1 AND comb = ?2", Sort.descending("type"), - matchModel.getCategory().getCompet().getId(), card.combId()) + matchModel.getCategory().getCompet(), card.combId()) .firstResult() .map(card_ -> { if (card.type() == CardModel.CardType.BLUE) { @@ -119,7 +119,7 @@ public class CardService { .map(l -> l.stream().map(r -> r.getId() * -1).toList()); } }) - .chain(combIds -> cardRepository.list("competition = ?1 AND comb IN ?2", competition.getId(), combIds) + .chain(combIds -> cardRepository.list("competition = ?1 AND comb IN ?2", competition, combIds) .map(cards -> { List newCards = new ArrayList<>(); for (Long id : combIds) { @@ -127,7 +127,8 @@ public class CardService { .filter(c -> id.equals(c.getComb()) && c.getType() == type).findAny(); CardModel model = new CardModel(); - model.setCompetition(competition.getId()); + model.setCompetition(competition); + model.setCompetitionId(competition.getId()); model.setComb(id); model.setTeamCard(true); diff --git a/src/main/java/fr/titionfire/ffsaf/ws/recv/RCard.java b/src/main/java/fr/titionfire/ffsaf/ws/recv/RCard.java index f7b96fa..9c82819 100644 --- a/src/main/java/fr/titionfire/ffsaf/ws/recv/RCard.java +++ b/src/main/java/fr/titionfire/ffsaf/ws/recv/RCard.java @@ -83,7 +83,8 @@ public class RCard { model.setComb(card.combId()); model.setMatch(card.matchId()); model.setCategory(matchModel.getCategory().getId()); - model.setCompetition(matchModel.getCategory().getCompet().getId()); + model.setCompetition(matchModel.getCategory().getCompet()); + model.setCompetitionId(matchModel.getCategory().getCompet().getId()); model.setType(card.type()); model.setReason(card.reason()); diff --git a/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java b/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java index 568373d..dc977a4 100644 --- a/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java +++ b/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java @@ -86,7 +86,7 @@ public class RCategorie { .call(cat -> treeRepository.list("category = ?1 AND level != 0", cat.getId()) .map(treeModels -> treeModels.stream().map(TreeEntity::fromModel).toList()) .invoke(fullCategory::setTrees)) - .call(cat -> cardService.getAll(cat.getCompet().getId()) + .call(cat -> cardService.getAll(cat.getCompet()) .invoke(fullCategory::setCards)) .map(__ -> fullCategory); }