package com.qiaoba.module.tenant.service;

import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.module.tenant.entity.SysTenant;
import com.qiaoba.module.tenant.entity.param.SysTenantParam;
import com.qiaoba.module.tenant.entity.vo.TenantSettingVo;

import java.sql.Connection;

/**
 * 租户管理 服务层
 *
 * @author ailanyin
 * @version 1.0
 * @since 2023/5/30 10:55
 */
public interface SysTenantService {

    /**
     * 新增租户
     *
     * @param sysTenant 租户信息
     * @return 结果
     */
    int insert(SysTenant sysTenant);

    /**
     * 修改租户
     *
     * @param sysTenant 租户信息
     * @return 结果
     */
    int update(SysTenant sysTenant);

    /**
     * 获取租户列表
     *
     * @param param     param
     * @param pageQuery 分页参数
     * @return list
     */
    TableDataInfo<SysTenant> selectPageList(SysTenantParam param, PageQuery pageQuery);

    /**
     * 查询详情
     *
     * @param tenantId tenantId
     * @return info
     */
    SysTenant selectById(String tenantId);

    /**
     * 在缓存中查询详情
     *
     * @param tenantId tenantId
     * @return info
     */
    SysTenant selectFromCache(String tenantId);

    /**
     * 初始化数据
     *
     * @param tenantId tenantId
     * @throws Exception Exception
     */
    void initData(String tenantId) throws Exception;

    /**
     * 更改状态
     *
     * @param tenantId tenantId
     * @param status   status
     */
    void updateStatus(String tenantId, String status);

    /**
     * 更新缓存
     */
    void resetCache();
}
