package digital.laboratory.platform.reagent.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
import digital.laboratory.platform.reagent.dto.AuditAndApproveDTO;
import digital.laboratory.platform.reagent.dto.PurchaseCatalogueDTO;
import digital.laboratory.platform.reagent.entity.CatalogueDetails;
import digital.laboratory.platform.reagent.entity.PurchaseCatalogue;
import digital.laboratory.platform.reagent.vo.PurchaseCatalogueVO;

import java.util.List;

/**
 * (采购目录)服务类
 *
 * @author Zhang Xiaolong created at  2023-03-10
 * @describe (采购目录) 服务类
 */
public interface PurchaseCatalogueService extends IService<PurchaseCatalogue> {

    PurchaseCatalogue addCatalogue(DLPUser dlpUser, List<PurchaseCatalogueDTO> purchaseCatalogueDTOList);

    CatalogueDetails editCatalogue(PurchaseCatalogueDTO purchaseCatalogueDto);
    Boolean delCatalogue(String purchaseCatalogueId);

    CatalogueDetails addDetails(PurchaseCatalogueDTO purchaseCatalogueDTO);

    IPage<PurchaseCatalogueVO> getPurchaseCatalogueVOPage(IPage<PurchaseCatalogue> page, QueryWrapper<PurchaseCatalogue> qw);

    List<PurchaseCatalogueVO> getPurchaseCatalogueVOList(QueryWrapper<PurchaseCatalogue> qw);

    PurchaseCatalogueVO getPurchaseCatalogueVO(String purchaseCatalogueId);


    PurchaseCatalogue commitById(List<PurchaseCatalogueDTO> purchaseCatalogueDTOList,DLPUser dlpUser);

    PurchaseCatalogue primaryAuditCatalogue (AuditAndApproveDTO auditAndApproveDto, DLPUser dlpUser);

    PurchaseCatalogue secondaryAuditCatalogue(AuditAndApproveDTO auditAndApproveDto, DLPUser dlpUser);

    PurchaseCatalogue releaseCatalogue(String purchaseCatalogueId);

    PurchaseCatalogueVO getVOpage();
}
