using UnityEngine;
using System.Collections.Generic;

[System.Serializable]
public class CallbackResult {

	// Error happened on incorrect sdk initialization, wrong or empty ad keys (appId, placementId, etc...)
	public const int ERROR_INIT = 1;

	// Internal error happened in sdk, not depend on the publisher
	public const int ERROR_INTERNAL = 2;

	// The ad request was unsuccessful due to network connectivity or resource not found
	public const int ERROR_NETWORK = 3;

	// The ad doesn't loaded.
	public const int ERROR_NO_AD = 4;

	// The ad is loading or using now, please wait some wail
	public const int ERROR_BUSY_AD = 5;

	public string placementId; 
	public int amount;
	public bool canView;
	public List<PersonalyNativeAd> result;

	public int errorCode;
	public string errorMessage;

	public static CallbackResult Create(string jsonString){
		return JsonUtility.FromJson<CallbackResult>(jsonString);
	}

	public string ErrorResult(){
		return "Error: " + "code: " + errorCode + " message: " + errorMessage + " placementId: " + placementId;
	}
}

[System.Serializable]
public class PersonalyNativeAd {

	public string impressionId;
	public PersonalyNativeAdInfo info;
	public List<PersonalyNativeAdAsset> assets;
	public string cta;
	public string trackingUrl;
	public PersonalyNativeAdPrivacyPolicy privacyPolicy;
}

[System.Serializable]
public class PersonalyNativeAdInfo {

	public string appName;
	public string appId;
	public string landingPage;
	public string rating;
	public string reviews;
	public List<string> categories;
	public string appDeveloper;
	public string appDescription;
	public string appIcon;
}

[System.Serializable]
public class PersonalyNativeAdAsset {

	public string url;
	public string filePath;
	public string type;
	public float width;
	public float height;
}

[System.Serializable]
public class PersonalyNativeAdPrivacyPolicy {

	public string url;
	public string image;
}
