import Bridge from '../manager/BridgeManager'
import { BridgeParams } from '../types/type'
import { CoolinkSendReportParam, CoolinkRetCode } from './type'
import mpWeb from './MpWeb';

class DatalogModule {
  private static instance: DatalogModule;

  public static getModule(): DatalogModule {
    if (this.instance == null) {
      this.instance = new DatalogModule()
    }
    return DatalogModule.instance
  }

  public sendReport(param1: CoolinkSendReportParam) : Promise<CoolinkRetCode> {
    let bridgeParams : BridgeParams = {
      module: 'datalog',
      method: 'sendReport',
      params: {
        eventName: param1.eventName, 
        eventParams: param1.eventParams,
        productId: param1.productId ? param1.productId : undefined
      }
    };
    return mpWeb.callNative(bridgeParams);
  }
  
}

export default DatalogModule;
