package com.sptg.estate.biz.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.sptg.common.core.beans.ResultBean;
import com.sptg.estate.api.dto.AccessCardPushRecordsDto;
import com.sptg.estate.api.entity.AccessCardPushRecords;

import java.util.List;

/**
 * title: AccessCardPushRecordsServiceInterface
 * package: com.sptg.estate.biz.security
 * description:授权下发记录 服务层接口
 *
 *
 *
 */
public interface AccessCardPushRecordsServiceInterface extends IService<AccessCardPushRecords> {
    /**
     * 功能描述:授权下发记录列表查询
     * @param accessPushRecordsDto 授权下发记录业务对象（含分页及查询条件）
     * @return ResultBean<Page<AccessCardPushRecords>>
     *
     *
     */
    ResultBean<Page<AccessCardPushRecords>> showAccessCardPushRecordsList(AccessCardPushRecordsDto accessPushRecordsDto);

    /**
     * 功能描述:根据Id查授权下发记录
     * @param id 必填
     * @return AccessCardPushRecords
     *
     *
     */
    AccessCardPushRecords findAccessCardPushRecordsById(Long id);

    /**
     * 功能描述:根据userId查授权下发记录
     * @param userId 必填
     * @return AccessCardPushRecords
     *
     *
     */
    List<AccessCardPushRecords> findAccessCardPushRecordsByUserId(Long userId);

    /**
     * 功能描述:添加授权下发记录
     * @param accessPushRecords 授权下发记录业务对象
     * @return ResultBean<Boolean>
     *
     *
     */
    ResultBean<Boolean> addAccessCardPushRecords(AccessCardPushRecords accessPushRecords);

    /**
     * 功能描述:编辑授权下发记录
     * @param accessPushRecordsDto 授权下发记录业务对象
     * @return ResultBean<Boolean>
     *
     *
     */
    ResultBean<Boolean> updateAccessCardPushRecords(AccessCardPushRecordsDto accessPushRecordsDto);

    /**
     * 功能描述:编辑更新授权下发记录
     * @param accessPushRecordsList 授权下发记录业务对象
     * @return ResultBean<Boolean>
     *
     *
     */
    ResultBean<Boolean> updateAccessCardPushRecords(List<AccessCardPushRecords> accessPushRecordsList);

    /**
     * 功能描述:删除授权下发记录
     * @param accessPushRecordsDto 授权下发记录业务对象
     * @return ResultBean<Boolean>
     *
     *
     */
    ResultBean<Boolean> deleteAccessCardPushRecords(AccessCardPushRecordsDto accessPushRecordsDto);

    /**
     * 功能描述:获取授权下发数量
     * @param accessPushRecordsDto
     * @return Long
     *
     *
     */
    Long getAccessCardPushRecordsCount(AccessCardPushRecordsDto accessPushRecordsDto);

    /**
     * 功能描述:根据userId查询
     * @param userId
     * @return ResultBean<AccessCardPushRecords>
     *
     *
     */
    ResultBean<AccessCardPushRecords> getListByUserId(Long userId, Integer accessUserType, Integer specialDevice);
}
