package com.malk.server.integration;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 集成平台（IAM / 身份治理）应用凭据
 * <p>
 * 配置示例（application.yml）：
 * <pre>
 * integration:
 *   baseUrl: https://iam.example.com    # 不含 /iam 路径前缀，由 Client 内部拼接
 *   clientId: ${INTP_CLIENT_ID:}
 *   clientSecret: ${INTP_CLIENT_SECRET:}
 * </pre>
 */
@Data
@Component
@ConfigurationProperties(prefix = "integration")
public class INTPConf {

    /**
     * 集成平台域名（不含 /iam 前缀）
     */
    private String baseUrl;

    /**
     * 应用 ID
     */
    private String clientId;

    /**
     * 应用凭证
     */
    private String clientSecret;

    /**
     * UtilToken namespace（按 vendor 隔离 cache key；与 dingtalk / aliwork 等并列）
     */
    public static final String NS = "integration";

    /**
     * token 过期前提前失效（秒）
     */
    public static final int TOKEN_AHEAD_SECONDS = 60;

    /**
     * 鉴权 endpoint（请求体方式）
     */
    public static final String PATH_TOKEN = "/iam/token";

    /**
     * 用户管理 endpoint
     */
    public static final String PATH_USERS = "/iam/api/users";
    public static final String PATH_USER = "/iam/api/user";
    public static final String PATH_USERS_DELETE = "/iam/api/users/delete";
}
