package com.seer.teach.mp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.seer.teach.mp.entity.MpAgentEmployeeRelationEntity;

/**
 * <p>
 * 代理商员工关联表 服务类
 * </p>
 *
 * @author Lingma
 * @since 2025-12-29
 */
public interface IMpAgentEmployeeRelationService extends IService<MpAgentEmployeeRelationEntity> {

    /**
     * 分页查询代理商员工关联列表
     *
     * @param pageParm 分页参数
     * @param query    查询条件
     * @return 代理商员工关联分页列表
     */
    IPage<MpAgentEmployeeRelationEntity> pageList(com.baomidou.mybatisplus.extension.plugins.pagination.Page<MpAgentEmployeeRelationEntity> pageParm, MpAgentEmployeeRelationEntity query);

    /**
     * 创建或更新代理商员工关联
     *
     * @param entity 关联实体
     * @return 操作是否成功
     */
    boolean saveOrUpdateRelation(MpAgentEmployeeRelationEntity entity);

    /**
     * 删除代理商员工关联
     *
     * @param id 关联ID
     * @return 操作是否成功
     */
    boolean deleteRelation(Integer id);

    /**
     * 根据代理商ID获取员工列表
     *
     * @param agentId 代理商ID
     * @return 员工关联列表
     */
    java.util.List<MpAgentEmployeeRelationEntity> getEmployeeRelationsByAgentId(Integer agentId);

    /**
     * 检查用户是否为代理商的员工
     *
     * @param agentId 代理商ID
     * @param employeeUserId 员工用户ID
     * @return 是否为员工
     */
    boolean isEmployeeOfAgent(Integer agentId, Integer employeeUserId);

    /**
     * 根据用户ID获取代理商员工关联
     *
     * @param userId 用户ID
     * @return 代理商员工关联
     */
    MpAgentEmployeeRelationEntity getOneByUserId(Integer userId);
}