package com.fdkankan.ucenter.service;

import com.fdkankan.ucenter.common.PageInfo;
import com.fdkankan.ucenter.entity.UserIncrement;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fdkankan.ucenter.vo.request.IncrementParam;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 用户增值权益表 服务类
 * </p>
 *
 * @author 
 * @since 2022-07-04
 */
public interface IUserIncrementService extends IService<UserIncrement> {

    Long getCountByUserId(Long userId, int type);

    PageInfo pageList(IncrementParam param);

    HashMap<Long, UserIncrement> findByCameraIds(List<Long> cameraIdList);

    Long getValidCountByCameraId(Long cameraId);

    void unbindCamera(List<Long> cameraIds);

    UserIncrement getByCameraId(Long cameraId);

    void bindCamera(IncrementParam param);

    void unbindCamera(IncrementParam param);

    void incrementExpire();

    void lockScene(List<UserIncrement> list);

    void incrementExpireSendSms() throws Exception;

    void addByCameraAndUser(List<Long> cameraIds, Long id);

    void delByCameraId(List<Long> cameraIds);

    HashMap<String, List<Long>> getByOrderSnList(Set<String> orderSn);

    List<UserIncrement> getByAutoOrderSn(String orderSn);

    void delay(UserIncrement increment);

    void cancelSubscriptions(UserIncrement increment);

    void cancelSubscription(Long incrementId);
}
