﻿#region Header
 
 // Copyright (c) 2022 AccelByte Inc. All Rights Reserved.
 // This is licensed software from AccelByte Inc, for limitations
 // and restrictions contact your company contract manager.
 
 #endregion
 
 using System;
 using UnityEngine;

namespace BlackBox
 {
     // Note with the convention
     [Serializable]
     public class AdditionalInfo
     {
         public string genuine;
         public string product_Name;
         public string identifier;
         public string platform;
         public string company_name;
         public string version;
         public string unity_version;
         public string installer_name;
         public string install_mode;
         public string sandbox_type;
         public string is_batch_mode;
         public string target_framerate;
         public string build_gui_id;

         public AdditionalInfo()
         {
             CollectInfo();
         }

         public void CollectInfo()
         {
             genuine = Application.genuine.ToString();
             product_Name = Application.productName;
             identifier = Application.identifier;
             platform = Application.platform.ToString();
             company_name = Application.companyName;
             version = Application.version;
             unity_version = Application.unityVersion;
             installer_name = Application.installerName;
             install_mode = Application.installMode.ToString();
             sandbox_type = Application.sandboxType.ToString();
             is_batch_mode = Application.isBatchMode.ToString();
             target_framerate = Application.targetFrameRate.ToString();
             build_gui_id = Application.buildGUID;
         }

         public string ToJsonStr()
         {
             return JsonUtility.ToJson(this);
         }

         public static AdditionalInfo FromJson(string json)
         {
             return JsonUtility.FromJson<AdditionalInfo>(json);
         }
     }
 }