using System;
using UnityEngine;
using System.Collections.Generic;
namespace UnityEngine.Purchasing
{
///
/// Definition of a purchase payout
///
[Serializable]
public class PayoutDefinition
{
[SerializeField]
PayoutType m_Type = PayoutType.Other;
[SerializeField]
string m_Subtype = string.Empty;
[SerializeField]
double m_Quantity;
[SerializeField]
string m_Data = string.Empty;
///
/// Type of the payout
///
public PayoutType type {
get {
return m_Type;
}
private set {
m_Type = value;
}
}
///
/// Type of the payout as a string
///
public string typeString {
get {
return m_Type.ToString ();
}
}
///
/// Maximum string length of the payout subtype
///
public const int MaxSubtypeLength = 64;
///
/// Subtype of the payout
///
public string subtype {
get {
return m_Subtype;
}
private set {
if (value.Length > MaxSubtypeLength)
throw new ArgumentException(string.Format("subtype cannot be longer than {0}", MaxSubtypeLength));
m_Subtype = value;
}
}
///
/// Quantity or value of the payout
///
public double quantity {
get {
return m_Quantity;
}
private set {
m_Quantity = value;
}
}
///
/// Maximum number of bytes of the payout data
///
public const int MaxDataLength = 1024;
///
/// Payload data of the payout
///
public string data {
get {
return m_Data;
}
private set {
if (value.Length > MaxDataLength)
throw new ArgumentException (string.Format ("data cannot be longer than {0}", MaxDataLength));
m_Data = value;
}
}
///
/// Default constructor
///
public PayoutDefinition()
{
}
///
/// Parametrized constructor
///
/// The payout type, as a string.
/// The payout subtype.
/// The payout quantity.
public PayoutDefinition (string typeString, string subtype, double quantity) : this (typeString, subtype, quantity, string.Empty)
{
}
///
/// Parametrized constructor
///
/// The payout type, as a string.
/// The payout subtype.
/// The payout quantity.
/// The payout data.
public PayoutDefinition (string typeString, string subtype, double quantity, string data)
{
PayoutType t = PayoutType.Other;
if (Enum.IsDefined(typeof(PayoutType), typeString))
t = (PayoutType)Enum.Parse (typeof (PayoutType), typeString);
this.type = t;
this.subtype = subtype;
this.quantity = quantity;
this.data = data;
}
///
/// Parametrized constructor
///
/// The payout subtype.
/// The payout quantity.
public PayoutDefinition (string subtype, double quantity) : this (PayoutType.Other, subtype, quantity, string.Empty)
{
}
///
/// Parametrized constructor
///
/// The payout subtype.
/// The payout quantity.
/// The payout data.
public PayoutDefinition (string subtype, double quantity, string data) : this (PayoutType.Other, subtype, quantity, data)
{
}
///
/// Parametrized constructor
///
/// The payout type.
/// The payout subtype.
/// The payout quantity.
public PayoutDefinition (PayoutType type, string subtype, double quantity) : this (type, subtype, quantity, string.Empty)
{
}
///
/// Parametrized constructor
///
/// The payout type.
/// The payout subtype.
/// The payout quantity.
/// The payout data.
public PayoutDefinition (PayoutType type, string subtype, double quantity, string data)
{
this.type = type;
this.subtype = subtype;
this.quantity = quantity;
this.data = data;
}
}
}