package com.hwrj.cloud.admin.service;

import com.hwrj.cloud.admin.common.CmsSubjectProductRelationInput;
import com.hwrj.cloud.admin.model.CmsSubject;
import com.hwrj.cloud.admin.model.CmsSubjectProductRelation;

import java.util.List;

/**
 * 商品专题Service
 * Created by macro on 2018/6/1.
 */
public interface CmsSubjectService {
    /**
     * 查询所有专题
     */
    List<CmsSubject> listAll();

    /**
     * 分页查询专题
     */
    List<CmsSubject> list(String keyword, Integer pageNum, Integer pageSize);

    /**
     * 批量插入专题
     * @param productRelationInputs
     * @param productId
     */
    void relateAndInsertList(List<CmsSubjectProductRelationInput> productRelationInputs, Long productId);

    /**
     * 批量更新
     * @param productRelationInputs
     * @param productId
     */
    void relateAndUpdateList(List<CmsSubjectProductRelationInput> productRelationInputs, Long productId);

    /**
     * 批量删除商品主题关联信息
     * @param ids
     */
     void relateAndDeleteByProductId(List<Long> ids);

    /**
     * 通过id查询关联优选
     * @param productId
     * @return
     */
    List<CmsSubjectProductRelationInput> relationByProductId(Long productId);

    /**
     * 通过分类id查询专题
     * @param id
     * @return
     */
    List<CmsSubject> subjectByCategory(Long id);

    /**
     * 通过产品关系查询主题
     * @param id
     * @return
     */
    List<CmsSubjectProductRelation> subjectRelationProduct(Long id);

    /**
     * 添加专题
     * @param cmsSubject
     * @return
     */
    int add(CmsSubject cmsSubject);

    /**
     * 修改专题
     * @param cmsSubject
     * @return
     */
    int update(CmsSubject cmsSubject);

    /**
     * 删除专题
     * @param id
     * @return
     */
    int delete(Long id);

    /**
     * 专题信息
     * @param id
     * @return
     */
    CmsSubject info(Long id);


    /**
     * 是否展示
     * @param id
     * @return
     */
    int show(Long id,Integer showStatus);


    /**
     * 获取专题所有信息
     * @param keyword
     * @return
     */
    List<CmsSubject> all(String keyword);
}
