package com.schisandra.auth.infra.basic.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 *  实体类
 *
 * @author landaiqing
 * @since 2024-05-23 20:07:57
 */
@Data
@Table("schisandra_auth_social_user")
public class SchisandraAuthSocialUser implements Serializable {

    /**
     * 
     */
    @Id(value = "id", keyType = KeyType.Auto)
    private Long id;

    /**
     * 第三方系统的唯一ID
     */
    @Column("uuid")
    private String uuid;

    /**
     * 第三方用户来源
     */
    @Column("source")
    private String source;

    /**
     * 用户的授权令牌
     */
    @Column("access_token")
    private String accessToken;

    /**
     * 第三方用户的授权令牌的有效期
     */
    @Column("expire_in")
    private Integer expireIn;

    /**
     * 刷新令牌
     */
    @Column("refresh_token")
    private String refreshToken;

    /**
     * 第三方用户的 open id
     */
    @Column("open_id")
    private String openId;

    /**
     * 第三方用户的 ID
     */
    @Column("uid")
    private String uid;

    /**
     * 个别平台的授权信息
     */
    @Column("access_code")
    private String accessCode;

    /**
     * 第三方用户的 union id
     */
    @Column("union_id")
    private String unionId;

    /**
     * 第三方用户授予的权限
     */
    @Column("scope")
    private String scope;

    /**
     * 个别平台的授权信息
     */
    @Column("token_type")
    private String tokenType;

    /**
     * id token
     */
    @Column("id_token")
    private String idToken;

    /**
     * 小米平台用户的附带属性
     */
    @Column("mac_algorithm")
    private String macAlgorithm;

    /**
     * 小米平台用户的附带属性
     */
    @Column("mac_key")
    private String macKey;

    /**
     * 用户的授权code
     */
    @Column("code")
    private String code;

    /**
     * Twitter平台用户的附带属性
     */
    @Column("oauth_token")
    private String oauthToken;

    /**
     * Twitter平台用户的附带属性
     */
    @Column("oauth_token_secret")
    private String oauthTokenSecret;

    /**
     * 状态
     */
    @Column("status")
    private Integer status;

    /**
     * 创建人
     */
    @Column("created_by")
    private String createdBy;

    /**
     * 创建时间
     */
    @Column("created_time")
    private Date createdTime;

    /**
     * 更新人
     */
    @Column("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @Column("update_time")
    private Date updateTime;

    /**
     * 是否删除
     */
    @Column(value = "is_deleted",isLogicDelete = true)
    private Integer isDeleted;

}

