package com.sn.sowsysrestapi.api.converter;

import com.sn.sowsysrestapi.api.dto.reportView.ReportFullViewDTO;
import com.sn.sowsysrestapi.domain.entity.view.ReportFullView;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.stream.Collectors;

@Component
public class ReportFullViewConverter {

    @Autowired
    private ModelMapper modelMapper;

    public ReportFullViewDTO toDTO (ReportFullView reportFullView) {
        return modelMapper.map(reportFullView, ReportFullViewDTO.class);
    }

    public List<ReportFullViewDTO> toCollectionDTO(List<ReportFullView> reportFullViewList) {
        return reportFullViewList.stream()
                .map(reportFullView -> toDTO(reportFullView))
                .collect(Collectors.toList());
    }

    public ReportFullView toEntity(ReportFullViewDTO reportFullViewDTO) {
        return modelMapper.map(reportFullViewDTO, ReportFullView.class);
    }

    public List<ReportFullView> toCollectionEntity(List<ReportFullViewDTO> reportFullViewDTOList) {
        return reportFullViewDTOList.stream()
                .map(reportFullViewDTO -> toEntity(reportFullViewDTO))
                .collect(Collectors.toList());
    }

}
