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

namespace Topsdk.Top.Ability425.Domain;

public class TaobaoTbkScPublisherInfoGetMapData
{

    /*
        共享字段 - 备案场景：common（通用备案），etao（一淘备案），minietao（一淘小程序备案），offlineShop（线下门店备案），offlinePerson（线下个人备案）
    */
    private string? relationApp;


    /*
        共享字段 - 备案日期
    */
    private DateTime? createDate;


    /*
        渠道独有 - 渠道昵称
    */
    private string? accountName;


    /*
        渠道独有 - 渠道名称
    */
    private string? realName;


    /*
        渠道独有 - 渠道关系ID
    */
    private long? relationId;


    /*
        渠道独有 - 线下场景信息，1 - 门店，2- 学校，3 - 工厂，4 - 其他
    */
    private string? offlineScene;


    /*
        渠道独有 - 线上场景信息，1 - 微信群，2- QQ群，3 - 其他
    */
    private string? onlineScene;


    /*
        渠道独有 - 媒体侧渠道备注信息
    */
    private string? note;


    /*
        共享字段 - 渠道/会员专属pid
    */
    private string? rootPid;


    /*
        共享字段 - 渠道/会员原始身份信息
    */
    private string? rtag;


    /*
        线下备案专属信息
    */
    private TaobaoTbkScPublisherInfoGetRegisterInfoDto? offlineInfo;


    /*
        会员独有 - 会员运营ID
    */
    private long? specialId;


    /*
        渠道独有 - 处罚状态
    */
    private string? punishStatus;


    /*
        淘宝客外部用户标记
    */
    private string? externalId;


    /*
        1-微信、2-微博、3-抖音、4-快手、5-QQ，0-其他
    */
    private string? externalType;



    [JsonPropertyName("relation_app")]
    public string? RelationApp
    {
        get => relationApp;
        set => this.relationApp = value;
    }

    [JsonPropertyName("create_date")]
    public DateTime? CreateDate
    {
        get => createDate;
        set => this.createDate = value;
    }

    [JsonPropertyName("account_name")]
    public string? AccountName
    {
        get => accountName;
        set => this.accountName = value;
    }

    [JsonPropertyName("real_name")]
    public string? RealName
    {
        get => realName;
        set => this.realName = value;
    }

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

    [JsonPropertyName("offline_scene")]
    public string? OfflineScene
    {
        get => offlineScene;
        set => this.offlineScene = value;
    }

    [JsonPropertyName("online_scene")]
    public string? OnlineScene
    {
        get => onlineScene;
        set => this.onlineScene = value;
    }

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

    [JsonPropertyName("root_pid")]
    public string? RootPid
    {
        get => rootPid;
        set => this.rootPid = value;
    }

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

    [JsonPropertyName("offline_info")]
    public TaobaoTbkScPublisherInfoGetRegisterInfoDto? OfflineInfo
    {
        get => offlineInfo;
        set => this.offlineInfo = value;
    }

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

    [JsonPropertyName("punish_status")]
    public string? PunishStatus
    {
        get => punishStatus;
        set => this.punishStatus = value;
    }

    [JsonPropertyName("external_id")]
    public string? ExternalId
    {
        get => externalId;
        set => this.externalId = value;
    }

    [JsonPropertyName("external_type")]
    public string? ExternalType
    {
        get => externalType;
        set => this.externalType = value;
    }

}

