/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.estate.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springblade.core.mp.base.BaseEntity;
import java.time.LocalDateTime;
import java.util.Date;

import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 报事工单实体类
 *
 * @author BladeX
 * @since 2022-01-12
 */
@Data
@TableName("estate_repair")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Repair对象", description = "报事工单")
public class Repair extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 报事报修编号
	 */
	@ApiModelProperty(value = "报事报修编号")
	private String repairNo;

	/**
	 * 报事报修名称
	 */
	@ApiModelProperty(value = "报事报修名称")
	private String repairName;
	/**
	 * 上报人
	 */
	@ApiModelProperty(value = "上报人")
	private String reportor;
	/**
	 * 上报人电话
	 */
	@ApiModelProperty(value = "上报人电话")
	private String reportorPhone;
	/**
	 * 工单ID
	 */
	@ApiModelProperty(value = "工单ID")
	private Long workOrderId;
	/**
	 * 是否生成工单，0：未生成，1：已生成
	 */
	@ApiModelProperty(value = "是否生成工单，0：未生成，1：已生成")
	private Integer hasWorkOrder;
	/**
	 * 上报时间
	 */
	@ApiModelProperty(value = "上报时间")
	private LocalDateTime reportTime;
	/**
	 * 报修详情
	 */
	@ApiModelProperty(value = "报修详情")
	private String reportDetail;
	/**
	 * 报事来源，1：小程序，2：后台
	 */
	@ApiModelProperty(value = "报事来源，1：小程序，2：后台")
	private Integer reportSource;
	/**
	 * 报事报修位置
	 */
	@ApiModelProperty(value = "报事报修位置")
	private String reportPosition;
	/**
	 * 处理人
	 */
	@ApiModelProperty(value = "处理人")
	private String handler;
	/**
	 * 处理人电话
	 */
	@ApiModelProperty(value = "处理人电话")
	private String handlerPhone;
	/**
	 * 处理状态
	 * 0:未处理
	 * 1：处理中
	 * 2：已处理
	 * 3：不作处理
	 */
	@ApiModelProperty(value = "处理状态")
	private Integer handleStatus;
	/**
	 * 处理时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "处理时间")
	private Date handleTime;
	/**
	 * 预约开始时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "预约开始时间")
	private Date beginTime;
	/**
	 * 预约结束时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "预约结束时间")
	private Date endTime;
	/**
	 * 受理状态：0：等待受理，1：已受理，2：拒绝受理
	 */
	@ApiModelProperty(value = "受理状态：0：等待受理，1：已受理，2：拒绝受理")
	private Integer acceptStatus;
	/**
	 * 受理原因
	 */
	@ApiModelProperty(value = "受理原因")
	private String acceptReason;
	/**
	 * 处理结果
	 */
	@ApiModelProperty(value = "处理结果")
	private String handleResult;
	/**
	 * 处理结果评价
	 */
	private Integer rate;
	/**
	 * 0-未评价  1-已评价
	 */
	@ApiModelProperty(value = "0-未评价  1-已评价")
	private Integer hasEstimate;
	/**
	 * 用户对处理结果的评论
	 */
	@ApiModelProperty(value = "用户对处理结果的评论")
	private String comment;
	/**
	 * 图片-多张图片用“，”切割
	 */
	@ApiModelProperty(value = "图片-多张图片用“，”切割")
	private String pic;
	/**
	 * 社区ID
	 */
	@ApiModelProperty(value = "社区ID")
	private Long agencyId;

	/**
	 * 小区ID
	 */
	@ApiModelProperty(value = "小区ID")
	private Long residentialId;

	/**
	 * 会员ID
	 */
	@ApiModelProperty(value = "会员ID")
	private Long memberId;

	/**
	 * 工单组ID
	 */
	@ApiModelProperty(value = "工单组ID")
	private Long workOrderGroupId;

	/**
	 * 工单组成员ID
	 */
	@ApiModelProperty(value = "工单组成员ID")
	private Long workOrderGroupUserId;

	/**
	 * 企业ID
	 */
	@ApiModelProperty(value = "企业ID")
	private Long enterpriseId;

	private String tenantId;


}
