import { logger, Value } from 'mslib'
import { Container } from "typescript-ioc";

/**
 * 共享库配置， 配置中心配置
 * ```
 */

export type Config = {
    /**
     * 基础配置
     */
    memberapi_config?: MemberConfig;


}


/**
 * 统一接口配置接口
 * 
 * @see {@link Config}
 */
export type MemberConfig = {
    /**
     * 会员模版使用加密的key
     */
    key?: string;

    /**
     * 会员模版使用加密的iv
     */
    iv?: string;

    /**
     * 会员模版toekn使用加密秘钥
     */
    jwtSecret?: string;
}

/**
 * 项目基础配置
 * 
 * @see {@link Config}
 */
export type BasicConfig = {
    /**
     * 项目[tapdId](https://www.tapd.cn/my_worktable)
     */
    tapdId: any;
}


/**
 * ioc配置provider
 */
export class IocConfigProvider {

    @Value('memberConfig.key')
    static key: string;

    @Value('memberConfig.iv')
    static iv: string;

    @Value('memberConfig.jwtSecret')
    static jwtSecret: string;
    /**
     * return Container.getValue('config.memberConfig')
     */
    static getMemberConfig(): MemberConfig {
        return { key: this.key, iv: this.iv, jwtSecret: this.jwtSecret }
    }


    /**
    * return Container.getValue('config.basic')
    */
    static getBasicConfig(): BasicConfig {
        return Container.getValue('config.basic');
    }

}