using System.Text.Json.Serialization;
using System.Collections.Generic;
using Topsdk.Util;

namespace Topsdk.Top.Ability382.Request;

public class TaobaoTbkDgVegasSendStatusRequest : AbstractTopApiRequest
{

    /*
        渠道管理id
            */
    private string? relationId;


    /*
        会员运营id
            */
    private string? specialId;


    /*
        加密后的值，需用MD5加密，32位小写
            */
    private string? deviceValue;


    /*
        入参类型(该模式下返回的结果为模糊匹配结果，和实际情况可能存在误差)： 1. IMEI 2. IDFA 3. OAID 4. MOBILE
            */
    private string? deviceType;


    /*
        已废弃，请勿传入
            */
    private string? thorBizCode;


    /*
        媒体pid
            */
    private string? pid;


    /*
        查询红包类型，1-超级红包，2-福利购，3-签到红包，4-福利直降，5-幸运赢免单，不传时默认查询超级红包数据
            */
    private long? activityCategory;


    [JsonPropertyName("relation_id")]
    public string? RelationId
    {
        get => relationId;
        set => this.relationId = value;
    }

    [JsonPropertyName("special_id")]
    public string? SpecialId
    {
        get => specialId;
        set => this.specialId = value;
    }

    [JsonPropertyName("device_value")]
    public string? DeviceValue
    {
        get => deviceValue;
        set => this.deviceValue = value;
    }

    [JsonPropertyName("device_type")]
    public string? DeviceType
    {
        get => deviceType;
        set => this.deviceType = value;
    }

    [JsonPropertyName("thor_biz_code")]
    public string? ThorBizCode
    {
        get => thorBizCode;
        set => this.thorBizCode = value;
    }

    [JsonPropertyName("pid")]
    public string? Pid
    {
        get => pid;
        set => this.pid = value;
    }

    [JsonPropertyName("activity_category")]
    public long? ActivityCategory
    {
        get => activityCategory;
        set => this.activityCategory = value;
    }



    public override IDictionary<string, string> ToRequestParam()
    {
        IDictionary<string, string> requestParam = new Dictionary<string, string>();
        if(this.relationId != null)
        {
            requestParam.Add("relation_id",TopUtils.ConvertBasicType(this.relationId));
        }
        if(this.specialId != null)
        {
            requestParam.Add("special_id",TopUtils.ConvertBasicType(this.specialId));
        }
        if(this.deviceValue != null)
        {
            requestParam.Add("device_value",TopUtils.ConvertBasicType(this.deviceValue));
        }
        if(this.deviceType != null)
        {
            requestParam.Add("device_type",TopUtils.ConvertBasicType(this.deviceType));
        }
        if(this.thorBizCode != null)
        {
            requestParam.Add("thor_biz_code",TopUtils.ConvertBasicType(this.thorBizCode));
        }
        if(this.pid != null)
        {
            requestParam.Add("pid",TopUtils.ConvertBasicType(this.pid));
        }
        if(this.activityCategory != null)
        {
            requestParam.Add("activity_category",TopUtils.ConvertBasicType(this.activityCategory));
        }
        return requestParam;
    }

    public override IDictionary<string, TopFileItem> ToFileParam()
    {
        IDictionary<string, TopFileItem> fileParam = new Dictionary<string, TopFileItem>();
        return fileParam;
    }

    public override string GetApiCode()
    {
        return "taobao.tbk.dg.vegas.send.status";
    }

}

