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

namespace Topsdk.Top.Ability2138.Domain;

public class TaobaoTbkDgNewuserOrderGetMapData
{

    /*
        新注册时间，仅淘宝拉新适用
    */
    private DateTime? registerTime;


    /*
        当前活动为淘宝拉新活动时，bind_time为新激活时间； 当前活动为支付宝拉新活动时，bind_time为绑定时间。
    */
    private DateTime? bindTime;


    /*
        首购时间，仅淘宝，天猫拉新适用
    */
    private DateTime? buyTime;


    /*
        新人状态， 当前活动为淘宝拉新活动时，1: 新注册，2:激活，3:首购，4:确认收货； 当前活动为支付宝实名活动时，1：已绑定，2：拉新成功，3：无效用户；当前活动为支付宝新登活动时，3：手淘首购，4：手淘确认收货；当前活动为天猫拉新活动时，2:已领取，3:已首购，4:已收货
    */
    private long? status;


    /*
        新人手机号
    */
    private string? mobile;


    /*
        订单淘客类型:1.淘客订单；2.非淘客订单，仅淘宝，天猫拉新适用
    */
    private long? orderTkType;


    /*
        分享用户(unionid)，仅淘宝，天猫拉新适用
    */
    private string? unionId;


    /*
        来源媒体ID(pid中mm_1_2_3)中第1位
    */
    private long? memberId;


    /*
        来源媒体名称
    */
    private string? memberNick;


    /*
        来源站点ID(pid中mm_1_2_3)中第2位
    */
    private long? siteId;


    /*
        来源站点名称
    */
    private string? siteName;


    /*
        来源广告位ID(pid中mm_1_2_3)中第3位
    */
    private long? adzoneId;


    /*
        来源广告位名称
    */
    private string? adzoneName;


    /*
        淘宝订单id，仅淘宝，天猫拉新适用
    */
    private long? tbTradeParentId;


    /*
        确认收货时间，仅天猫拉新适用
    */
    private DateTime? acceptTime;


    /*
        领取红包时间，仅天猫拉新适用
    */
    private DateTime? receiveTime;


    /*
        拉新成功时间，仅支付宝拉新适用
    */
    private DateTime? successTime;


    /*
        活动类型，taobao-淘宝 alipay-支付宝 tmall-天猫
    */
    private string? activityType;


    /*
        活动id
    */
    private string? activityId;


    /*
        日期，格式为"20180202"
    */
    private string? bizDate;


    /*
        复购订单，仅适用于手淘拉新
    */
    private IList<TaobaoTbkDgNewuserOrderGetOrderData>? orders;


    /*
        绑卡日期，仅适用于手淘拉新
    */
    private DateTime? bindCardTime;


    /*
        loginTime
    */
    private DateTime? loginTime;


    /*
        银行卡是否是绑定状态：1-绑定，0-未绑定
    */
    private long? isCardSave;


    /*
        使用权益时间
    */
    private DateTime? useRightsTime;


    /*
        领取权益时间
    */
    private DateTime? getRightsTime;


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



    [JsonPropertyName("register_time")]
    public DateTime? RegisterTime
    {
        get => registerTime;
        set => this.registerTime = value;
    }

    [JsonPropertyName("bind_time")]
    public DateTime? BindTime
    {
        get => bindTime;
        set => this.bindTime = value;
    }

    [JsonPropertyName("buy_time")]
    public DateTime? BuyTime
    {
        get => buyTime;
        set => this.buyTime = value;
    }

    [JsonPropertyName("status")]
    public long? Status
    {
        get => status;
        set => this.status = value;
    }

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

    [JsonPropertyName("order_tk_type")]
    public long? OrderTkType
    {
        get => orderTkType;
        set => this.orderTkType = value;
    }

    [JsonPropertyName("union_id")]
    public string? UnionId
    {
        get => unionId;
        set => this.unionId = value;
    }

    [JsonPropertyName("member_id")]
    public long? MemberId
    {
        get => memberId;
        set => this.memberId = value;
    }

    [JsonPropertyName("member_nick")]
    public string? MemberNick
    {
        get => memberNick;
        set => this.memberNick = value;
    }

    [JsonPropertyName("site_id")]
    public long? SiteId
    {
        get => siteId;
        set => this.siteId = value;
    }

    [JsonPropertyName("site_name")]
    public string? SiteName
    {
        get => siteName;
        set => this.siteName = value;
    }

    [JsonPropertyName("adzone_id")]
    public long? AdzoneId
    {
        get => adzoneId;
        set => this.adzoneId = value;
    }

    [JsonPropertyName("adzone_name")]
    public string? AdzoneName
    {
        get => adzoneName;
        set => this.adzoneName = value;
    }

    [JsonPropertyName("tb_trade_parent_id")]
    public long? TbTradeParentId
    {
        get => tbTradeParentId;
        set => this.tbTradeParentId = value;
    }

    [JsonPropertyName("accept_time")]
    public DateTime? AcceptTime
    {
        get => acceptTime;
        set => this.acceptTime = value;
    }

    [JsonPropertyName("receive_time")]
    public DateTime? ReceiveTime
    {
        get => receiveTime;
        set => this.receiveTime = value;
    }

    [JsonPropertyName("success_time")]
    public DateTime? SuccessTime
    {
        get => successTime;
        set => this.successTime = value;
    }

    [JsonPropertyName("activity_type")]
    public string? ActivityType
    {
        get => activityType;
        set => this.activityType = value;
    }

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

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

    [JsonPropertyName("orders")]
    public IList<TaobaoTbkDgNewuserOrderGetOrderData>? Orders
    {
        get => orders;
        set => this.orders = value;
    }

    [JsonPropertyName("bind_card_time")]
    public DateTime? BindCardTime
    {
        get => bindCardTime;
        set => this.bindCardTime = value;
    }

    [JsonPropertyName("login_time")]
    public DateTime? LoginTime
    {
        get => loginTime;
        set => this.loginTime = value;
    }

    [JsonPropertyName("is_card_save")]
    public long? IsCardSave
    {
        get => isCardSave;
        set => this.isCardSave = value;
    }

    [JsonPropertyName("use_rights_time")]
    public DateTime? UseRightsTime
    {
        get => useRightsTime;
        set => this.useRightsTime = value;
    }

    [JsonPropertyName("get_rights_time")]
    public DateTime? GetRightsTime
    {
        get => getRightsTime;
        set => this.getRightsTime = value;
    }

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

}

