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 xinelu
 * @date 2024-03-19
 */
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);

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

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