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

namespace Topsdk.Top.Ability865.Domain;

public class TaobaoOpenAccountTokenValidateOpenAccount
{

    /*
        登录名
    */
    private string? loginId;


    /*
        帐号创建的设备的ID
    */
    private string? createDeviceId;


    /*
        支付宝的帐号标识
    */
    private string? alipayId;


    /*
        创建帐号的App Key
    */
    private string? createAppKey;


    /*
        地区
    */
    private string? locale;


    /*
        银行卡号
    */
    private string? bankCardNo;


    /*
        开发者自定义账号id
    */
    private string? isvAccountId;


    /*
        邮箱
    */
    private string? email;


    /*
        头像url
    */
    private string? avatarUrl;


    /*
        数据域
    */
    private long? domainId;


    /*
        银行卡的拥有者姓名
    */
    private string? bankCardOwnerName;


    /*
        展示名
    */
    private string? displayName;


    /*
        密码salt
    */
    private string? loginPwdSalt;


    /*
        密码
    */
    private string? loginPwd;


    /*
        第三方oauth openid
    */
    private string? openId;


    /*
        手机
    */
    private string? mobile;


    /*
        账号创建时的位置
    */
    private string? createLocation;


    /*
        自定义扩展信息Map的Json格式
    */
    private string? extInfos;


    /*
        密码加密强度
    */
    private long? loginPwdIntensity;


    /*
        Open Account Id
    */
    private long? id;


    /*
        账号创建类型：1、通过短信创建，2、ISV批量导入，3、ISV OAuth创建
    */
    private long? type;


    /*
        账号状态：1、启用，2、删除，3、禁用
    */
    private long? status;


    /*
        记录的版本号
    */
    private long? version;


    /*
        加密算法类型：1、代表单纯MD5，2：代表单一Salt的MD5，3、代表根据记录不同后的MD5
    */
    private long? loginPwdEncryption;


    /*
        1男 2女
    */
    private long? gender;


    /*
        姓名
    */
    private string? name;


    /*
        出生日期
    */
    private string? birthday;


    /*
        旺旺
    */
    private string? wangwang;


    /*
        微信
    */
    private string? weixin;


    /*
        TAOBAO = 1;WEIXIN = 2;WEIBO = 3;QQ = 4;
    */
    private long? oauthPlateform;



    [JsonPropertyName("login_id")]
    public string? LoginId
    {
        get => loginId;
        set => this.loginId = value;
    }

    [JsonPropertyName("create_device_id")]
    public string? CreateDeviceId
    {
        get => createDeviceId;
        set => this.createDeviceId = value;
    }

    [JsonPropertyName("alipay_id")]
    public string? AlipayId
    {
        get => alipayId;
        set => this.alipayId = value;
    }

    [JsonPropertyName("create_app_key")]
    public string? CreateAppKey
    {
        get => createAppKey;
        set => this.createAppKey = value;
    }

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

    [JsonPropertyName("bank_card_no")]
    public string? BankCardNo
    {
        get => bankCardNo;
        set => this.bankCardNo = value;
    }

    [JsonPropertyName("isv_account_id")]
    public string? IsvAccountId
    {
        get => isvAccountId;
        set => this.isvAccountId = value;
    }

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

    [JsonPropertyName("avatar_url")]
    public string? AvatarUrl
    {
        get => avatarUrl;
        set => this.avatarUrl = value;
    }

    [JsonPropertyName("domain_id")]
    public long? DomainId
    {
        get => domainId;
        set => this.domainId = value;
    }

    [JsonPropertyName("bank_card_owner_name")]
    public string? BankCardOwnerName
    {
        get => bankCardOwnerName;
        set => this.bankCardOwnerName = value;
    }

    [JsonPropertyName("display_name")]
    public string? DisplayName
    {
        get => displayName;
        set => this.displayName = value;
    }

    [JsonPropertyName("login_pwd_salt")]
    public string? LoginPwdSalt
    {
        get => loginPwdSalt;
        set => this.loginPwdSalt = value;
    }

    [JsonPropertyName("login_pwd")]
    public string? LoginPwd
    {
        get => loginPwd;
        set => this.loginPwd = value;
    }

    [JsonPropertyName("open_id")]
    public string? OpenId
    {
        get => openId;
        set => this.openId = value;
    }

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

    [JsonPropertyName("create_location")]
    public string? CreateLocation
    {
        get => createLocation;
        set => this.createLocation = value;
    }

    [JsonPropertyName("ext_infos")]
    public string? ExtInfos
    {
        get => extInfos;
        set => this.extInfos = value;
    }

    [JsonPropertyName("login_pwd_intensity")]
    public long? LoginPwdIntensity
    {
        get => loginPwdIntensity;
        set => this.loginPwdIntensity = value;
    }

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

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

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

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

    [JsonPropertyName("login_pwd_encryption")]
    public long? LoginPwdEncryption
    {
        get => loginPwdEncryption;
        set => this.loginPwdEncryption = value;
    }

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

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

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

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

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

    [JsonPropertyName("oauth_plateform")]
    public long? OauthPlateform
    {
        get => oauthPlateform;
        set => this.oauthPlateform = value;
    }

}

