package com.xindazhou.business.service.community.topic;

import com.xindazhou.business.controller.admin.community.topic.vo.TopicPageReqVO;
import com.xindazhou.business.controller.admin.community.topic.vo.TopicRespVO;
import com.xindazhou.business.controller.admin.community.topic.vo.TopicSaveReqVO;
import com.xindazhou.business.dal.community.dataobject.topic.TopicDO;
import com.xindazhou.framework.common.pojo.PageResult;

import java.util.List;

/**
 * 话题 Service 接口
 *
 * @author xindazhou
 */
public interface TopicService {

    /**
     * 创建话题
     *
     * @param createReqVO 创建信息
     * @return 话题ID
     */
    Long createTopic(TopicSaveReqVO createReqVO);

    /**
     * 更新话题
     *
     * @param updateReqVO 更新信息
     */
    void updateTopic(TopicSaveReqVO updateReqVO);

    /**
     * 删除话题
     *
     * @param id 话题ID
     */
    void deleteTopic(Long id);

    /**
     * 获得话题
     *
     * @param id 话题ID
     * @return 话题
     */
    TopicRespVO getTopic(Long id);

    /**
     * 获得话题分页列表
     *
     * @param reqVO 分页条件
     * @return 分页列表
     */
    PageResult<TopicRespVO> getTopicPage(TopicPageReqVO reqVO);

    /**
     * 获得启用的话题列表
     *
     * @return 话题列表
     */
    List<TopicRespVO> getEnabledTopicList();

}

