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

namespace Topsdk.Top.Ability2474.Request;

public class TaobaoTbkDgVegasSendReportRequest : AbstractTopApiRequest
{

    /*
        统计日期
            */
    private string? bizDate;


    /*
        渠道关系id
            */
    private long? relationId;


    /*
        已下线，后续不需要填写
            */
    private long? activityId;


    /*
        页码
         默认值:1    */
    private long? pageNo;


    /*
        每页大小
         默认值:10    */
    private long? pageSize;


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


    /*
        查询维度，不填写默认是pid维度
            */
    private string? rptDim;


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


    [JsonPropertyName("biz_date")]
    public string? BizDate
    {
        get => bizDate;
        set => this.bizDate = value;
    }

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

    [JsonPropertyName("activity_id")]
    public long? ActivityId
    {
        get => activityId;
        set => this.activityId = value;
    }

    [JsonPropertyName("page_no")]
    public long? PageNo
    {
        get => pageNo;
        set => this.pageNo = value;
    }

    [JsonPropertyName("page_size")]
    public long? PageSize
    {
        get => pageSize;
        set => this.pageSize = value;
    }

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

    [JsonPropertyName("rpt_dim")]
    public string? RptDim
    {
        get => rptDim;
        set => this.rptDim = 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.bizDate != null)
        {
            requestParam.Add("biz_date",TopUtils.ConvertBasicType(this.bizDate));
        }
        if(this.relationId != null)
        {
            requestParam.Add("relation_id",TopUtils.ConvertBasicType(this.relationId));
        }
        if(this.activityId != null)
        {
            requestParam.Add("activity_id",TopUtils.ConvertBasicType(this.activityId));
        }
        if(this.pageNo != null)
        {
            requestParam.Add("page_no",TopUtils.ConvertBasicType(this.pageNo));
        }
        if(this.pageSize != null)
        {
            requestParam.Add("page_size",TopUtils.ConvertBasicType(this.pageSize));
        }
        if(this.pid != null)
        {
            requestParam.Add("pid",TopUtils.ConvertBasicType(this.pid));
        }
        if(this.rptDim != null)
        {
            requestParam.Add("rpt_dim",TopUtils.ConvertBasicType(this.rptDim));
        }
        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.report";
    }

}

