package com.malk.pro.tenant;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * 租户配置档案（mjava-pro 运行时内存副本）
 *
 * <p>由 {@link TenantRegistryService} 从宜搭应用表拉取构造，写入 {@link TenantContext} ThreadLocal。</p>
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TenantProfile {

    /** 租户唯一标识（建议用客户代号，如 guangming / shunfeng）*/
    private String tenantId;

    /** 按 vendor 的授权凭据映射，key 为 vendor name */
    private Map<String, VendorCredential> vendorCredentials;

    /** 租户级扩展配置（业务自定义） */
    private Map<String, Object> extra;

    /** 是否启用；false 时从注册表移除 */
    private boolean enabled;

    /**
     * 取指定 vendor 的凭据；不存在返回 null。
     */
    public VendorCredential credential(String vendor) {
        return vendorCredentials == null ? null : vendorCredentials.get(vendor);
    }
}
