/*
 * Copyright (c) 京北方信息技术股份有限公司 Corporation 2021 . All rights reserved.
 *
 */
package net.northking.cctp.common.saas.cache;

import com.hzbank.testteam.autotest.dependencies.baseDefineDependency.utils.EnvironmentUtil;
import net.northking.cctp.common.saas.Tenant;

import java.util.Map;

/**
 * 静态租户缓存，用于非SaaS模式
 *
 * @author : xiusong.xie
 * @version : 1.0
 */
public class StaticTenantCache implements SaaSTenantCache {

    public static final String DEFAULT_TENANT_ID_KEY = "uiDefaultTenant.tenantId";
    public static final String DEFAULT_TENANT_CODE_KEY = "uiDefaultTenant.tenantCode";
    public static final String DEFAULT_TENANT_NAME_KEY = "uiDefaultTenant.tenantName";
    public static final String DEFAULT_TENANT_MAX_ONLINE_KEY = "uiDefaultTenant.maxOnlineUser";

    private static Tenant DEFAULT_TENANT;

    @Override
    public Tenant findTenantById(String tenantId) {
        return getDefaultTenant();
    }

    @Override
    public void save(Map<String, Tenant> map) {

    }

    @Override
    public void save(Tenant tenant) {

    }

    @Override
    public void remove(String uuid) {

    }

    public static Tenant getDefaultTenant() {
        Tenant tenant = null;
        if (DEFAULT_TENANT == null) {
            synchronized (StaticTenantCache.class) {
                if (DEFAULT_TENANT == null) {
                    tenant = new Tenant();
                    tenant.setId(EnvironmentUtil.getPropertiesByKey(DEFAULT_TENANT_ID_KEY));
                    tenant.setTenantCode(EnvironmentUtil.getPropertiesByKey(DEFAULT_TENANT_CODE_KEY));
                    tenant.setTenantName(EnvironmentUtil.getPropertiesByKey(DEFAULT_TENANT_NAME_KEY));
                    tenant.setMaxOnlineUser(Integer.valueOf(EnvironmentUtil.getPropertiesByKey(DEFAULT_TENANT_MAX_ONLINE_KEY)));
                }
            }
        }
        return tenant;
    }

    public static String getDefaultTenantId() {
        Tenant defaultTenant = getDefaultTenant();
        return defaultTenant.getId();
    }
}
