package com.xinelu.manage.mapper.subscribemessagerecord;

import com.xinelu.manage.domain.subscribemessagerecord.SubscribeMessageRecord;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 微信小程序订阅消息记录Mapper接口
 *
 * @author xinyilu
 * @date 2023-03-14
 */
public interface SubscribeMessageRecordMapper {
    /**
     * 查询微信小程序订阅消息记录
     *
     * @param id 微信小程序订阅消息记录主键
     * @return 微信小程序订阅消息记录
     */
    SubscribeMessageRecord selectSubscribeMessageRecordById(Long id);

    /**
     * 查询微信小程序订阅消息记录列表
     *
     * @param subscribeMessageRecord 微信小程序订阅消息记录
     * @return 微信小程序订阅消息记录集合
     */
    List<SubscribeMessageRecord> selectSubscribeMessageRecordList(SubscribeMessageRecord subscribeMessageRecord);

    /**
     * 新增微信小程序订阅消息记录
     *
     * @param subscribeMessageRecord 微信小程序订阅消息记录
     * @return 结果
     */
    int insertSubscribeMessageRecord(SubscribeMessageRecord subscribeMessageRecord);

    /**
     * 修改微信小程序订阅消息记录
     *
     * @param subscribeMessageRecord 微信小程序订阅消息记录
     * @return 结果
     */
    int updateSubscribeMessageRecord(SubscribeMessageRecord subscribeMessageRecord);

    /**
     * 删除微信小程序订阅消息记录
     *
     * @param id 微信小程序订阅消息记录主键
     * @return 结果
     */
    int deleteSubscribeMessageRecordById(Long id);

    /**
     * 批量删除微信小程序订阅消息记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteSubscribeMessageRecordByIds(Long[] ids);

    /**
     * 根据用户id，openid，消息模板id查询微信小程序订阅消息记录
     *
     * @param patientId  会员id
     * @param openid     openid
     * @param templateId 消息模板id
     * @return com.xinyilu.base.domain.subscribemessagerecord.SubscribeMessageRecord
     **/
    SubscribeMessageRecord selectSubscribeMessageRecordByPatientId(@Param("patientId") Long patientId, @Param("openid") String openid, @Param("templateId") String templateId);

    /**
     * 根据用户id查询微信小程序订阅消息记录次数
     *
     * @param subscribeMessageRecord 微信小程序订阅消息记录
     * @return int
     **/
    int selectSubscribeMessageRecordByCount(SubscribeMessageRecord subscribeMessageRecord);

    /**
     * 批量新增微信小程序订阅消息记录
     *
     * @param subscribeMessageRecordList 新增微信小程序订阅消息记录
     * @return int
     **/
    int insertSubscribeMessageRecordList(List<SubscribeMessageRecord> subscribeMessageRecordList);

    /**
     * 根据会员openid与templateId修改微信小程序订阅消息记录
     *
     * @param openId          微信openid
     * @param templateId      模板id
     * @param subscribeStatus 订阅状态
     * @return int
     **/
    int updateSubscribeMessageTemplateId(@Param("openId") String openId, @Param("templateId") String templateId, @Param("subscribeStatus") String subscribeStatus, @Param("patientId") Long patientId);

    /**
     * 查询
     *
     * @param ids             会员id
     * @param subscribeStatus 订阅状态
     * @param messageType     订阅消息类型
     * @return List<SubscribeMessageRecord>
     */
    List<SubscribeMessageRecord> selectSubscribeList(@Param("list") List<Long> ids, @Param("subscribeStatus") String subscribeStatus, @Param("messageType") String messageType);
}
