package com.gic.haoban.manage.api.service.chat;

import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityBaseDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityQDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivitySearchQDTO;

import java.util.List;

/**
 * Created by wangzubo on 2022/10/31.
 */
public interface GroupChatActivityApiService {

    /**
     * 保存互动营销活动
     * @param qdto
     * @return
     */
    ServiceResponse<Long> saveActivity(GroupChatActivityQDTO qdto) ;

    /**
     * 获取活动详情
     * @param chatActivityId
     * @return
     */
    ServiceResponse<GroupChatActivityDTO> getActivityDetail(String enterpriseId, Long chatActivityId);

    /**
     * 获取活动详情（缓存）
     * @param chatActivityId
     * @return
     */
    ServiceResponse<GroupChatActivityDTO> getActivityDetailCache(String enterpriseId,Long chatActivityId);

    /**
     * 通过活动id列表获取
     * @param enterpriseId
     * @param chatActivityIdList
     * @return
     */
    ServiceResponse<List<GroupChatActivityBaseDTO>> listByActivityIds(String enterpriseId, List<Long> chatActivityIdList);

    /**
     * 通过活动id列表获取(包含已删除)
     * @param enterpriseId
     * @param chatActivityIdList
     * @return
     */
    ServiceResponse<List<GroupChatActivityBaseDTO>> listByActivityIdsDel(String enterpriseId, List<Long> chatActivityIdList);

    /**
     * 分页查询活动列表
     * @param enterpriseId  企业id
     * @param searchQDTO    搜索条件
     * @return
     */
    ServiceResponse<Page<GroupChatActivityDTO>> pageActivity(String enterpriseId, GroupChatActivitySearchQDTO searchQDTO, BasePageInfo pageInfo);

    /**
     * 终止活动
     * @param enterpriseId  企业id
     * @param chatActivityId 活动id
     */
    ServiceResponse<GroupChatActivityDTO> stopActivity(String enterpriseId, Long chatActivityId) ;

    /**
     * 删除活动
     * @param enterpriseId  企业id
     * @param chatActivityId 活动id
     */
    ServiceResponse<Void> delActivity(String enterpriseId, Long chatActivityId) ;

}
