package com.fs.course.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.course.domain.FsUserCompanyUser;
import com.fs.course.domain.FsUserCompanyUserQw;
import com.fs.qw.param.FsUserCompanyUserQwParam;
import com.fs.qw.vo.FsUserCompanyUserQwVO;

/**
 * 微信用户和销售关系-企业微信自动的Service接口
 *
 * @author fs
 * @date 2025-10-23
 */
public interface IFsUserCompanyUserQwService extends IService<FsUserCompanyUserQw>{
    /**
     * 查询微信用户和销售关系-企业微信自动的
     *
     * @param id 微信用户和销售关系-企业微信自动的主键
     * @return 微信用户和销售关系-企业微信自动的
     */
    FsUserCompanyUserQw selectFsUserCompanyUserQwById(Long id);

    FsUserCompanyUserQw selectByUserIdAndProjectId(Long userId, Long projectId);

    /**
     * 绑定客户-项目-销售关系
     *
     * @param userId        小程序id
     * @param projectId     项目ID
     * @param companyId     公司ID
     * @param companyUserId 销售ID
     * @param status        状态 1正常 0小黑屋
     */
    FsUserCompanyUserQw bindRelationship(Long userId, Long projectId, Long companyId, Long companyUserId, int status);

    /**
     * 查询微信用户和销售关系-企业微信自动的列表
     *
     * @param fsUserCompanyUserQw 微信用户和销售关系-企业微信自动的
     * @return 微信用户和销售关系-企业微信自动的集合
     */
    List<FsUserCompanyUserQw> selectFsUserCompanyUserQwList(FsUserCompanyUserQw fsUserCompanyUserQw);
    List<FsUserCompanyUserQwVO> selectFsUserCompanyUserQwListVO(FsUserCompanyUserQwParam userQwParam);

    /**
     * 新增微信用户和销售关系-企业微信自动的
     *
     * @param fsUserCompanyUserQw 微信用户和销售关系-企业微信自动的
     * @return 结果
     */
    int insertFsUserCompanyUserQw(FsUserCompanyUserQw fsUserCompanyUserQw);

    /**
     * 修改微信用户和销售关系-企业微信自动的
     *
     * @param fsUserCompanyUserQw 微信用户和销售关系-企业微信自动的
     * @return 结果
     */
    int updateFsUserCompanyUserQw(FsUserCompanyUserQw fsUserCompanyUserQw);


    /**
     * 修改会员-项目-销售关系
     * @param userId        会员ID
     * @param projectId     项目ID
     * @param companyId     公司ID
     * @param companyUserId 销售ID
     */
    void changeRelationship(Long userId, Long projectId, Long companyId, Long companyUserId);

    /**
     * 批量删除微信用户和销售关系-企业微信自动的
     *
     * @param ids 需要删除的微信用户和销售关系-企业微信自动的主键集合
     * @return 结果
     */
    int deleteFsUserCompanyUserQwByIds(Long[] ids);

    /**
     * 删除微信用户和销售关系-企业微信自动的信息
     *
     * @param id 微信用户和销售关系-企业微信自动的主键
     * @return 结果
     */
    int deleteFsUserCompanyUserQwById(Long id);
}
