package eu.eudat.model.mapper.publicapi; import eu.eudat.model.Dmp; import eu.eudat.model.publicapi.overviewmodels.DataManagementPlanPublicModel; import eu.eudat.model.publicapi.researcher.ResearcherPublicModel; import eu.eudat.model.publicapi.user.UserInfoPublicModel; import org.springframework.stereotype.Component; import java.sql.Date; import java.util.Objects; @Component public class DmpToPublicApiDmpMapper { public DataManagementPlanPublicModel toPublicModel(Dmp dmp) { DataManagementPlanPublicModel model = new DataManagementPlanPublicModel(); model.setId(dmp.getId().toString()); model.setLabel(dmp.getLabel()); model.setDescription(dmp.getDescription()); model.setVersion(dmp.getVersion()); model.setGroupId(dmp.getGroupId()); model.setUsers(dmp.getDmpUsers().stream().map(UserInfoPublicModel::fromDmpUser).toList()); model.setResearchers(dmp.getDmpReferences().stream().map(ResearcherPublicModel::fromDmpReference).filter(Objects::isNull).toList()); model.setCreatedAt(Date.from(dmp.getCreatedAt())); model.setModifiedAt(Date.from(dmp.getUpdatedAt())); model.setFinalizedAt(Date.from(dmp.getFinalizedAt())); return model; } }