import { Platform } from 'react-native';
import { ResourceType } from '../components/knowledgebase/types/KnowledgeBase';
import { ZSIQTabs } from '../types/Listener';
import RNZohoSalesIQ from './utils';

const ZohoSalesIQConstants = Platform.OS == 'android' ? RNZohoSalesIQ.getConstants() : RNZohoSalesIQ

export const ZSIQListenerEvents = {
  EVENT_SUPPORT_OPENED: ZohoSalesIQConstants.SUPPORT_OPENED,
  EVENT_SUPPORT_CLOSED: ZohoSalesIQConstants.SUPPORT_CLOSED,
  EVENT_VISITOR_IPBLOCKED: ZohoSalesIQConstants.VISITOR_IPBLOCKED,
  EVENT_OPERATORS_ONLINE: ZohoSalesIQConstants.OPERATORS_ONLINE,
  EVENT_OPERATORS_OFFLINE: ZohoSalesIQConstants.OPERATORS_OFFLINE,

  EVENT_CHATVIEW_OPENED: ZohoSalesIQConstants.CHATVIEW_OPENED,
  EVENT_CHATVIEW_CLOSED: ZohoSalesIQConstants.CHATVIEW_CLOSED,
  EVENT_CHAT_OPENED: ZohoSalesIQConstants.CHAT_OPENED,
  EVENT_CHAT_CLOSED: ZohoSalesIQConstants.CHAT_CLOSED,
  EVENT_CHAT_REOPENED: ZohoSalesIQConstants.CHAT_REOPENED,
  EVENT_CHAT_ATTENDED: ZohoSalesIQConstants.CHAT_ATTENDED,
  EVENT_CHAT_MISSED: ZohoSalesIQConstants.CHAT_MISSED,
  EVENT_CHAT_QUEUE_POSITION_CHANGED: ZohoSalesIQConstants.CHAT_QUEUE_POSITION_CHANGED,
  EVENT_CHAT_UNREAD_COUNT_CHANGED: ZohoSalesIQConstants.CHAT_UNREAD_COUNT_CHANGED,
  EVENT_FEEDBACK_RECEIVED: ZohoSalesIQConstants.FEEDBACK_RECEIVED,
  EVENT_RATING_RECEIVED: ZohoSalesIQConstants.RATING_RECEIVED,

  EVENT_ARTICLE_LIKED: ZohoSalesIQConstants.ARTICLE_LIKED,
  EVENT_ARTICLE_DISLIKED: ZohoSalesIQConstants.ARTICLE_DISLIKED,
  EVENT_ARTICLE_OPENED: ZohoSalesIQConstants.ARTICLE_OPENED,
  EVENT_ARTICLE_CLOSED: ZohoSalesIQConstants.ARTICLE_CLOSED,
  EVENT_PERFORM_CHATACTION: ZohoSalesIQConstants.PERFORM_CHATACTION,
  EVENT_CUSTOMTRIGGER: ZohoSalesIQConstants.CUSTOMTRIGGER,
  EVENT_BOT_TRIGGER: ZohoSalesIQConstants.BOT_TRIGGER,
  EVENT_HANDLE_URL: ZohoSalesIQConstants.EVENT_HANDLE_URL,
  EVENT_RE_REGISTER_PUSH: ZohoSalesIQConstants.RE_REGISTER_PUSH,

  EVENT_RESOURCE_OPENED: ZohoSalesIQConstants.EVENT_RESOURCE_OPENED,
  EVENT_RESOURCE_CLOSED: ZohoSalesIQConstants.EVENT_RESOURCE_CLOSED,
  EVENT_RESOURCE_LIKED: ZohoSalesIQConstants.EVENT_RESOURCE_LIKED,
  EVENT_RESOURCE_DISLIKED: ZohoSalesIQConstants.EVENT_RESOURCE_DISLIKED,

  EVENT_HANDLE_CUSTOM_LAUNCHER_VISIBILITY: ZohoSalesIQConstants.EVENT_HANDLE_CUSTOM_LAUNCHER_VISIBILITY,
  EVENT_VISITOR_REGISTRATION_FAILURE:  ZohoSalesIQConstants.EVENT_VISITOR_REGISTRATION_FAILURE,

  EVENT_NOTIFICATION_CLICKED: ZohoSalesIQConstants.EVENT_NOTIFICATION_CLICKED,
};

export const ZSIQConstants = {
  ...ZSIQListenerEvents,

  Tab: ZSIQTabs,
  TYPE_OPEN: ZohoSalesIQConstants.TYPE_OPEN,
  TYPE_WAITING: ZohoSalesIQConstants.TYPE_WAITING,
  TYPE_CONNECTED: ZohoSalesIQConstants.TYPE_CONNECTED,
  TYPE_ENDED: ZohoSalesIQConstants.TYPE_ENDED,
  TYPE_CLOSED: ZohoSalesIQConstants.TYPE_CLOSED,
  TYPE_MISSED: ZohoSalesIQConstants.TYPE_MISSED,
  // DEPRECATED
  LAUNCHER_MODE_STATIC: ZohoSalesIQConstants.LAUNCHER_MODE_STATIC,
  // DEPRECATED
  LAUNCHER_MODE_FLOATING: ZohoSalesIQConstants.LAUNCHER_MODE_FLOATING,
  ActionSource: {
    APP: ZohoSalesIQConstants.ACTION_SOURCE_APP,
    SDK: ZohoSalesIQConstants.ACTION_SOURCE_SDK,
  },
  Resource: ResourceType,
};
