package com.fs.aicall.mapper;

import com.fs.aicall.domain.CompanyBindAiModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 销售公司与AI模型绑定表Mapper接口
 * 
 * @author ruoyi
 * @date 2026-03-20
 */
@Mapper
public interface CompanyBindAiModelMapper
{
    /**
     * 查询销售公司与AI模型绑定表
     * 
     * @param id 销售公司与AI模型绑定表主键
     * @return 销售公司与AI模型绑定表
     */
    public CompanyBindAiModel selectCompanyBindAiModelById(Long id);

    /**
     * 查询销售公司与AI模型绑定表列表
     * 
     * @param companyBindAiModel 销售公司与AI模型绑定表
     * @return 销售公司与AI模型绑定表集合
     */
    public List<CompanyBindAiModel> selectCompanyBindAiModelList(CompanyBindAiModel companyBindAiModel);

    /**
     * 新增销售公司与AI模型绑定表
     * 
     * @param companyBindAiModel 销售公司与AI模型绑定表
     * @return 结果
     */
    public int insertCompanyBindAiModel(CompanyBindAiModel companyBindAiModel);

    /**
     * 修改销售公司与AI模型绑定表
     * 
     * @param companyBindAiModel 销售公司与AI模型绑定表
     * @return 结果
     */
    public int updateCompanyBindAiModel(CompanyBindAiModel companyBindAiModel);

    /**
     * 删除销售公司与AI模型绑定表
     * 
     * @param id 销售公司与AI模型绑定表主键
     * @return 结果
     */
    public int deleteCompanyBindAiModelById(Long id);

    /**
     * 批量删除销售公司与AI模型绑定表
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCompanyBindAiModelByIds(Long[] ids);

    /**
     * 根据公司ID查询绑定的模型ID列表
     * 
     * @param companyId 公司ID
     * @return 模型ID列表
     */
    public List<Long> selectModelIdsByCompanyId(Long companyId);

    /**
     * 根据模型ID删除绑定关系
     * 
     * @param modelId 模型ID
     * @return 结果
     */
    public int deleteCompanyBindAiModelByModelId(Long modelId);

    /**
     * 批量插入绑定关系
     * 
     * @param companyId 公司ID
     * @param modelIds 模型ID列表
     * @return 结果
     */
    public int batchInsertCompanyBindAiModel(@Param("companyId") Long companyId, @Param("modelIds") List<Long> modelIds);

    /**
     * 批量删除·1、公司ID、模型ID
     * @param companyId
     * @param modelIds 模型ID列表
     * **/
    void deleteBindAiModelByCompanyIdAndModelIds(@Param("companyId") Long companyId, @Param("modelIds") String[] modelIds);
}
