package cn.cslg.report.mapper;

import cn.cslg.report.common.model.vo.ProductIncludeFilesVO;
import cn.cslg.report.entity.Product;
import org.springframework.stereotype.Repository;

/**
 * 产品表的Mapper层接口
 *
 * @Author chenyu
 * @Data 2022/12/20
 */
@Repository
public interface ProductMapper {
    /**
     * 插入数据
     *
     * @param product 产品数据对象
     * @return 返回受影响的行数
     */
    int insert(Product product);

    /**
     * 根据id修改数据
     *
     * @param product 产品数据对象
     * @return 返回受影响的行数
     */
    int update(Product product);

    /**
     * 根据报告reportId统计数量
     *
     * @param reportId 报告id
     * @return 返回统计到的数量
     */
    int countByReportId(Integer reportId);

    /**
     * 根据报告reportId关联产品表、产品文件关联表、报告系统文件表查询产品和产品附件数据
     *
     * @param reportId 报告id
     * @return 返回查询到的数据
     */
    ProductIncludeFilesVO getWholeByReportId(Integer reportId);

    /**
     * 根据报告reportId删除数据
     *
     * @param reportId 报告id
     * @return 返回受影响的行数
     */
    int deleteByReportId(Integer reportId);

}
