package com.yc.ship.module.miniapplet.service.content;


import com.yc.ship.framework.common.pojo.PageResult;
import com.yc.ship.module.miniapplet.controller.admin.content.vo.ContentPageReqVO;
import com.yc.ship.module.miniapplet.controller.admin.content.vo.ContentSaveReqVO;
import com.yc.ship.module.miniapplet.controller.app.content.vo.AppContentPageReqVO;
import com.yc.ship.module.miniapplet.dal.dataobject.content.ContentDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 目录内容 Service 接口
 *
 * @author 管理员
 */
public interface ContentService {

    /**
     * 创建目录内容
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createContent(@Valid ContentSaveReqVO createReqVO);

    /**
     * 更新目录内容
     *
     * @param updateReqVO 更新信息
     */
    void updateContent(@Valid ContentSaveReqVO updateReqVO);

    /**
     * 删除目录内容
     *
     * @param id 编号
     */
    void deleteContent(Long id);

    /**
     * 获得目录内容
     *
     * @param id 编号
     * @return 目录内容
     */
    ContentDO getContent(Long id);

    /**
     * 获得目录内容分页
     *
     * @param pageReqVO 分页查询
     * @return 目录内容分页
     */
    PageResult<ContentDO> getContentPage(ContentPageReqVO pageReqVO);


    /**
     * 根据目录类型获得目录内容
     *
     * @param catalogueId 编号
     * @return 目录内容
     */
    List<ContentDO> getContentList(Long catalogueId,Integer releaseStatus);

    /**
     * 获取小程序上的内容分页
     * @param reqVO
     * @return
     */
    PageResult<ContentDO> getAppContentPage(AppContentPageReqVO reqVO);

    PageResult<ContentDO> getAppContentPageByCatalogueId(AppContentPageReqVO reqVO);
}
