using System;
using System.Collections.Generic;
using BigoAds.Scripts.Api.Constant;
using System.Collections.Generic;
namespace BigoAds.Scripts.Api
{
public class BigoAdConfig
{
public const string EXTRA_KEY_HOST_RULES = "host_rules";
///
/// the unique identifier of the App
///
internal string AppId { get; }
///
/// Custom set the debugLog to print debug Log.
/// debugLog NO: close debug log, YES: open debug log.
///
internal bool DebugLog { get; }
///
/// Channels for publishing media applications
///
internal string Channel { get; }
internal int Age { get; }
internal int Gender { get; }
internal long ActivatedTime { get; }
internal Dictionary ExtraDictionary { get; }
private BigoAdConfig(BigoAdConfig.Builder builder)
{
AppId = builder.AppId;
DebugLog = builder.DebugLog;
Channel = builder.Channel;
Age = builder.Age;
Gender = (int)builder.Gender;
ActivatedTime = builder.ActivatedTime;
ExtraDictionary = builder.ExtraDictionary;
}
public class Builder
{
internal string AppId;
internal bool DebugLog;
internal string Channel;
internal int Age;
internal BGAdGender Gender;
internal long ActivatedTime;
internal Dictionary ExtraDictionary = new Dictionary();
public Builder SetAppId(string appid)
{
this.AppId = appid;
return this;
}
public Builder SetDebugLog(bool debugLog)
{
this.DebugLog = debugLog;
return this;
}
public Builder SetChannel(string channel)
{
this.Channel = channel;
return this;
}
public Builder SetAge(int age)
{
this.Age = age;
return this;
}
public Builder SetGender(BGAdGender gender)
{
this.Gender = gender;
return this;
}
public Builder SetActivatedTime(long activatedTime)
{
this.ActivatedTime = activatedTime;
return this;
}
///Only works on Android
public Builder SetExtra(string key, string extra)
{
if (key != null && extra != null)
{
this.ExtraDictionary.Add(key, extra);
}
return this;
}
public BigoAdConfig Build()
{
return new BigoAdConfig(this);
}
}
}
}