package com.gx.obe.struct.handler;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import com.gx.obe.business.entity.SupplierEvaluationFactor;
import com.gx.obe.struct.inters.IFactorClearBidContent;
import com.gx.obe.web.entity.Supplier;
import com.gx.obe.web.entity.evaluation.EvaluationFactor;
import com.gx.obe.web.entity.tender.TenderProjectEntity;
import com.gx.obe.web.service.SupplierEvaluationFactorService;
import com.gx.obe.web.vo.FactorClearBidContent;

public class FactorClearBidContentHandler implements IFactorClearBidContent {
	
	private final SupplierEvaluationFactorService supplierEvaluationFactorService = new SupplierEvaluationFactorService();
	
	private final Optional<TenderProjectEntity> tenderProject;
	
	private final Optional<FactorClearBidContent> factorClearBidContent;
	
	public FactorClearBidContentHandler(TenderProjectEntity tenderProject) {
		this.tenderProject = Optional.ofNullable(tenderProject);
		this.factorClearBidContent = this.tenderProject.map(TenderProjectEntity::getId).map(supplierEvaluationFactorService::getScoreFactorClearBidContent);
	}
	
	@Override
	public String getTableName() {
		return null;
	}
	
	@Override
	public String getFileName() {
		return "商务技术评审因素汇总表.xlsx";
	}
	
	@Override
	public List<Supplier> getSupplierList() {
		return factorClearBidContent.map(FactorClearBidContent::getSupplierList).orElseGet(ArrayList::new);
	}
	
	@Override
	public List<EvaluationFactor> getFactorList() {
		return factorClearBidContent.map(FactorClearBidContent::getFactorList).orElseGet(ArrayList::new);
	}
	
	@Override
	public List<SupplierEvaluationFactor> getSupplierEvaluationFactorList() {
		return factorClearBidContent.map(FactorClearBidContent::getSupplierEvaluationFactorList).orElseGet(ArrayList::new);
	}

	@Override
	public String getContent(SupplierEvaluationFactor supplierEvaluationFactor) {
		return supplierEvaluationFactor.getOpinion();
	}
	
}