package com.sptg.estate.api.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * title: Member
 * package: com.sptg.estate.api.entity
 * description: 会员实体类
 *
 *               
 *               
 */
@Setter
@Getter
@TableName(value = "app_member")
public class Member {

    /**
     * 主键
     */
    @TableId(value = "l_id",type = IdType.AUTO)
    private Long id;

    /**
     * 姓名（与身份证对应）
     */
    @TableField(value = "s_name")
    private String name;

    /**
     * 电话号码--app端登录账户，根机构下唯一
     */
    @TableField(value = "s_tel")
    private String tel;

    /**
     * 电话号码--app端登录账户，根机构下唯一
     */
    @TableField(value = "s_tel_type")
    private String telType;

    /**
     * 登录密码(md5字符串)
     */
    @TableField(value = "s_password")
    private String password;
    /**
     * 性别  0-未定义  1-男 2-女
     */
    @TableField(value = "i_sex")
    private Integer sex;
    /**
     * 数据状态：{ -1：已删除，0：正常 }
     */
    @TableField(value = "i_status")
    private Integer status;

    /**
     * （与user有关联时表示已认证）
     * 认证状态：{ 0：未认证，1：待审审核，2：已认证 }
     */
    @TableField(value = "i_state")
    private Integer state;

    /**
     * 数据状态：微信公众号下微信唯一标识
     */
    @TableField(value = "s_openid")
    private String openid;

    /**
     * 会员注册来源，0-小程序添加 1-后台添加  2-后台导入 3-app添加
     */
    @TableField(value = "i_create_type")
    private Integer createType;

    /**
     * 创建ip
     */
    @TableField(value = "s_create_ip")
    private String createIp;

    /**
     * 会员创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_create_date")
    private Date createDate;

    /**
     * 所属机构id
     */
    @TableField(value = "l_org_id")
    private Long orgId;

    /**
     * 所属根机构id
     */
    @TableField(value = "l_root_org_id")
    private Long rootOrgId;

    /**
     * 存储位置（通过该字段快速查询，所有的子节点）
     */
    @TableField(value = "s_org_position")
    private String orgPosition;

    @TableField(value = "old_id")
    private String oldId;

    /**
     * 头像
     */
    @TableField(value = "s_head_image")
    private String headImage;

    /**
     * 生日
     */
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    @TableField(value = "d_birthday")
    private Date birthday;

    /**
     * 身份证
     */
    @TableField(value = "s_idcard")
    private String idcard;

    /**
     * 异常标识，为1时是异常状态
     * TODO 将来以短信方式提醒用户重置密码
     */
    @TableField(value = "error_flag")
    private Integer errorFlag;

    /**
     * 启用状态：{ 1：启用，2：禁用 }
     */
    @TableField(value = "i_enable")
    private Integer enable;

    /**
     * 视频呼叫账号实体信息
     */
    @TableField(exist = false)
    private VideoCallAccount videoCallAccount;
}
