package com.org.hktshop.Interface.product;

import com.org.hktshop.entity.Page;
import com.org.hktshop.entity.admin.HktAdmin;
import com.org.hktshop.entity.product.HktGoodsCategory;
import com.org.hktshop.entity.vo.HktBrandInfo;
import com.org.hktshop.entity.vo.HktGoodsCategoryVo;
import com.org.hktshop.utils.Ret;

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

/****
 * 商品属性接口
 * @author tw
 */
public interface IHktGoodsCategoryService {

    void InitData(boolean isDelete);

    /****
     * 查询分类列表
     * @param category
     * @return
     */
    List<HktGoodsCategory> queryLists(HktGoodsCategory category);

    /****
     * 查询具有等级结构的
     * @return
     */
    List<HktGoodsCategoryVo> queryCategoryVo(HktGoodsCategory category);


    /****
     * 分页查询
     * @param category
     * @return
     */
    Page<HktGoodsCategory> queryPage(HktGoodsCategory category);

    /****
     * 查询单个分类
     * @param category
     * @return
     */
    HktGoodsCategory queryCategory(HktGoodsCategory category);

    /****
     * 删除分类
     * 1.删除分类记录，存在该记录下的商品记录则不允许删除
     * 2.删除分类 属性记录
     * @param opUser
     * @param category
     * @return
     */
    Ret deleteCategory(HktAdmin opUser, HktGoodsCategory category);

    /****
     * 更新/新增 商品分类记录
     * 商品分类属性不在这里添加
     * @param opUser
     * @param category
     * @return
     */
    Ret updateCategory(HktAdmin opUser, HktGoodsCategory category) throws Exception;

    /*****
     * 更新 上架产品数量
     * @return
     */
    boolean updateCategoryForOnSell();

    /**
     * 根据IDS查出对应的分类名称
     */
    Map<String,String> selectCategoryByIds(List<String> set);

    /**
     * 根据弗雷id查出对应额子类
     */
    List<HktGoodsCategory> getCategoryByParentId(String id);

    /**
     * 小程序分类菜单
     * @param
     * @return
     */
    List<HktGoodsCategory> appProductMenu();


    /**
     * 根据名称查询分类
     * @param name
     * @return
     */
    List<HktBrandInfo> branCategoryList(String[] name);

    /**
     * 修改分类排序
     * @param category
     * @return
     */
    Ret updateSort(HktGoodsCategory category);
}
