package com.cool.store.mapper;

import com.cool.store.dto.notice.MessageTemplateCountDTO;
import com.cool.store.entity.StoreMessageDO;
import com.cool.store.request.notice.StoreMessageRequest;
import com.cool.store.vo.notice.MessageDetailVO;
import com.cool.store.vo.notice.StoreMessageVO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface StoreMessageMapper extends Mapper<StoreMessageDO> {

    int insertBatch(@Param("list") List<StoreMessageDO> list);


    List<MessageTemplateCountDTO> getMessageTemplateCountList(@Param("templateIds") List<Long> templateIds);

    List<StoreMessageDO> getStoreMessageList(@Param("request") StoreMessageRequest request);

    int batchRevoke(@Param("ids") List<Long> ids, @Param("userId") String userId, @Param("userName") String userName);

    int revokeById(@Param("id") Long id, @Param("userId") String userId, @Param("userName") String userName);

    Integer queryStoreModuleCount(@Param("storeId") String storeId,
                                  @Param("userId") String userId,
                                  @Param("moduleCode") Integer moduleCode);

    List<StoreMessageVO> getStoreMessageListByCondition(@Param("storeId") String storeId,
                                                        @Param("moduleCode") Integer moduleCode,
                                                        @Param("todayTask") Integer todayTask,
                                                        @Param("pendingFlag") Integer pendingFlag,
                                                        @Param("userId") String userId);

    MessageDetailVO getMessageDetail(Long id);

    /**
     * 批量更新处理
     * @param id
     * @param storeCodeList
     */
    int batchUpdateHandle(@Param("id") Long id, @Param("storeCodeList") List<String> storeCodeList);

}