package cn.cslg.pas.service;

import cn.cslg.pas.common.JsonPage;
import cn.cslg.pas.common.model.dto.*;
import cn.cslg.pas.common.model.vo.ProductCategoryTrendVO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 产品类别的Service层接口
 *
 * @Author chenyu
 * @Date 2023/3/7
 */
public interface IProductCategoryService {
    /**
     * 新增产品类别
     *
     * @param productCategoryAddNewDTO 产品类别数据对象
     * @param files                    产品类别图片
     */
    @Transactional
    void addNew(ProductCategoryAddNewDTO productCategoryAddNewDTO, List<MultipartFile> files);

    /**
     * 分页查询产品类别
     *
     * @param productCategoryQueryPageDTO 分页信息
     */
    JsonPage query(ProductCategoryQueryPageDTO productCategoryQueryPageDTO);

    /**
     * 修改产品类别
     *
     * @param productCategoryUpdateDTO 产品类别数据对象
     * @param files                    产品类别图片
     */
    @Transactional
    void update(ProductCategoryUpdateDTO productCategoryUpdateDTO, List<MultipartFile> files);

    /**
     * 删除产品类别
     *
     * @param id 产品类别id
     */
    @Transactional
    void delete(Integer id);

    /**
     * 查询产品架构趋势图
     *
     * @param dto
     * @autor lrj
     */
    @Transactional
    List<ProductCategoryTrendVO> showTrend(ProductCategoryDTO dto);

    List<String> getAreaList(GetAreaListDTO dto);

    List<String> getCompanyList(Integer id);
}
