package com.ruoyi.dxp.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.dxp.domain.UserResource;
import com.ruoyi.dxp.domain.UserResourceItem;
import com.ruoyi.dxp.dto.AuditDto;
import com.ruoyi.dxp.dto.ResourceAuditDto;

/**
 * 用户订阅资源Service接口
 * 
 * @author jy
 * @date 2022-12-07
 */
public interface IUserResourceService 
{
    /**
     * 查询用户订阅资源
     * 
     * @param id 用户订阅资源主键
     * @return 用户订阅资源
     */
    public UserResource selectUserResourceById(Long id);

    /**
     * 查询用户订阅资源列表
     * 
     * @param userResource 用户订阅资源
     * @return 用户订阅资源集合
     */
    public List<UserResource> selectUserResourceList(UserResource userResource);

    /**
     * 新增用户订阅资源
     * 
     * @param userResource 用户订阅资源
     * @return 结果
     */
    public int insertUserResource(UserResource userResource);

    /**
     * 修改用户订阅资源
     * 
     * @param userResource 用户订阅资源
     * @return 结果
     */
    public int updateUserResource(UserResource userResource);

    /**
     * 删除用户订阅资源信息
     * 
     * @param id 用户订阅资源主键
     * @return 结果
     */
    public int deleteUserResourceById(Long id);

    /**
     * 审核
     * @param auditDto
     * @return
     */
    public AjaxResult audit(ResourceAuditDto auditDto);

    /**
     * 写入redis
     * @param userResource 用户订购资源
     * @param userResourceItem 用户订购资源项
     */
    public void writeToRedis(UserResource userResource, UserResourceItem userResourceItem);

    public void delToRedis(String callId);

    /**
     * 全部资源写入redis
     */
    public void writeToRedis();

    /**
     * 写入订阅资源
     */
    public void writeToSubscribeRedis();
}
