package org.egl_cepgl.pm.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.egl_cepgl.pm.model.*;

import javax.persistence.*;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

@Data
@Builder
public class ProcurementDto
{
    private Long id;

    private String namep;

    private String description;

    private Date entry_date;

    private Date expiry_date;

    private ProjectDto project;

    private ProCategoryDto category;

    private List<FileDto> files;

    private String candidat_type;

    private Boolean status;

    private Boolean candidate_auto_apply;

    public static ProcurementDto fromEntity(Procurement obj)
    {
        if(obj == null){
            return null;
        }
        return ProcurementDto.builder()
                .id(obj.getId())
                .namep(obj.getNamep())
                .description(obj.getDescription())
                .entry_date(obj.getEntry_date())
                .expiry_date(obj.getExpiry_date())
                .project(ProjectDto.fromEntity(obj.getProject()))
                .category(ProCategoryDto.fromEntity(obj.getCategory()))
                .files(obj.getFiles().stream().map(FileDto::fromEntity).collect(Collectors.toList()))
                .candidat_type(obj.getCandidat_type())
                .status(obj.getStatus())
                .candidate_auto_apply(obj.getCandidate_auto_apply())
                .build();
    }
}
