using Adplay.API;
using Adplay.HTTP;
using Adplay.Model;
using Adplay.Utility;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;

namespace Adplay.Request
{
    [CreateAssetMenu(fileName = nameof(AdPlayRequest), menuName = Utility.PathUtility.AdPath + nameof(AdPlayRequest))]
    public class AdPlayRequest : Api
    {

        public async Task<HttpResponse<List<Creative>>> ShowAds()
        {
            var requestModel = new ShowAdRequestModel
            {
                GoogleAdId = AdPlayUtility.GoogleAdId ?? "no google id",
                DeviceId = AdPlayUtility.UniqueDeviceId,
                types = new List<string>()
            };
            var enumTypes = Enum.GetValues(typeof(AdType));
            foreach (var enumType in enumTypes)
            {
                requestModel.types.Add(enumType.ToString());
            }
            return await Post<List<Creative>, ShowAdRequestModel>("ad/show-ads", requestModel);
        }

        public async Task<HttpResponse<string>> PublicIp()
        {
            return await Get<string>("https://api.ipify.org");
        }

        public async Task<HttpResponse<string>> SendBatch(BatchEngagement batchEngagement)
        {
            return await Post<string, BatchEngagement>("data/engagement/batch", batchEngagement);
        }

    }
}
