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

namespace Topsdk.Top.Ability3261.Request;

public class TaobaoTbkDgCpaActivityDetailRequest : AbstractTopApiRequest
{

    /*
        明细类型，1：预估明细，2：结算明细
         默认值:1    */
    private long? queryType;


    /*
        每页条数
         默认值:10    */
    private long? pageSize;


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


    /*
        CPA活动ID
            */
    private long? eventId;


    /*
        CPA活动奖励的统计口径，相关说明见文档：https://www.yuque.com/docs/share/7ecf8cf1-7f99-4633-a2ed-f9b6f8116af5?#
            */
    private string? indicatorAlias;


    /*
        下一页开始查询的记录主键id
            */
    private long? startId;


    /*
        指定数据批次号(时间戳)
            */
    private DateTime? runtime;


    [JsonPropertyName("query_type")]
    public long? QueryType
    {
        get => queryType;
        set => this.queryType = value;
    }

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

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

    [JsonPropertyName("event_id")]
    public long? EventId
    {
        get => eventId;
        set => this.eventId = value;
    }

    [JsonPropertyName("indicator_alias")]
    public string? IndicatorAlias
    {
        get => indicatorAlias;
        set => this.indicatorAlias = value;
    }

    [JsonPropertyName("start_id")]
    public long? StartId
    {
        get => startId;
        set => this.startId = value;
    }

    [JsonPropertyName("runtime")]
    public DateTime? Runtime
    {
        get => runtime;
        set => this.runtime = value;
    }



    public override IDictionary<string, string> ToRequestParam()
    {
        IDictionary<string, string> requestParam = new Dictionary<string, string>();
        if(this.queryType != null)
        {
            requestParam.Add("query_type",TopUtils.ConvertBasicType(this.queryType));
        }
        if(this.pageSize != null)
        {
            requestParam.Add("page_size",TopUtils.ConvertBasicType(this.pageSize));
        }
        if(this.pageNo != null)
        {
            requestParam.Add("page_no",TopUtils.ConvertBasicType(this.pageNo));
        }
        if(this.eventId != null)
        {
            requestParam.Add("event_id",TopUtils.ConvertBasicType(this.eventId));
        }
        if(this.indicatorAlias != null)
        {
            requestParam.Add("indicator_alias",TopUtils.ConvertBasicType(this.indicatorAlias));
        }
        if(this.startId != null)
        {
            requestParam.Add("start_id",TopUtils.ConvertBasicType(this.startId));
        }
        if(this.runtime != null)
        {
            requestParam.Add("runtime",TopUtils.ConvertBasicType(this.runtime));
        }
        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.cpa.activity.detail";
    }

}

