package com.microservices.pms.project.service;

import com.microservices.common.core.web.page.GenericsTableDataInfo;
import com.microservices.pms.project.domain.PmsProjectMembers;
import com.microservices.pms.project.domain.vo.PmsProjectMembersDetailVo;
import com.microservices.system.api.domain.SimpleSysUser;

import java.util.List;

/**
 * 项目-成员Service接口
 * 
 * @author wanjia
 * @date 2023-10-11
 */
public interface IPmsProjectMembersService 
{
    /**
     * 查询项目-成员
     * 
     * @param id 项目-成员主键
     * @return 项目-成员
     */
    public PmsProjectMembers selectPmsProjectMembersById(Long id);

    /**
     * 查询项目-成员列表
     * 
     * @param pmsProjectMembers 项目-成员
     * @return 项目-成员集合
     */
    public GenericsTableDataInfo<PmsProjectMembersDetailVo> selectPmsProjectMembersList(PmsProjectMembers pmsProjectMembers);

    /**
     * 新增项目-成员
     * 
     * @param pmsProjectMembers 项目-成员
     * @return 结果
     */
    public int insertPmsProjectMembers(PmsProjectMembers pmsProjectMembers);

    int insertPmsProjectMembersWithoutAuthCheck(PmsProjectMembers pmsProjectMembers);

    /**
     * 批量删除项目-成员
     * 
     * @param ids 需要删除的项目-成员主键集合
     * @return 结果
     */
    public int deletePmsProjectMembersByIds(Long[] ids);

    List<SimpleSysUser> selectPmsProjectMemberInfoListByProjectId(Long pmsProjectId);

    void checkUserInProject(Long pmsProjectId);
}
