package com.anythink.reactnative.utils;

public class Const {
    public static final String X = "x";
    public static final String Y = "y";
    public static final String WIDTH = "width";
    public static final String HEIGHT = "height";
    public static final String EXTRA_DIC = "extraDic";
    public static final String PLACEMENT_ID = "placementID";
    public static final String PLACEMENT_ID_Multi = "placementIDMulti";
    public static final String SCENE_ID = "sceneID";
    public static final String SIZE = "size";
    public static final String POSITION = "position";
    public static final String POSITION_TOP = "kATBannerAdShowingPositionTop";
    public static final String POSITION_BOTTOM = "kATBannerAdShowingPositionBottom";
    public static final String CUSTOM_EXT = "customExt";
    public static final String SHOW_CUSTOM_EXT = "showCustomExt";
    /** Optional root map for {@link com.thinkup.core.api.TUShowConfig.Builder#customContentResult}. */
    public static final String AT_CUSTOM_CONTENT_RESULT = "atCustomContentResult";
    public static final String APP_ID = "appId";

    public static final String BACKGROUND_COLOR = "backgroundColorStr";
    public static final String TEXT_COLOR = "textColorStr";
    public static final String TEXT_SIZE = "textSize";
    public static final String CUSTOM_CLICK = "isCustomClick";
    public static final String CORNER_RADIUS = "cornerRadius";
    public static final String CUSTOM_VIEW_TYPE = "type";
    public static final String IMAGE_PATH = "imagePath";
    public static final String TITLE = "title";
    public static final String DEBUGKEY = "debugKey";

    public static class CallbackKey {
        public static final String callbackName = "callbackName";
        public static final String placementID = "placementID";
        public static final String extraDic = "extraDic";
        public static final String requestMessage = "requestMessage";
        public static final String isDeeplinkSuccess = "isDeeplinkSuccess";

        public static final String isTimeout = "isTimeout";//only for splash

        public static final String adId = "adId";// Native list multi-ad: cross-bridge NativeAd object reference (route events per ad on same placement)
    }

    public static class RewardedVideo {
        public static final String USER_ID = "kATAdLoadingExtraUserIDKey";
        public static final String USER_DATA = "kATAdLoadingExtraUserDataKeywordKey";
    }

    public static class Interstitial {
        public static final String UseRewardedVideoAsInterstitialKey = "UseRewardedVideoAsInterstitialKey";
        public static final String SHOW_CUSTOM_EXT = "kATAdShowCustomExtKey";
    }

    public static class Native {
        public static final String parent = "parent";
        public static final String icon = "appIcon";
        public static final String mainImage = "mainImage";
        public static final String title = "title";
        public static final String desc = "desc";
        public static final String adLogo = "adLogo";
        public static final String cta = "cta";
        public static final String dislike = "dislike";
        // Self-render mediaView placeholder (SDK getAdMediaView view is addView'd into it)
        public static final String mediaView = "mediaView";

        public static final String elementsView = "elementsView";

        public static final String customView = "customView";

        public static final String isAdaptiveHeight = "isAdaptiveHeight";
    }

    public static class Banner {
        public static final String adaptiveWidth = "adaptive_width";
        public static final String adaptiveOrientation = "adaptive_orientation";
        public static final int adaptiveOrientationCurrent = 0;
        public static final int adaptiveOrientationPortrait = 1;
        public static final int adaptiveOrientationLandscape = 2;
    }

    public static class Splash {
        public static final String tolerateTimeout = "tolerateTimeout";
    }

    public static class Init {
        public static final String LOG_ENABLE = "logEnabled";
        public static final String CHANNEL_STR = "channelStr";
        public static final String SUB_CHANNEL_STR = "subchannelStr";
        public static final String CUSTOM_DATA_DIC = "customDataDic";
        public static final String EXLUDE_BUNDLE_ID_ARRAY = "exludeBundleIDArray";
        public static final String DENIED_UPLOAD_INFO_ARRAY = "deniedUploadInfoArray";
        public static final String PLACEMENT_CUSTOM_DATA_DIC = "placementCustomDataDic";
        public static final String PLACEMENT_ID_STR = "placementIDStr";
        public static final String GDPR_UPLOAD_DATA_LEVEL = "gdprLevel";
        public static final String APP_ID_STR = "appIdStr";
        public static final String APP_KEY_STR = "appKeyStr";
        public static final String PATH_STR = "pathStr";
        /** Flat/shallow JSON string for {@code AdSourcePrivacyPolicyStore} (ad-network privacy policy). */
        public static final String POLICY_JSON = "policyJson";
    }

