ffsaf-site/src/main/java/fr/titionfire/ffsaf/rest/data/SimpleReqAffiliation.java
2024-07-20 09:12:50 +02:00

77 lines
3.1 KiB
Java

package fr.titionfire.ffsaf.rest.data;
import fr.titionfire.ffsaf.data.model.AffiliationRequestModel;
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.List;
@Data
@Builder
@AllArgsConstructor
@RegisterForReflection
public class SimpleReqAffiliation {
@Schema(description = "Identifiant de la demande d'affiliation", example = "1")
Long id;
@Schema(description = "Identifiant du club", example = "1")
Long club;
@Schema(description = "Nom du club si club similar trouver (même siret)", example = "Association sportive")
String club_name;
@Schema(description = "Identifiant du club affilié", example = "1")
Long club_no_aff;
@Schema(description = "Nom du club demander", example = "Association sportive")
String name;
@Schema(description = "Numéro SIRET de l'association", example = "12345678901234")
long siret;
@Schema(description = "Numéro RNA de l'association", example = "W123456789")
String RNA;
@Schema(description = "Adresse de l'association", example = "1 rue de l'exemple, 75000 Paris")
String address;
@Schema(description = "Liste des membres pour la demande d'affiliation")
List<AffiliationMember> members;
@Schema(description = "Saison de l'affiliation", example = "2025")
int saison;
public static SimpleReqAffiliation fromModel(AffiliationRequestModel model) {
if (model == null)
return null;
return new SimpleReqAffiliation.SimpleReqAffiliationBuilder()
.id(model.getId())
.name(model.getName())
.siret(model.getSiret())
.RNA(model.getRNA())
.address(model.getAddress())
.saison(model.getSaison())
.members(List.of(
new AffiliationMember(model.getM1_lname(), model.getM1_fname(), model.getM1_email(),
model.getM1_lincence(), model.getM1_role()),
new AffiliationMember(model.getM2_lname(), model.getM2_fname(), model.getM2_email(),
model.getM2_lincence(), model.getM2_role()),
new AffiliationMember(model.getM3_lname(), model.getM3_fname(), model.getM3_email(),
model.getM3_lincence(), model.getM3_role())
))
.build();
}
@Data
@AllArgsConstructor
@RegisterForReflection
public static class AffiliationMember {
@Schema(description = "Nom du membre", example = "Doe")
String lname;
@Schema(description = "Prénom du membre", example = "John")
String fname;
@Schema(description = "Email du membre", example = "john.doe@test.com")
String email;
@Schema(description = "Numéro de licence du membre", example = "12345")
int licence;
@Schema(description = "Rôle du membre", example = "MEMBRE")
RoleAsso role;
}
}