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.AccessFacePushRecordsDto;
import com.sptg.estate.api.entity.AccessFacePushRecords;

import java.util.List;

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

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

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

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

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

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

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

    /**
     * 功能描述:获取授权下发数量
     * @param accessFacePushRecordsDto
     * @return Long
     *
     *
     */
    Long getAccessFacePushRecordsCount(AccessFacePushRecordsDto accessFacePushRecordsDto);

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