package com.bonus.material.device.mapper;

import com.bonus.common.biz.domain.BmFileInfo;
import com.bonus.common.biz.domain.TypeInfo;
import com.bonus.material.device.domain.MaDevQc;
import com.bonus.material.owner.domain.Ownerdomin;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 附件Mapper接口
 *
 * @author xsheng
 */
public interface BmFileInfoMapper {
    /**
     * 查询附件
     *
     * @param id 附件主键
     * @return 附件
     */
    List<BmFileInfo> selectBmFileInfoById(Long id);

    /**
     * 查询附件列表
     *
     * @param bmFileInfo 附件
     * @return 附件集合
     */
    List<BmFileInfo> selectBmFileInfoList(BmFileInfo bmFileInfo);

    List<BmFileInfo> selectBmFileInfo(BmFileInfo bmFileInfo);

    /**
     * 新增附件
     *
     * @param bmFileInfo 附件
     * @return 结果
     */
    int insertBmFileInfo(BmFileInfo bmFileInfo);

    int insertBmFileInfos(@Param("list") List<BmFileInfo> bmFileInfos);

    /**
     * 修改附件
     *
     * @param bmFileInfo 附件
     * @return 结果
     */
    int updateBmFileInfo(BmFileInfo bmFileInfo);

    /**
     * 删除附件
     *
     * @param id 附件主键
     * @return 结果
     */
    int deleteBmFileInfoById(Long id);

    /**
     * 批量删除附件
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteBmFileInfoByIds(Long[] ids);


    /**
     * 删除附件
     *
     * @param bmFileInfo 附件信息
     * @return 结果
     */
    int deleteBmFileInfoByBizInfo(BmFileInfo bmFileInfo);

    TypeInfo getTypeInfo(String deviceName);

    Integer deleteBmFileInfoByMaId(@Param("maId") Integer maId, @Param("fileType") Integer fileType);

    Integer deleteBmFileInfo(BmFileInfo fileInfo);

    List<BmFileInfo> getInfoByMaId(Integer maId);

    String getUrlById(Integer fileId);

    Integer deleteBmFileInfoByFileId(@Param("fileId") Integer fileId, @Param("fileType") Integer fileType);

    List<BmFileInfo> getInfoByMaIdAndTaskId(MaDevQc qc);

    int insertRentInfo(Ownerdomin ownerdomin);
}
