package com.njcn.rdms.module.project.service.product;

import com.njcn.rdms.module.project.controller.admin.product.vo.member.ProductMemberInactiveReqVO;
import com.njcn.rdms.module.project.controller.admin.product.vo.member.ProductMemberRespVO;
import com.njcn.rdms.module.project.controller.admin.product.vo.member.ProductMemberSaveReqVO;
import com.njcn.rdms.module.project.controller.admin.product.vo.member.ProductMemberUpdateReqVO;

import java.util.List;

/**
 * 产品团队 Service 接口
 */
public interface ProductMemberService {

    /**
     * 获取产品团队成员列表
     *
     * @param productId 产品编号
     * @return 成员列表
     */
    List<ProductMemberRespVO> getProductMemberList(Long productId);

    /**
     * 新增产品团队成员
     *
     * @param productId 产品编号
     * @param reqVO 请求参数
     * @return 团队关系编号
     */
    Long createProductMember(Long productId, ProductMemberSaveReqVO reqVO);

    /**
     * 调整产品团队成员角色
     *
     * @param productId 产品编号
     * @param memberId 成员关系编号
     * @param reqVO 请求参数
     */
    void updateProductMember(Long productId, Long memberId, ProductMemberUpdateReqVO reqVO);

    /**
     * 移出产品团队成员
     *
     * @param productId 产品编号
     * @param memberId 成员关系编号
     * @param reqVO 请求参数
     */
    void inactiveProductMember(Long productId, Long memberId, ProductMemberInactiveReqVO reqVO);

}
