package com.hzs.member.base.service;

import cn.hutool.core.lang.tree.Tree;
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
import com.hzs.member.base.param.CuMemberPointPairParam;
import com.hzs.member.structure.controller.dto.CuMemberPointDTO;
import com.hzs.member.structure.controller.vo.ChildCodeVO;
import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO;
import com.hzs.member.structure.controller.vo.CuMemberPointListVO;
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;

import java.util.List;
import java.util.Set;

public interface ICumemberRetailDetailService {
    List<ChildCodeVO> getChildList(String memberCode, Integer stage, Integer stageStatus, String settleTableName);

    Integer getFindCumemberRetailDetail(String settleTableName);

    List<Tree<String>> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail,String settleTableName);

    CuMemberRetailDetail getCuMemberRetailDetailByUserId(Long userId, Integer stage, Integer stageStatus, String childNode, String settleTableName);

    List<ChildCodeVO> getChildListByUserId(Long userId, Integer stage, Integer stageStatus, String settleTableName);

    List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus);


    CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName);

    List<CuMemberPointDTO> getPointDetailListByPoints(List<CuMemberPointPairParam> pairList, Integer stage, String settleTableName);

    List<CuMemberPointListVO> convertToList(CuMemberRetailDetail cuMemberRetailDetail, String settleTableName);
}
