import { DataManager } from './../manager/DataManager';
import { IExposureData } from '../data/common/IExposureData';
import { NetPromise } from '../../../src/NetPromise';
// import { IExposureData } from '..';

export class Buried {
    private static appId: number;
    private static consumerId: number;
    private static oaId: number;

    /**
     * 初始化
     */
    public static init(): void {
        this.appId = window["appId"];
        this.oaId = window["projectId"];
    }

    /**
     * 创建dpm埋点数据
     * @param {string} dpm 点击埋点
     * @param {string} dcm 曝光埋点
     * @param {string} embedDomain 埋点域名
     * @returns {{dpm: string; consumerId: number; domain: string; appId: number}}
     */
    public static createExposure(dpm: string, dcm: string, embedDomain = '//embedlog.duiba.com.cn'): IExposureData {
        let dom
        if (NetPromise.ins.isWeiXin()) {
            dom = "2.0.0.0"
        } else {
            dom = "1.0.0.0"
        }

        const exposure = {
            dpm: dpm,
            dcm: dcm,
            dom: dom,
            appId: Buried.appId,
            domain: embedDomain
        };
        return exposure;
    }

    /**
     * dpm拼接
     * @param pageId 页面ID 
     * @param area 区域
     * @param dpm 埋点号
     * @returns {string}
     */
    public static connectDpm(pageId: number, area: number, dpm: number): string {
        return Buried.appId + '.' + pageId + '.' + area + '.' + dpm;
    }

    /**
     * dcm拼接
     * @param typeId 类型ID
     * @param contentInfo 内容信息
     * @param dcm 埋点号
     * @returns {string}
     */
    public static connectDcm(typeId: number, contentInfo: number, dcm: number): string {
        return typeId + '.' + Buried.oaId + '.' + contentInfo + '.' + dcm;
    }

    /**
     * 插件dcm拼接
     * @param plugId 插件ID
     * @param type 1 活动工具 2 主会场 4 楼层 5 游戏 7 子页面
     * @returns {string}
     */
    public static connectPlugDcm(plugId: number, type: number): string {
        return 212 + '.' + plugId + '.' + type + '.' + Buried.oaId;
    }

    /**
     * 活动dcm拼接
     * @param type 1 活动工具 2 主会场 4 楼层 5 游戏 7 子页面
     * @returns {string}
     */
    public static connectActivityDcm(type: number): string {
        return 202 + '.' + Buried.oaId + '.' + type + '.' + Buried.oaId;
    }

}
