90 lines
2.2 KiB
Java
90 lines
2.2 KiB
Java
package fr.titionfire.ffsaf.data.model;
|
|
|
|
import fr.titionfire.ffsaf.utils.Categorie;
|
|
import io.quarkus.runtime.annotations.RegisterForReflection;
|
|
import jakarta.persistence.*;
|
|
import lombok.*;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Getter
|
|
@Setter
|
|
@Builder
|
|
@AllArgsConstructor
|
|
@NoArgsConstructor
|
|
@RegisterForReflection
|
|
|
|
@Entity
|
|
@Table(name = "category_preset")
|
|
public class CatPresetModel {
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
Long id;
|
|
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
|
@JoinColumn(name = "competition", referencedColumnName = "id")
|
|
CompetitionModel competition;
|
|
|
|
String name = "";
|
|
|
|
@ElementCollection(fetch = FetchType.EAGER)
|
|
@CollectionTable(name = "category_preset_catconfig", joinColumns = @JoinColumn(name = "id_preset"))
|
|
List<CategorieEmbeddable> categories;
|
|
|
|
SwordType swordType = SwordType.NONE;
|
|
ShieldType shieldType = ShieldType.NONE;
|
|
|
|
/*
|
|
* 1 - 1 - Casque
|
|
* 2 - 2 - Gorgerin
|
|
* 3 - 4 - Coquille et Protection pelvienne
|
|
* 4 - 8 - Gant main(s) armée(s)
|
|
* 5 - 16 - Gant main bouclier
|
|
* 6 - 32 - Plastron
|
|
* 7 - 64 - Protection de bras armé(s)
|
|
* 8 - 128 - Protection de bras de bouclier
|
|
* 9 - 256 - Protection de jambes
|
|
* 10 - 512 - Protection de genoux
|
|
* 11 - 1024 - Protection de coudes
|
|
* 12 - 2048 - Protection dorsale
|
|
* 13 - 4096 - Protection de pieds
|
|
*/
|
|
int mandatoryProtection1 = 0;
|
|
int mandatoryProtection2 = 0;
|
|
|
|
@ManyToMany(mappedBy = "categoriesInscrites", fetch = FetchType.LAZY)
|
|
private List<RegisterModel> registers = new ArrayList<>();
|
|
|
|
@ManyToMany(mappedBy = "categoriesInscrites", fetch = FetchType.LAZY)
|
|
private List<CompetitionGuestModel> guest = new ArrayList<>();
|
|
|
|
public enum SwordType {
|
|
NONE,
|
|
ONE_HAND,
|
|
TWO_HAND,
|
|
SABER
|
|
}
|
|
|
|
public enum ShieldType {
|
|
NONE,
|
|
STANDARD,
|
|
ROUND,
|
|
TEARDROP,
|
|
BUCKLER
|
|
}
|
|
|
|
@Getter
|
|
@Setter
|
|
@AllArgsConstructor
|
|
@NoArgsConstructor
|
|
@RegisterForReflection
|
|
|
|
@Embeddable
|
|
public static class CategorieEmbeddable {
|
|
Categorie categorie;
|
|
long roundDuration;
|
|
long pauseDuration;
|
|
}
|
|
}
|