package com.cool.store.dao;

import cn.hutool.core.collection.CollUtil;
import com.cool.store.dto.notice.MessageTemplateCountDTO;
import com.cool.store.entity.StoreMessageDO;
import com.cool.store.mapper.StoreMessageMapper;
import com.cool.store.request.notice.StoreMessageRequest;
import com.cool.store.vo.notice.MessageDetailVO;
import com.cool.store.vo.notice.StoreMessageVO;
import io.swagger.models.auth.In;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author suzhuhong
 * @Date 2025/7/25 15:04
 * @Version 1.0
 */
@Repository
public class StoreMessageDAO {

    @Resource
    StoreMessageMapper storeMessageMapper;



    public StoreMessageDO getById(Long id){
        return storeMessageMapper.selectByPrimaryKey(id);
    }

    public int update(StoreMessageDO storeMessageDO){
        return storeMessageMapper.updateByPrimaryKey(storeMessageDO);
    }

    /**
     * 批量新增
     * @param list
     * @return
     */
    public int batchInsert(List<StoreMessageDO> list){
        if (CollectionUtils.isEmpty(list)){
            return 0;
        }
        return storeMessageMapper.insertBatch(list);
    }

    public List<MessageTemplateCountDTO> getMessageTemplateCountList(List<Long> templateIds){
        if (CollUtil.isEmpty(templateIds)){
            return new ArrayList<>();
        }
        return storeMessageMapper.getMessageTemplateCountList(templateIds);
    }

    public List<StoreMessageDO> getStoreMessageList(StoreMessageRequest request){
        return storeMessageMapper.getStoreMessageList(request);
    }

    public  Integer batchRevoke(List<Long> ids, String userId, String userName){
        if (CollectionUtils.isEmpty(ids)){
            return 0;
        }
        return storeMessageMapper.batchRevoke(ids,userId,userName);
    }

    public  Integer revokeById(Long id, String userId, String userName){
        if (id == null){
            return 0;
        }
        return storeMessageMapper.revokeById(id,userId,userName);
    }

    public Integer queryStoreModuleCount(String storeId,String userId, Integer moduleCode){
        if (storeId == null|| userId == null){
            return 0;
        }
        return storeMessageMapper.queryStoreModuleCount(storeId,userId,moduleCode);
    }

    public List<StoreMessageVO> getStoreMessageListByCondition(String storeId, Integer moduleCode, Integer todayTask, Integer pendingFlag, String userId){
        return storeMessageMapper.getStoreMessageListByCondition(storeId,moduleCode,todayTask,pendingFlag,userId);
    }

    public MessageDetailVO getMessageDetail(Long id){
        return storeMessageMapper.getMessageDetail(id);
    }

    public  Integer batchUpdateHandle(Long id, List<String> storeCodeList){
        if (id==null||CollectionUtils.isEmpty(storeCodeList)){
            return 0;
        }
        return storeMessageMapper.batchUpdateHandle(id,storeCodeList);
    }
}
