namespace HyperstoneSdk
{
    internal static class Constants
    {
        public const string DefaultApiUrl = "https://api.hyperstone.ai";
        public const int SdkVersion = 1;

        public const string HeaderUid = "xp-uid";
        public const string HeaderAppId = "xp-app-id";
        public const string HeaderAppSecret = "xp-app-secret";
        public const string HeaderConfigConsumed = "xp-config-consumed";

        public const float SessionTrackingIntervalSeconds = 15f;
        public const float EngagementTimeIncrementValue = SessionTrackingIntervalSeconds / 60f;  // so we measure minutes
        public const float MetricSendCooldownSeconds = 20f;
        public const float MetricSendDebounceSeconds = 0.5f;
        public const float SessionTimeoutSeconds = 30f;
    }

    internal static class SystemMetrics
    {
        public const string TotalEngagementTime = "_etm"; // minutes
        public const string TotalSessions = "_s";
        public const string TotalAdRequests = "_adreq";
        public const string TotalAdRevenue = "_adr";
        public const string TotalAdImpressions = "_adi";
        public const string TotalAdErrors = "_ade";
        public const string TotalIapRevenue = "_iapr";
        public const string TotalIapTransactions = "_iapt";
        public const string TotalIapErrors = "_iape";
    }

    internal static class MetricLabels
    {
        public const string AdPlatform = "_adPlatform";
        public const string AdNetwork = "_adNetwork";
        public const string AdFormat = "_adFormat";
        public const string ProductId = "_productId";
        public const string Currency = "_currency";
        public const string FailReason = "_reason";
    }

    internal static class UserProperties
    {
        public const string SdkVersion = "_sdk";
        public const string UnityPlatform = "_unityPlatform";
        public const string UnityVersion = "_unityVersion";
        public const string App = "_app";
        public const string AppVersion = "_version";
        public const string Os = "_os";
        public const string DeviceModel = "_deviceModel";
        public const string DeviceType = "_deviceType";
        public const string Lang = "_lang";
        public const string TimeZone = "_tz";
        public const string IsDeveloper = "_dev";
    }
}
