package com.palmnest.service.estateserve;

import com.alibaba.fastjson.JSONObject;
import com.palmnest.application.bean.Page;
import com.palmnest.application.bean.Pagenation;
import com.palmnest.application.core.util.Pages;
import com.palmnest.model.estateserve.ProductCategories;
import com.palmnest.service.GenericManager;
import org.springframework.ui.ModelMap;

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

public interface ServicePackManager extends GenericManager<Object, Integer> {

	/**
	 * 查询服务项列表
	 *
	 * @param modelMap
	 * @return
	 */
	public Pagenation<Map<String, String>> queryServicePackList(ModelMap modelMap);

	/**
	 * 删除服务项
	 *
	 * @param id
	 * @param yesorno0
	 * @return
	 */
	public JSONObject deleteServicePack(String id, String isEnabled);

	/**
	 * 删除图片
	 *
	 * @param id
	 * @return
	 */
	public JSONObject deletePicture(String id);

	/**
	 * 查询服务项详情列表
	 *
	 * @param modelMap
	 * @return
	 */
	public Pages<Map<String, String>> queryServicePackDetailsList(ModelMap modelMap);

	/**
	 * 查询服务项列表
	 *
	 * @return
	 */
	public List<Map<String, String>> queryServiceList();

	/**
	 * 根据服务id查询
	 * 查询服务项列表
	 *
	 * @return
	 */
	public List<Map<String, String>> queryServiceList(String serviceId);

	/**
	 * 查询服务项商品详情信息
	 *
	 * @param id
	 * @return
	 */
	public Map<String, String> queryServicePackDetails(String id);

	/**
	 * 添加服务
	 *
	 * @param map
	 * @return
	 */
	public JSONObject addServicePackDetails(Map<String, String> map);

	/**
	 * 删除物品
	 *
	 * @param id
	 * @param yesorno0
	 * @return
	 */
	public JSONObject deleteServicePackDetails(String id, String isEnabled);

	/**
	 * 查询商品分类类型
	 *
	 * @param modelMap
	 * @return
	 */
	public Pages<Map<String, String>> queryProductCategoriesList(ModelMap modelMap);

	/**
	 * 添加商品分类类型
	 *
	 * @param map
	 * @return
	 */
	public JSONObject addProductCategories(Map<String, String> map);

	/**
	 * 添加商品分类类型详情
	 *
	 * @param id
	 * @return
	 */
	public Map<String, String> queryProductCategories(String id);

	/**
	 * 删除商品分类
	 *
	 * @param id
	 * @param yesorno0
	 * @return
	 */
	public JSONObject deleteProductCategories(String id, String isEnabled);

	/**
	 * 根据服务项id查询商品分类列表
	 *
	 * @return
	 */
	public List<Map<String, String>> queryCategoriesList(String serviceId);

	/**
	 * 根据分类大类的业务编码
	 * 查询分类子项目信息
	 *
	 * @return
	 */
	public List<ProductCategories> queryCategoriesListByServiceCode(String serviceCode);

	/**
	 * 查询分类详情信息
	 *
	 * @param serviceCode 业务编码
	 * @return
	 */
	public ProductCategories querProductCategoriesByServiceCode(String serviceCode);


	/**
	 * 根据分类id查询商品信息
	 *
	 * @param categoriesId
	 * @return
	 */
	public List<Map<String, String>> queryServicePackDetailsList(String categoriesId);

	/**
	 * 根据商品id查询商品列表信息
	 *
	 * @param dataIdarr
	 * @return
	 */
	public List<Map<String, String>> queryServiceDetailsList(String dataIdarr);

	/**
	 * 根据id查询服务详情
	 *
	 * @param serviceId
	 * @return
	 */
	public Map<String, String> queryServiceDetails(String serviceId);

	/**
	 * 查询分类列表
	 *
	 * @param whereSql
	 * @param pageSize
	 * @param pageNo
	 * @return
	 */
	public Page getProductCategoriesPage(String whereSql, Integer pageSize, Integer pageNo) throws Exception;

	/**
	 * 根据父级节点查询子级列表
	 *
	 * @param parentCode
	 * @return
	 */
	public List<Map<String, Object>> getProductCategoriesNodes(String parentCode) throws Exception;

	/**
	 * 保存或修改父级或子级分类信息
	 *
	 * @param productCategories
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> saveUpdateProductCategories(ProductCategories productCategories) throws Exception;

	/**
	 * 查询分类对象
	 *
	 * @param id 唯一编码
	 * @return
	 */
	public ProductCategories querProductCategoriesById(Integer id) throws Exception;

	/**
	 * 删除父级子级分类
	 *
	 * @param productCategories
	 * @return
	 */
	public String delProductCategories(ProductCategories productCategories) throws Exception;

}
