using System;
using System.Collections.Generic;
using UnityEngine;

public class WortiseAdValue
{
    public string            currency;
    public WortisePrecision? precision;
    public double            value;


    public WortiseAdValue(double value, string currency, WortisePrecision? precision)
    {
        this.currency  = currency;
        this.precision = precision;
        this.value     = value;
    }


#if UNITY_ANDROID
    static internal WortiseAdValue FromAndroidJavaObject(AndroidJavaObject obj)
    {
        if (obj == null)
        {
            return null;
        }

        string currency = obj.Call<string>("getCurrency");
        double value    = obj.Call<double>("getValue");

        AndroidJavaObject precisionObj = obj.Call<AndroidJavaObject>("getPrecision");

        WortisePrecision? precision = WortisePrecisionFactory.FromAndroidJavaObject(precisionObj);

        return new WortiseAdValue(value, currency, precision);
    }
#endif

    static internal WortiseAdValue FromDictionary(Dictionary<string, object> dic)
    {
        if (dic == null)
        {
            return null;
        }

        string currency      = Convert.ToString(dic["currency"]);
        string precisionName = Convert.ToString(dic["precision"]);
        double value         = Convert.ToDouble(dic["value"]);

        WortisePrecision? precision = WortisePrecisionFactory.FromString(precisionName);

        return new WortiseAdValue(value, currency, precision);
    }
}