    public static class CallbackMethodCall {
        public static final String rewardedVideoCall = "RewardedVideoCall";
        public static final String InterstitialCall = "InterstitialCall";
        public static final String BannerCall = "BannerCall";
        public static final String NativeCall = "NativeCall";
        public static final String SplashCall = "SplashCall";
        public static final String InitCallName = "InitCallName";
        public static final String DownloadCall = "DownloadCall";
        public static final String CommonADCall = "CommonADCall";
    }

    public static class InitCallback {
        public static final String locationCallbackKey = "location";
        public static final String consentSetCallbackKey = "consentSet";
        public static final String consentDismissCallbackKey = "consentDismiss";
        // RN-only: init completion callbacks (lets JS observe init result)
        public static final String sdkInitSuccessCallbackKey = "sdkInitSuccess";
        public static final String sdkInitFailCallbackKey = "sdkInitFail";
    }

    /** Bridge error codes (TurboModule reject; aligned with JS BridgeError). Ad load/show failures use Events, not here. */
    public static class BridgeError {
        public static final String SDK_NOT_INITIALIZED = "SDK_NOT_INITIALIZED";
        public static final String INVALID_PLACEMENT = "INVALID_PLACEMENT";
        public static final String ACTIVITY_NULL = "ACTIVITY_NULL";
        public static final String INVALID_ARGUMENT = "INVALID_ARGUMENT";
    }

    /** Common ad callbacks (Revenue etc., callName: CommonADCall). */
    public static class CommonADCallBack {
        public static final String AdShowRevenueCallbackKey = "adShowRevenueCallbackKey";
    }

    public static class RewardVideoCallback {
        public static final String LoadedCallbackKey = "rewardedVideoDidFinishLoading";
        public static final String LoadFailCallbackKey = "rewardedVideoDidFailToLoad";
        public static final String PlayStartCallbackKey = "rewardedVideoDidStartPlaying";
        public static final String PlayEndCallbackKey = "rewardedVideoDidEndPlaying";
        public static final String PlayFailCallbackKey = "rewardedVideoDidFailToPlay";
        public static final String CloseCallbackKey = "rewardedVideoDidClose";
        public static final String ClickCallbackKey = "rewardedVideoDidClick";
        public static final String RewardCallbackKey = "rewardedVideoDidRewardSuccess";
        public static final String DeeplinkCallbackKey = "rewardedVideoDidDeepLink";

        public static final String AgainPlayStartCallbackKey = "rewardedVideoDidAgainStartPlaying";
        public static final String AgainPlayEndCallbackKey = "rewardedVideoDidAgainEndPlaying";
        public static final String AgainPlayFailCallbackKey = "rewardedVideoDidAgainFailToPlay";
        public static final String AgainClickCallbackKey = "rewardedVideoDidAgainClick";
        public static final String AgainRewardCallbackKey = "rewardedVideoDidAgainRewardSuccess";
        public static final String RewardFailedCallbackKey = "rewardedVideoDidRewardFailed";
        public static final String AgainRewardFailedCallbackKey = "rewardedVideoDidAgainRewardFailed";
        public static final String DownloadConfirmCallbackKey = "rewardedVideoDidDownloadConfirm";

        public static final String MultipleLoadedCallbackKey = "rewardedVideoDidMultipleLoaded";

        // Ad source dimension
        public static final String AdSourceBiddingAttemptCallbackKey = "rewardedVideoDidAdSourceBiddingAttempt";
        public static final String AdSourceBiddingFilledCallbackKey = "rewardedVideoDidAdSourceBiddingFilled";
        public static final String AdSourceBiddingFailCallbackKey = "rewardedVideoDidAdSourceBiddingFail";
        public static final String AdSourceAttemptCallbackKey = "rewardedVideoDidAdSourceAttempt";
        public static final String AdSourceLoadFilledCallbackKey = "rewardedVideoDidAdSourceLoadFilled";
        public static final String AdSourceLoadFailCallbackKey = "rewardedVideoDidAdSourceLoadFail";
    }

