package com.ruoyi.credit.mapper;

import java.util.List;
import com.ruoyi.credit.domain.ContractEmployeeLink;

/**
 * 合同员工关联Mapper接口
 * 
 * @author ruoyi
 * @date 2025-12-23
 */
public interface ContractEmployeeLinkMapper 
{
    /**
     * 查询合同员工关联
     * 
     * @param linkId 合同员工关联主键
     * @return 合同员工关联
     */
    public ContractEmployeeLink selectContractEmployeeLinkByLinkId(Long linkId);

    /**
     * 查询合同员工关联列表
     * 
     * @param contractEmployeeLink 合同员工关联
     * @return 合同员工关联集合
     */
    public List<ContractEmployeeLink> selectContractEmployeeLinkList(ContractEmployeeLink contractEmployeeLink);

    /**
     * 根据合同ID查询员工关联列表
     * 
     * @param contractId 合同ID
     * @return 合同员工关联集合
     */
    public List<ContractEmployeeLink> selectContractEmployeeLinksByContractId(Long contractId);

    /**
     * 根据员工ID查询合同关联列表
     * 
     * @param employeeId 员工ID
     * @return 合同员工关联集合
     */
    public List<ContractEmployeeLink> selectContractEmployeeLinksByEmployeeId(Long employeeId);

    /**
     * 根据员工库ID查询合同关联列表
     * 
     * @param libraryId 员工库ID
     * @return 合同员工关联集合
     */
    public List<ContractEmployeeLink> selectContractEmployeeLinksByLibraryId(Long libraryId);

    /**
     * 新增合同员工关联
     * 
     * @param contractEmployeeLink 合同员工关联
     * @return 结果
     */
    public int insertContractEmployeeLink(ContractEmployeeLink contractEmployeeLink);

    /**
     * 修改合同员工关联
     * 
     * @param contractEmployeeLink 合同员工关联
     * @return 结果
     */
    public int updateContractEmployeeLink(ContractEmployeeLink contractEmployeeLink);

    /**
     * 删除合同员工关联
     * 
     * @param linkId 合同员工关联主键
     * @return 结果
     */
    public int deleteContractEmployeeLinkByLinkId(Long linkId);

    /**
     * 批量删除合同员工关联
     * 
     * @param linkIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteContractEmployeeLinkByLinkIds(Long[] linkIds);

    /**
     * 根据合同ID删除员工关联
     * 
     * @param contractId 合同ID
     * @return 结果
     */
    public int deleteContractEmployeeLinkByContractId(Long contractId);
}