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: Project
 * package: com.sptg.estate.biz.security
 * description: 实施项目实体类
 *
 *
 *
 */
@Setter
@Getter
@TableName(value = "implement_project")
public class Project {

    /**
     * 主键
     */
    @TableId(value = "l_id",type = IdType.AUTO)
    private Long id;
    /**
     * 删除标记：{ -1：已删除，0：正常 }
     */
    @TableField(value = "i_status")
    private Integer status;
    /**
     * 创建人id
     */
    @TableField(value = "l_create_account_id")
    private Long createAccountId;
    /**
     *  创建账号的用户名-userName
     */
    @TableField(value = "s_create_name")
    private String createName;
    /**
     * 创建日期
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_create_date")
    private Date createDate;

    /**
     *  小区id
     */
    @TableField(value = "l_residential_id")
    private Long residentialId;
    /**
     * 小区名字--项目名称
     */
    @TableField(value = "s_residential_name")
    private String residentialName;
    /**
     * 地区（广东省广州市天河区）
     */
    @TableField(value = "s_region")
    private String region;
    /**
     * 物业联系人
     */
    @TableField(value = "s_property_contact")
    private String propertyContact;

    /**
     * 物业联系人电话
     */
    @TableField(value = "s_property_tel")
    private String propertyTel;

    /**
     * 项目经理
     */
    @TableField(value = "s_project_manager")
    private String projectManager;

    /**
     * 项目经理电话
     */
    @TableField(value = "s_project_tel")
    private String projectTel;

    /**
     * 业务经理
     */
    @TableField(value = "s_business_manager")
    private String businessManager;

    /**
     * 业务经理电话
     */
    @TableField(value = "s_business_tel")
    private String businessTel;
    /**
     * 安装工程经理
     */
    @TableField(value = "s_installation_manager")
    private String installationManager;

    /**
     * 安装工程经理电话
     */
    @TableField(value = "s_installation_tel")
    private String installationTel;
    /**
     * 所属机构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(exist = false)
    private String propertyName;
    /**
     *  合同编号
     */
    @TableField(exist = false)
    private String contractNo;
    /**
     *  合同签约日期
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(exist = false)
    private Date signingDate;
    /**
     *  综合服务方
     */
    @TableField(exist = false)
    private String integratedServiceName;
    /**
     *  关联的竣工表id
     */
    @TableField(exist = false)
    private Long projectCompletionId;
    /**
     *  竣工时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(exist = false)
    private Date completionDate;

    /**
     *  统计小区设备安装数量
     */
    @TableField(exist = false)
    private Integer installationCount;

    /**
     *  统计小区设备安装待审核数量
     */
    @TableField(exist = false)
    private Integer waitInstallationCount;

    /**
     *  项目开工时间，以设备安装的第一条记录创建时间作为开工时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date startInstallationDate;

    /**
     *  统计小区设备检测记录
     */
    @TableField(exist = false)
    private Integer testCount;

    /**
     *  统计小区设备检测记录待审核数量
     */
    @TableField(exist = false)
    private Integer waitTestCount;

    /**
     *  项目开工时间，以设备检测的第一条记录创建时间作为开工时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date startTestDate;

}
