using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Collections.Generic;
using UnityEngine;

namespace Adplay.Model
{
    [System.Serializable]
    public class Creative
    {
        [JsonProperty("id")][field: SerializeField] public int Id { get; set; }

        [JsonProperty("ad_type")]
        [JsonConverter(typeof(StringEnumConverter))][field: SerializeField] public AdType Type { get; set; }

        [JsonProperty("ad_placement_type")]
        [JsonConverter(typeof(StringEnumConverter))][field: SerializeField] public AdPlacementType AdPlacementType { get; set; }
        [JsonProperty("campaign_id")][field: SerializeField] public int CampaignId { get; set; }
        [JsonProperty("zone_id")][field: SerializeField] public int ZoneId { get; set; }
        [JsonProperty("price")][field: SerializeField] public int Price { get; set; }
        [JsonProperty("asset_url")][field: SerializeField] public string AssetUrl { get; set; }
        [JsonProperty("click_url")][field: SerializeField] public string ClickUrl { get; set; }
        [JsonProperty("weight")][field: SerializeField] public int Weight { get; set; }
        [JsonProperty("format")][field: SerializeField] public CreativeFormat Format { get; set; }
        [JsonProperty("config")][field: SerializeField] public Dictionary<string, object> Config { get; set; } = new();
    }
}
