package com.tuoheng.admin.entity.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tuoheng.admin.enums.MarkTypeEnum;
import com.tuoheng.admin.enums.UpdateOrCreateEnum;
import com.tuoheng.common.common.BaseEntity;
import com.tuoheng.system.utils.ShiroUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 问题工单映射实体
 *
 * @author qiujinyang
 * @date 2022/08/03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("th_question")
public class Question extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    public Question(int type){
        if(type== UpdateOrCreateEnum.CREATE.getCode()){
            setCreateTime(new Date());
            setMark(MarkTypeEnum.VALID.getCode());
        }
        setUpdateTime(new Date());
    }

    /**
     * 任务ID
     */
    private Integer missionId;

    /**
     * 任务名称
     */
    private String missionName;

    /**
     * 问题类型:病死树、林斑
     */
    private String type;

    /**
     * 问题类型名称
     */
    private String questionName;

    /**
     * 问题描述
     */
    private String questionDesc;

    /**
     * 图片分析时间，可以通过这个时间来计算出坐标位置
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date analyseTime;

    /**
     * 文件编码
     */
    private String fileCode;

    /**
     * 文件名称
     */
    private String fileName;

    /**
     * 原图片位置
     */
    private String fileOriginalUrl;

    /**
     * 分析后的图片位置
     */
    private String fileMarkerUrl;

    /**
     * 经度
     */
    private String lng;

    /**
     * 纬度
     */
    private String lat;

    /**
     * 备注
     */
    private String note;

    /**
     * 问题状态：1：确认，2：忽略，3：待确认
     */
    private Integer status;


    /**
     * 租户id
     */
    private Integer tenantId;
}