﻿using System;
using System.Collections.Generic;

namespace AsmodeeDigital.CrossPromo.Plugin.Domain
{
    public class AnalyticsAdDisplayItem : AnalyticsItem
    {
        public enum AdTypes
        {
            Banner,
            Interstitial,
            Video
        }

        public AdTypes AdType { get; set; }
        public bool IsSkippable { get; set; }
        public bool IsSkipped { get; set; }
        public float Time { get; set; }

        public AnalyticsAdDisplayItem(Dictionary<string, object> headers)
            : base(headers)
        {
            MetricName = "ad_display";
        }

        private string GetTypeName()
        {
            return Enum.GetName(typeof(AdTypes), AdType).ToLower();
        }

        public override string ToString()
        {
            string str = string.Format(
@"
- Ad type : {0}
- Is Skippable : {1}
- Is Skipped : {2}
- Time (in seconds) : {3}",
                GetTypeName(),
                IsSkippable,
                IsSkipped,
                Time
            );

            str += string.Format("\n{0}", base.ToString());

            return str;
        }

        public override IDictionary<string, object> ToDictionary()
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();

            foreach (string key in Headers.Keys) {
                dic[key] = Headers[key];
            }

            dic.Add("ad_type", GetTypeName());
            dic.Add("is_skippable", IsSkippable);
            dic.Add("is_skipped", IsSkipped);
            dic.Add("time_sec", Time);

            return dic;
        }
    }
}

