package com.yuchen.saas.park.service.service.door.config;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuchen.saas.park.api.commons.PageWrapper;
import com.yuchen.saas.park.service.mapper.domain.config.details.DoorAccessControlConfigDetailsCondition;
import com.yuchen.saas.park.service.mapper.domain.config.details.UserDoorAccessControlCondition;
import com.yuchen.saas.park.service.mapper.domain.config.details.UserDoorAccessControlRO;
import com.yuchen.saas.park.service.mapper.domain.config.mapping.*;
import com.yuchen.saas.park.service.mapper.domain.task.DoorAccessControlConfigIssueTaskCondition;
import com.yuchen.saas.park.service.service.domain.DoorAccessControlConfigDetailsSO;
import com.yuchen.saas.park.service.service.domain.DoorAccessControlConfigMappingDepartmentGroupSO;
import com.yuchen.saas.park.service.service.domain.task.DoorAccessControlConfigIssueTaskSO;

public interface DoorAccessControlQueryService {
    IPage<DoorAccessControlConfigIssueTaskSO> pageConfigIssueTaskByCondition(PageWrapper<DoorAccessControlConfigIssueTaskCondition> o);

    // ------------------------
    IPage<DoorAccessControlConfigDetailsSO> pageForDoorAccessControlConfigDetails(PageWrapper<DoorAccessControlConfigDetailsCondition> o);

    IPage<DoorAccessControlConfigMappingDepartmentGroupSO> pageForDepartmentGroup(PageWrapper<DoorAccessControlConfigMappingDepartmentGroupCondition> o);

    IPage<UserDoorAccessControlRO> pageUserDoorAccessControl(PageWrapper<UserDoorAccessControlCondition> o);

    // ------------------------

    IPage<DoorAccessControlConfigMappingDepartmentPersonalRO> pageForDepartmentPersonal(PageWrapper<DoorAccessControlConfigMappingDepartmentPersonalCondition> o);

    IPage<DoorAccessControlConfigMappingGroupGroupRO> pageForGroupGroup(PageWrapper<DoorAccessControlConfigMappingGroupGroupCondition> o);

    IPage<DoorAccessControlConfigMappingGroupPersonalRO> pageForGroupPersonal(PageWrapper<DoorAccessControlConfigMappingGroupPersonalCondition> o);

    IPage<DoorAccessControlConfigMappingPersonalGroupRO> pageForPersonalGroup(PageWrapper<DoorAccessControlConfigMappingPersonalGroupCondition> o);

    IPage<DoorAccessControlConfigMappingPersonalPersonalRO> pageForPersonalPersonal(PageWrapper<DoorAccessControlConfigMappingPersonalPersonalCondition> o);
}
