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.sptg.device.api.entity.Device;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.util.List;

/**
 * title: VideoCallAccount
 * package: com.sptg.estate.api.entity
 * description: 视频呼叫账号
 *
 *                  
 *                
 */
@Getter
@Setter
@TableName(value = "video_call_account")
public class VideoCallAccount implements java.io.Serializable {

    /**
     * 主键
     */
    @TableId(type = IdType.ID_WORKER)
    private Long id;

    /**
     * 账号Id
     */
    private String accountId;

    /**
     * 账号密码
     */
    private String accountPwd;

    /**
     * 账号类型：{ 1：住户，2：设备,3：物业管理机账号 }
     */
    private Integer accountType;

    /**
     * 会员Id
     */
    private Long customerId;

    /**
     * 会员名称
     */
    private String customerName;

    /**
     * accountType = 1 : 住户Id
     * accountType = 2 : null
     * accountType = 3 : 管理机账号Id
     */
    private Long userId;

    /**
     * 住户名称
     */
    private String userName;

    /**
     * 该字段用于查询，没有实际意义
     */
    private String orgPosition;

    /**
     * 小区Id
     */
    private Long xqId;

    /**
     * 单元Id
     */
    private Long unitId;

    /**
     * 房间Id
     */
    private Long roomId;

    /**
     * 呼叫组Id （前缀：0000019999 + 30位）
     */
    private String callGroupId;

    /**
     * 设备序列号
     */
    private String serialNumber;

    /**
     * 删除标记：{ -1：已删除，0：正常 }
     */
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 最后修改人Id
     */
    private Long lastModifyId;

    /**
     * 最后修改时间
     */
    private Date lastModifyTime;

    /* ----------------------------------------------------------------------------------------------- */

    /**
     * 会员账号
     */
    @TableField(exist = false)
    private Member member;

    /**
     * 住户
     */
    @TableField(exist = false)
    private List<User> userList;

    /**
     * 设备信息
     */
    @TableField(exist = false)
    private Device device;

    /**
     * 单元编号
     */
    @TableField(exist = false)
    private String unitNumber;

    /**
     * 房间编号
     */
    @TableField(exist = false)
    private String roomNumber;
}