package com.cool.store.service;

import com.cool.store.dto.label.LabelAddDTO;
import com.cool.store.dto.label.LabelDeleteDTO;
import com.cool.store.dto.label.LabelListDTO;
import com.cool.store.dto.label.LabelUpdateDTO;
import com.cool.store.entity.HyPartnerLabelDO;
import com.cool.store.exception.ApiException;
import com.cool.store.vo.LabelGroupVO;
import com.cool.store.vo.LabelListVo;

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

/**
 * @author Fun Li 2023/8/10 14:23
 * @version 1.0
 */
public interface LabelService {

    /**
     * 获取数组列表
     *
     * @param dto 查询条件
     */
    List<LabelListVo> getLabelList(LabelListDTO dto);

    /**
     * 添加标签组
     * @param dto 新增标签组信息
     */
    void addLabel(LabelAddDTO dto) throws ApiException;

    /**
     * 标签MAP
     * @param userPortraitStrList
     * @return
     */
    Map<Long,String> getUserPortraitMap(List<String> userPortraitStrList);

    /**
     * 查询标签中文名称集合
     * @param userPortraitMap
     * @param userPortraitStr
     * @return
     */
    List<String> getUserPortraitList(Map<Long,String> userPortraitMap,String userPortraitStr);

    /**
     * 修改标签信息
     * @param dto 新标签信息
     */
    void updateLabel(LabelUpdateDTO dto) throws ApiException;

    /**
     * 删除标签
     * @param dto
     */
    void deleteLabel(LabelDeleteDTO dto);

    HyPartnerLabelDO selectByPrimaryKey(Long classId);

    void addEcLabel(HyPartnerLabelDO hyPartnerLabelDO);

    List<LabelGroupVO> getAllGroupAndLabelList();
}
