package com.reactnativezoom.videosdk.convert;

import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableNativeArray;
import com.facebook.react.bridge.Arguments;
import java.util.List;

import us.zoom.sdk.ZoomVideoSDKShareAction;
import us.zoom.sdk.ZoomVideoSDKShareType;

public class RNZoomVideoSdkShareAction {

  public static ReadableArray mapShareActionArray(List<ZoomVideoSDKShareAction> shareActionList) {
    WritableArray mappedShareActionArray = new WritableNativeArray();
    for (ZoomVideoSDKShareAction shareAction : shareActionList) {
      mappedShareActionArray.pushMap(mapShareAction(shareAction));
    }
    return mappedShareActionArray;
  }

  public static ReadableMap mapShareAction(ZoomVideoSDKShareAction shareAction) {
    WritableMap mappedShareAction = Arguments.createMap();
    if (shareAction == null) {
      return mappedShareAction;
    }

    mappedShareAction.putInt("shareSourceId", shareAction.getShareSourceId());
    mappedShareAction.putString("shareStatus", RNZoomVideoSdkShareStatus.valueOf(shareAction.getShareStatus()));
    mappedShareAction.putString("shareType", RNZoomVideoSdkShareType.valueOf(shareAction.getShareType()));
    mappedShareAction.putString("subscribeFailReason", RNZoomVideoSdkVideoSubscribeFailReason.valueOf(shareAction.getSubscribeFailReason()));
    mappedShareAction.putBoolean("isAnnotationPrivilegeEnabled", shareAction.isAnnotationPrivilegeEnabled());

    return mappedShareAction;
  }
}
