package com.cool.store.service;

import com.cool.store.dto.label.LabelGroupAddDTO;
import com.cool.store.dto.label.LabelGroupDeleteDTO;
import com.cool.store.dto.label.LabelGroupListDTO;
import com.cool.store.dto.label.LabelGroupUpdateDTO;
import com.cool.store.entity.HyPartnerLabelGroupDO;
import com.cool.store.exception.ApiException;
import com.cool.store.vo.LabelGroupListVo;

import java.util.List;

/**
 * @author Fun Li 2023/8/10 13:34
 * @version 1.0
 */
public interface LabelGroupService {

    /**
     * 查询标签组信息列表
     * @param dto 查询条件
     */
    List<LabelGroupListVo> getLabelGroupList(LabelGroupListDTO dto);

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

    /**
     * 修改标签组信息
     * @param dto 修改内容
     */
    void updateLabelGroup(LabelGroupUpdateDTO dto) throws ApiException;

    /**
     * 删除标签组
     * @param dto 待删除标签组信息
     */
    void deleteLabelGroup(LabelGroupDeleteDTO dto) throws ApiException;

    /**
     * 获取所有标签组
     */
    List<LabelGroupListVo> getAllLabelGroupList();

    /**
     * 添加ec标签组
     * @param hyPartnerLabelGroupDO
     */
    void addEcLabelGroup(HyPartnerLabelGroupDO hyPartnerLabelGroupDO);

    HyPartnerLabelGroupDO selectByPrimaryKey(Long id);

    List<LabelGroupListVo> getLabelGroupListOrder();

}