    public static class InterstitialCallback {
        public static final String LoadedCallbackKey = "interstitialAdDidFinishLoading";
        public static final String LoadFailCallbackKey = "interstitialAdFailToLoadAD";
        public static final String PlayStartCallbackKey = "interstitialAdDidStartPlaying";
        public static final String PlayEndCallbackKey = "interstitialAdDidEndPlaying";
        public static final String PlayFailCallbackKey = "interstitialDidFailToPlayVideo";
        public static final String CloseCallbackKey = "interstitialAdDidClose";
        public static final String ClickCallbackKey = "interstitialAdDidClick";
        public static final String ShowCallbackKey = "interstitialDidShowSucceed";
        public static final String ShowFailCallbackKey = "interstitialFailedToShow";//no use
        public static final String DeeplinkCallbackKey = "interstitialAdDidDeepLink";
        public static final String DownloadConfirmCallbackKey = "interstitialAdDidDownloadConfirm";

        public static final String MultipleLoadedCallbackKey = "interstitialAdDidMultipleLoaded";

        // Ad source dimension
        public static final String AdSourceBiddingAttemptCallbackKey = "interstitialAdDidAdSourceBiddingAttempt";
        public static final String AdSourceBiddingFilledCallbackKey = "interstitialAdDidAdSourceBiddingFilled";
        public static final String AdSourceBiddingFailCallbackKey = "interstitialAdDidAdSourceBiddingFail";
        public static final String AdSourceAttemptCallbackKey = "interstitialAdDidAdSourceAttempt";
        public static final String AdSourceLoadFilledCallbackKey = "interstitialAdDidAdSourceLoadFilled";
        public static final String AdSourceLoadFailCallbackKey = "interstitialAdDidAdSourceLoadFail";
    }

    public static class BannerCallback {
        public static final String LoadedCallbackKey = "bannerAdDidFinishLoading";
        public static final String LoadFailCallbackKey = "bannerAdFailToLoadAD";
        public static final String CloseCallbackKey = "bannerAdTapCloseButton";
        public static final String ClickCallbackKey = "bannerAdDidClick";
        public static final String ShowCallbackKey = "bannerAdDidShowSucceed";
        public static final String RefreshCallbackKey = "bannerAdAutoRefreshSucceed";
        public static final String RefreshFailCallbackKey = "bannerAdAutoRefreshFail";
        public static final String DeeplinkCallbackKey = "bannerAdDidDeepLink";
        public static final String DownloadConfirmCallbackKey = "bannerAdDidDownloadConfirm";

        public static final String MultipleLoadedCallbackKey = "bannerAdDidMultipleLoaded";

        // Ad source dimension
        public static final String AdSourceBiddingAttemptCallbackKey = "bannerAdDidAdSourceBiddingAttempt";
        public static final String AdSourceBiddingFilledCallbackKey = "bannerAdDidAdSourceBiddingFilled";
        public static final String AdSourceBiddingFailCallbackKey = "bannerAdDidAdSourceBiddingFail";
        public static final String AdSourceAttemptCallbackKey = "bannerAdDidAdSourceAttempt";
        public static final String AdSourceLoadFilledCallbackKey = "bannerAdDidAdSourceLoadFilled";
        public static final String AdSourceLoadFailCallbackKey = "bannerAdDidAdSourceLoadFail";
    }

    public static class NativeCallback {
        public static final String LoadedCallbackKey = "nativeAdDidFinishLoading";
        public static final String LoadFailCallbackKey = "nativeAdFailToLoadAD";
        public static final String CloseCallbackKey = "nativeAdDidTapCloseButton";
        public static final String ClickCallbackKey = "nativeAdDidClick";
        public static final String ShowCallbackKey = "nativeAdDidShowNativeAd";
        public static final String VideoStartKey = "nativeAdDidStartPlayingVideo";
        public static final String VideoEndKey = "nativeAdDidEndPlayingVideo";
        public static final String VideoProgressKey = "NativeVideoProgress";//no use
        public static final String DeeplinkCallbackKey = "nativeAdDidDeepLink";
        public static final String DownloadConfirmCallbackKey = "nativeAdDidDownloadConfirm";

