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.FieldStrategy;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * title: AccessCardFeign
 * package: com.sptg.estate.api.entity
 * description: 门禁卡 实体类
 *
 *
 *
 */
@Setter
@Getter
@TableName(value = "estate_access_card")
public class AccessCard {

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

    /**
     * 卡号
     */
    @TableField(value = "s_card_no")
    private String cardNo;

    /**
     * 卡有效开始时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(value = "t_begin_date")
    private Date beginDate;

    /**
     * 卡有效结束时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(value = "t_end_date")
    private Date endDate;

    /**
     * 卡类型，0-住户，1-房间，2-单元，3-小区 ，4-服务人员
     */
    @TableField(value = "i_type")
    private Integer type;

    /**
     * 小区Id
     */
    @TableField(value = "l_residential_id")
    private Long residentialId;

    /**
     * 单元Id
     */
    @TableField(value = "l_unit_id")
    private Long unitId;

    /**
     * 房间Id
     */
    @TableField(value = "l_room_id")
    private Long roomId;

    /**
     * 住户Id，或者服务人员Id(String类型，方便接口通用)
     */
    @TableField(value = "s_user_id", strategy = FieldStrategy.IGNORED)
    private String userId;

    /**
     * 住户名称
     */
    @TableField(value = "s_user_name", strategy = FieldStrategy.IGNORED)
    private String userName;

    /**
     * 房间名称
     */
    @TableField(value = "s_room_name")
    private String roomName;

    /**
     * 单元名称
     */
    @TableField(value = "s_unit_name")
    private String unitName;

    /**
     * 小区名称
     */
    @TableField(value = "s_residential_name")
    private String residentialName;

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

    /**
     * 物业路径
     */
    @TableField(value = "s_estate_position")
    private String estatePosition;


    /**
     * 删除标记：{ -1：已删除，0：正常 }
     */
    @TableField(value = "i_status")
    private Integer status;

    /**
     * 创建人id
     */
    @TableField(value = "l_create_account_id")
    private Long createAccountId;

    /**
     * 根机构Id(type 不等于0时)
     */
    @TableField(value = "l_root_org_id")
    private Long rootOrgId;

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

    /**
     * 下发和禁用标记：{ 0：未下发，1：已下发，2：已禁用 }
     */
    @TableField(value = "i_card_enable")
    private Integer cardEnable;

    /**
     * 原数据的Id
     */
    @TableField(value = "old_id")
    private String oldId;

    /**
     * 是否黑名单，0-否，1-是
     */
    @TableField(value = "i_is_black_card")
    private Integer isBlackCard;
}
