package com.yonge.cooleshow.biz.dal.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.biz.dal.entity.SysUser;
import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
import com.yonge.cooleshow.common.entity.HttpResponseResult;

import java.util.List;
import java.util.Map;

/**
 * 机构表
 * 2023-07-21 17:26:59
 */
public interface TenantInfoService extends IService<TenantInfo>  {

	/**
     * 查询详情
     * @param id 详情ID
     * @return TenantInfo
     */
    TenantInfo detail(Long id);

    /**
     * 查询机构详情
     * @param id 详情ID
     * @return TenantInfo
     */
    TenantInfoWrapper.TenantInfo detailTenantInfo(Long id);


    /**
     * 分页查询
     * @param query TenantInfoWrapper.TenantInfoQuery
     * @return IPage<TenantInfo>
     */
    IPage<TenantInfoWrapper.TenantInfo> selectPage(TenantInfoWrapper.TenantInfoQuery query);
	
    /**
     * 添加
     * @param tenantInfo TenantInfoWrapper.TenantInfo
     * @return Boolean
     */
    Boolean add(TenantInfo tenantInfo);

    /**
     * 更新
     * @param info TenantInfoWrapper.TenantInfo
     * @return Boolean
     */
    Boolean update(TenantInfo info);

    /**
     * 机构信息
     *
     * @param tenantIds 机构ID
     */
    Map<Long,TenantInfo> getMapByIds(List<Long> tenantIds);

    HttpResponseResult<Boolean> submit(TenantInfoWrapper.TenantInfoQuery query);

    /**
     * 冻结
     * @param updateStatus
     * @return
     */
    Boolean updateStatus(TenantInfoWrapper.UpdateStatus updateStatus);



    /**
     * 机构申请分页查询
     * @param query
     * @return
     */
    IPage<TenantInfoWrapper.TenantInfo> applyPage(IPage<TenantInfoWrapper.TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query);

    /**
     * 机构入驻审核历史记录查询
     * @param query
     * @return
     */
    IPage<TenantInfoWrapper.TenantInfo> historyPage(IPage<TenantInfoWrapper.TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query);

    /**
     * 机构入驻审核本次提交查询
     * @param query
     * @return
     */
    TenantInfoWrapper.TenantInfo queryNow(TenantInfoWrapper.TenantInfoQuery query);

    /**
     * 机构审核
     * @param query
     * @return
     */
    Boolean entry(TenantInfoWrapper.TenantInfoQuery query);

    TenantInfoWrapper.TenantInfo Infodetail(Long id);

    Boolean updateTenantInfo(TenantInfo tenantInfo, Long tenantId);

    Boolean updateSysUser(SysUser sysUser, Long id);
}