        public static final String MultipleLoadedCallbackKey = "nativeAdDidMultipleLoaded";

        // Ad source dimension
        public static final String AdSourceBiddingAttemptCallbackKey = "nativeAdDidAdSourceBiddingAttempt";
        public static final String AdSourceBiddingFilledCallbackKey = "nativeAdDidAdSourceBiddingFilled";
        public static final String AdSourceBiddingFailCallbackKey = "nativeAdDidAdSourceBiddingFail";
        public static final String AdSourceAttemptCallbackKey = "nativeAdDidAdSourceAttempt";
        public static final String AdSourceLoadFilledCallbackKey = "nativeAdDidAdSourceLoadFilled";
        public static final String AdSourceLoadFailCallbackKey = "nativeAdDidAdSourceLoadFail";
    }

    public static class SplashCallback {
        public static final String LoadedCallbackKey = "splashDidFinishLoading";
        public static final String LoadFailCallbackKey = "splashDidFailToLoad";
        public static final String TimeoutCallbackKey = "splashDidTimeout";
        public static final String ShowCallbackKey = "splashDidShowSuccess";
        public static final String ShowFailedCallbackKey = "splashDidShowFailed";
        public static final String CloseCallbackKey = "splashDidClose";
        public static final String ClickCallbackKey = "splashDidClick";
        public static final String DeeplinkCallbackKey = "splashDidDeepLink";
        public static final String DownloadConfirmCallbackKey = "splashDidDownloadConfirm";

        public static final String MultipleLoadedCallbackKey = "splashDidMultipleLoaded";

        // Ad source dimension
        public static final String AdSourceBiddingAttemptCallbackKey = "splashDidAdSourceBiddingAttempt";
        public static final String AdSourceBiddingFilledCallbackKey = "splashDidAdSourceBiddingFilled";
        public static final String AdSourceBiddingFailCallbackKey = "splashDidAdSourceBiddingFail";
        public static final String AdSourceAttemptCallbackKey = "splashDidAdSourceAttempt";
        public static final String AdSourceLoadFilledCallbackKey = "splashDidAdSourceLoadFilled";
        public static final String AdSourceLoadFailCallbackKey = "splashDidAdSourceLoadFail";
    }

    /** Download callbacks (callName: DownloadCall). */
    public static class DownloadCallCallback {
        public static final String DownloadStartKey = "downloadStart";
        public static final String DownloadUpdateKey = "downloadUpdate";
        public static final String DownloadPauseKey = "downloadPause";
        public static final String DownloadFinishedKey = "downloadFinished";
        public static final String DownloadFailedKey = "downloadFailed";
        public static final String DownloadInstalledKey = "downloadInstalled";
    }

    public static class PlatformViewKeys {
        public static final String PlacementID = "placementID";
        public static final String SceneID = "sceneID";
        public static final String ExtraMap = "extraMap";
        public static final String isAdaptiveHeight = Native.isAdaptiveHeight;
    }

    /** Reserved (0 refs for now; do not delete as dead code): multipleLoaded payload keys for future use. */
    public static class MultipleLoadedKeys {
        public static final String BiddingAttempt = "bidding_attempt";
        public static final String Loading = "loading";
    }

    public static String[] initMethodNames = {"setLogEnabled", "setChannelStr", "setSubchannelStr", "setCustomDataDic",
            "setExludeBundleIDArray", "setPlacementCustomData", "getGDPRLevel", "getUserLocation", "setDataConsentSet",
            "showGDPRAuth", "initAnyThinkSDK", "deniedUploadDeviceInfo","setPresetPlacementConfigPath","showGDPRConsentDialog",
            "showGDPRConsentSecondDialog", "checkIsEuTraffic", "getSDKVersionName", "start",
            "putFilter", "removeFilters", "removeFilterWithPlacementId", "setSharedPlacementConfig",
            "setAdSourcePrivacyPolicy",
            "showDebuggerUI"};


    public static String[] splashMethodNames = {"loadSplash", "splashReady", "checkSplashLoadStatus", "getSplashValidAds","showSplashAdWithShowConfig",
            "showSplash", "showSceneSplash", "entrySplashScenario"};


}
