package fr.titionfire.ffsaf.rest.data;

import fr.titionfire.ffsaf.data.model.LicenceModel;
import fr.titionfire.ffsaf.data.model.MembreModel;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
@RegisterForReflection
@AllArgsConstructor
public class SimpleMembreInOutData {
    Integer licence;
    String nom;
    String prenom;
    String email;
    String genre;
    Date birthdate;
    boolean licenceCurrent;
    String certif;

    public static SimpleMembreInOutData fromModel(MembreModel membreModel, List<LicenceModel> lc) {
        LicenceModel currentLicence = lc.stream().filter(l -> l.getMembre().getId().equals(membreModel.getId()))
                .findFirst().orElse(null);

        return new SimpleMembreInOutData(
                membreModel.getLicence(),
                membreModel.getLname(),
                membreModel.getFname(),
                membreModel.getEmail(),
                membreModel.getGenre().str,
                membreModel.getBirth_date(),
                currentLicence != null,
                currentLicence == null ? null : currentLicence.getCertificate()
        );
    }
}
