﻿namespace Stove.StoveSDK
{
    using System.Collections.Generic;
    using MiniJSON;

    public class IAPPurchaseDetail
    {
        public string TransactionId { get; set; }
        public string MarketOrderId { get; set; }
        public string ServiceOrderId { get; set; }

        public IAPPurchaseDetail(Dictionary<string, object> dictionary)
        {
            TransactionId = (dictionary.ContainsKey("transactionId")) ? dictionary["transactionId"] as string : null;
            MarketOrderId = (dictionary.ContainsKey("marketOrderId")) ? dictionary["marketOrderId"] as string : null;
            ServiceOrderId = (dictionary.ContainsKey("serviceOrderId")) ? dictionary["serviceOrderId"] as string : null;

        }

        public Dictionary<string, object> ToDictionary()
        {
            Dictionary<string, object> dictionary = new Dictionary<string, object>();

            if (TransactionId != null)
            {
                dictionary.Add("transactionId", TransactionId);
            }

            if (MarketOrderId != null)
            {
                dictionary.Add("marketOrderId", MarketOrderId);
            }

            if (ServiceOrderId != null)
            {
                dictionary.Add("serviceOrderId", ServiceOrderId);
            }

            return dictionary;
        }

        public string ToJSONString()
        {
            Dictionary<string, object> dictionary = ToDictionary();

            return Json.Serialize(dictionary);
        }

        public override string ToString()
        {
            return "IAPOptional(TransactionId='" + TransactionId
                + "', MarketOrderId=" + MarketOrderId
                + "', ServiceOrderId=" + ServiceOrderId
                + ")";
        }
    }
}