package cn.cslg.pas.service;

import cn.cslg.pas.common.model.dto.AssoStructurePatentAddNewBatchDTO;
import cn.cslg.pas.common.model.dto.AssoStructurePatentQueryDTO;
import cn.cslg.pas.common.model.dto.AssoStructurePatentUpdateDTO;
import cn.cslg.pas.common.model.vo.AssoStructurePatentVO;
import cn.cslg.pas.domain.asso.AssoStructurePatent;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 专题库产品架构专利号标引的Service层接口
 *
 * @Author chenyu
 * @Date 2023/3/15
 */
public interface IStructurePatentService extends IService<AssoStructurePatent> {
    /**
     * 更新标引(新增或删除)
     *
     * @param assoStructurePatentUpdateDTO 专题库产品架构专利号标引的修改DTO类对象
     */
    @Transactional
    void update(AssoStructurePatentUpdateDTO assoStructurePatentUpdateDTO);

    /**
     * 批量新增标引
     *
     * @param assoStructurePatentAddNewBatchDTO 专题库批量新增标引(一个专题库给多个专利选择同样的多个产品架构)的DTO类
     */
    @Transactional
    void addNewBatch(AssoStructurePatentAddNewBatchDTO assoStructurePatentAddNewBatchDTO);

    /**
     * 查询标引
     *
     * @param assoStructurePatentQueryDTO 专题库产品架构专利号标引的查询DTO类
     * @return 返回查询到的数据
     */
    List<AssoStructurePatentVO> query(AssoStructurePatentQueryDTO assoStructurePatentQueryDTO);

}
