package com.cool.store.service;

import com.cool.store.context.LoginUserInfo;
import com.cool.store.dto.InvestmentCountDTO;
import com.cool.store.dto.PendingCountDTO;
import com.cool.store.entity.HyPartnerLabelDO;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.request.BusinessRemarkRequest;
import com.cool.store.request.DeskRequest;
import com.cool.store.vo.BaseInfoVO;
import com.cool.store.vo.desk.*;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * @Author suzhuhong
 * @Date 2024/3/26 15:15
 * @Version 1.0
 */
public interface DeskService {


    /**
     * 加盟申请待处理
    
     * @param userId
     * @return
     */
    PageInfo<IntendPendingVO> intendPendingList(Integer pageNum, Integer pageSize,String userId,String keyword);


    /**
     * payStagePendingList
    
     * @param user
     * @return
     */
    PageInfo<PayStagePendingVO>  payStagePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user,String keyword);


    /**
     * signingPendingList
    
     * @param user
     * @return
     */
    PageInfo<SigningPendingVO>  signingPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user,String keyword);


    /**
     * convertToBaseInfoVO
     * @param lineInfoDO
     * @param userPortraitMap
     * @param wantShopAreaMap
     * @return
     */
    BaseInfoVO convertToBaseInfoVO(LineInfoDO lineInfoDO, Map<Long, HyPartnerLabelDO> userPortraitMap, Map<Long,String>  wantShopAreaMap);

    /**
     * getUserPortraitMap
     * @param lineInfoDOList
     * @return
     */
    Map<Long, HyPartnerLabelDO> getUserPortraitMap(List<LineInfoDO> lineInfoDOList);

    /**
     * 待处理数据
     * @param user
     * @return
     */
    PendingCountDTO  getPendingCount(LoginUserInfo user);

    InvestmentCountDTO getInvestmentCount(LoginUserInfo user);


    /**
     * 缴纳加盟费待处理数据
    
     * @param user
     * @return
     */
    PageInfo<PreparationCommonPendingVO> payFranchiseFeesPendingList(DeskRequest deskRequest, LoginUserInfo user );
    /**
     * 加盟合同签约待处理数据
    
     * @param user
     * @return
     */
    PageInfo<PreparationCommonPendingVO> signingOfFranchiseContractPendingList(DeskRequest deskRequest, LoginUserInfo user  );


    /**
     * 发票回传待处理数据
    
     * @param user
     * @return
     */
    PageInfo<PreparationCommonPendingVO> invoiceReturnPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     * 开业运营方案待处理数据
    
     * @param user
     * @return
     */
    PageInfo<PreparationCommonPendingVO> openingAndOperationPlanPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     *  培训清单待处理数据
    
     * @param user
     * @return
     */
    PageInfo<PreparationCommonPendingVO> trainListPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *  信发系统
     */
    PageInfo<PreparationCommonPendingVO> xinFaListPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *  pos
     */
    PageInfo<PreparationCommonPendingVO> posListPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *  营帐通
     */
    PageInfo<PreparationCommonPendingVO> tentPassListPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *  orderSys
     */
    PageInfo<PreparationCommonPendingVO> orderSysPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     *      设计阶段
     */
    PageInfo<PreparationCommonPendingVO> designPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     *      施工阶段
     */
    PageInfo<PreparationCommonPendingVO> constructionPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     *      装修验收阶段
     */
    PageInfo<PreparationCommonPendingVO> fitmentPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     *      抖音阶段
     */
    PageInfo<PreparationCommonPendingVO> DYPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *      快手
     */
    PageInfo<PreparationCommonPendingVO> KSPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *      美团外卖
     */
    PageInfo<PreparationCommonPendingVO> MTPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *      美团团购
     */
    PageInfo<PreparationCommonPendingVO> MTBuyPendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *      饿了么
     */
    PageInfo<PreparationCommonPendingVO> ELMEPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     * 建店资料
     */
    PageInfo<PreparationCommonPendingVO> buildInformationPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     * 测量阶段
    
     * @param user
     * @return
     */
    PageInfo<PreparationCommonPendingVO> measurePendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     * 营业执照
     */
    PageInfo<PreparationCommonPendingVO> businessLicensePendingList(DeskRequest deskRequest, LoginUserInfo user  );

    /**
     * 食品安全许可证
     */
    PageInfo<PreparationCommonPendingVO> foodLicensePendingList(DeskRequest deskRequest, LoginUserInfo user  );
    /**
     *      京东外卖
     */
    PageInfo<PreparationCommonPendingVO> JingDongPendingList(DeskRequest deskRequest, LoginUserInfo user  );

    Integer submitBusinessRemark(BusinessRemarkRequest request,  LoginUserInfo user);

}
