package fr.titionfire.ffsaf.rest.data;

import fr.titionfire.ffsaf.data.model.AffiliationModel;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

@Data
@Builder
@AllArgsConstructor
@RegisterForReflection
public class SimpleAffiliation {
    @Schema(description = "L'identifiant de l'affiliation.", example = "1")
    private Long id;
    @Schema(description = "L'identifiant du club associé à l'affiliation si id > 0 sinon n° SIRET ou RNA du club.", example = "123")
    private String club;
    @Schema(description = "La saison de l'affiliation.", example = "2022")
    private int saison;
    @Schema(description = "Indique si l'affiliation est validée ou non.", example = "true")
    private boolean validate;

    public static SimpleAffiliation fromModel(AffiliationModel model) {
        if (model == null)
            return null;

        return new SimpleAffiliationBuilder()
                .id(model.getId())
                .club(String.valueOf(model.getClub().getId()))
                .saison(model.getSaison())
                .validate(true)
                .build();
    }
}
