package cn.cslg.pas.service;

import cn.cslg.pas.common.core.annotation.Permission;
import cn.cslg.pas.common.model.QueryPREntity;
import cn.cslg.pas.common.model.dto.PermissionRecordDTO;
import cn.cslg.pas.common.model.dto.PermissionRecordUpdateDTO;
import cn.cslg.pas.common.model.vo.PermissionRecordVO;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 许可记录的Service层接口
 *
 * @Author xiexiang
 * @Date 2023/3/9
 */
public interface IPermissionRecordService {
    /**
     * 新增许可记录
     *
     * @param permissionRecordDTO 新增许可记录的前端传输DTO数据对象
     */
    @Transactional
    void add(PermissionRecordDTO permissionRecordDTO);

    /**
     * 修改许可记录
     *
     * @param permissionRecordUpdateDTO 修改许可记录的前端传输DTO数据对象
     */
    @Transactional
    void update(PermissionRecordUpdateDTO permissionRecordUpdateDTO);

    /**
     * 分页查询插件
     *
     * @param queryPREntity
     */
    List<PermissionRecordVO> findAllByPage(QueryPREntity queryPREntity);


    /**
     * 根据专利号查询许可记录数据
     *
     * @param patentNo
     */
    List<PermissionRecordVO> queryAllInfo(String patentNo);

    /**
     *
     * @param patentNo
     * @return
     */
    Integer countByPatentNo(String patentNo);


    /**
     * 根据许可id删除许可记录数据
     *
     * @param id 许可id
     */
    void delete(Integer id);

}
