package com.fs.company.mapper;

import java.util.ArrayList;
import java.util.List;
import com.fs.company.domain.CompanyProduct;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 产品Mapper接口
 *
 * @author fs
 * @date 2025-07-01
 */
public interface CompanyProductMapper
{
    /**
     * 查询产品
     *
     * @param id 产品主键
     * @return 产品
     */
    public CompanyProduct selectCompanyProductById(Long id);

    /**
     * 查询产品列表
     *
     * @param companyProduct 产品
     * @return 产品集合
     */
    public List<CompanyProduct> selectCompanyProductList(CompanyProduct companyProduct);

    /**
     * 新增产品
     *
     * @param companyProduct 产品
     * @return 结果
     */
    public int insertCompanyProduct(CompanyProduct companyProduct);

    /**
     * 修改产品
     *
     * @param companyProduct 产品
     * @return 结果
     */
    public int updateCompanyProduct(CompanyProduct companyProduct);

    /**
     * 删除产品
     *
     * @param id 产品主键
     * @return 结果
     */
    public int deleteCompanyProductById(Long id);

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


    @Select("select * from company_product where company_id=#{companyId}")
    List<CompanyProduct> queryAllProduct(@Param("companyId") Long companyId);

    @Select("SELECT id " +
            "FROM company_product " +
            "WHERE del_flag = 0 " +
            "AND company_id = #{companyId} " +
            "AND product_code = #{productCode} " +
            "LIMIT 1")
    CompanyProduct selectByCompanyIdAndProductCode(@Param("productCode")String productCode,  @Param("companyId") Long companyId);
}
