package com.cool.store.service;

import com.cool.store.context.LoginUserInfo;
import com.cool.store.request.*;
import com.cool.store.vo.*;
import com.github.pagehelper.PageInfo;

/**
 * @Author suzhuhong
 * @Date 2024/3/25 13:45
 * @Version 1.0
 */
public interface LineService {


    /**
     * 获取线索信息
     * @param lineId
     * @return
     */
    LineInfoVO getLineInfo(Long lineId);


    /**
     * 我的线索 团队线索
     * @param lineListRequest
     * @param loginUserInfo
     * @return
     */
    PageInfo<LineListVO>  getLineList(LineListRequest lineListRequest, LoginUserInfo  loginUserInfo,Boolean teamFlag);


    /**
     * 公海线索
     * @param publicLineListRequest
     * @param loginUserInfo
     * @return
     */
    PageInfo<PublicLineListVO> getPublicLineList(PublicLineListRequest publicLineListRequest, LoginUserInfo  loginUserInfo ,Boolean publicFlag);


    /**
     * 我负责的加盟商 or  团队负责的加盟商
     * @param partnerRequest
     * @param loginUserInfo
     * @param teamFlag
     * @return
     */
    PageInfo<PartnerListVO>  getPartnerList(PartnerRequest partnerRequest, LoginUserInfo  loginUserInfo, Boolean teamFlag);

    /**
     * 添加标签
     * @param userInfo
     * @param addTagsRequest
     * @return
     */
    Boolean addTags(LoginUserInfo userInfo, AddTagsRequest addTagsRequest);


    /**
     * 分配招商经理
     * @param changeInvestmentRequest
     * @param userInfo
     * @return
     */
    Boolean transferInvestmentManager(ChangeInvestmentRequest changeInvestmentRequest, LoginUserInfo userInfo,Boolean transferFlag);


    /**
     * 修改加盟模式
     * @param updateLineRequest
     * @return
     */
    Boolean changeLineInfo(UpdateLineRequest updateLineRequest,LoginUserInfo userInfo);

    /**
     * 将线索从未分配转为已分配 线索变为私海线索
     * @param distributionInvestmentRequest
     * @param userInfo
     * @return
     */
    Boolean distributionLine(DistributionInvestmentRequest distributionInvestmentRequest,LoginUserInfo userInfo);

    /**
     * 线索的各节点情况
     * @param lineId
     * @return
     */
    IntendProcessTotalVO getIntendProcessTotal(Long lineId);

    /**
     * 添加线索
     * @param addLineRequest
     * @return
     */
    Boolean addLine(AddLineRequest addLineRequest,LoginUserInfo userInfo) ;

    String getPayPicByLineId(Long lineId);


}
