package com.unis.base.common.vo;

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

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.unis.common.utils.CurrentUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;


/**
 * 基础实体类
 * 所有继承该实体类的实体在映射成表的时候会自动加入该类中的字段
 *
 * @author huangxing
 */
@Getter
@Setter
public class BaseEntity implements Serializable {
    private static final long serialVersionUID = -5082401234492420871L;

    /**
     * 状态默认为1
     */
    @ApiModelProperty(value = "数据状态")
    private Integer status = 1;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建者")
    private String creator;

    /**
     * 创建人编号
     */
    @ApiModelProperty(value = "创建人编号")
    private String creatorCode;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;

    /**
     * 刷新时间
     */
    @ApiModelProperty(value = "刷新时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date refreshTime;

    /**
     * 刷新人
     */
    //@ApiModelProperty(value="刷新着")
    //private String refersher;

    /**
     * 刷新人
     */
    @ApiModelProperty(value = "刷新着")
    private String refresher;

    /**
     * 刷新人编号
     */
    //@ApiModelProperty(value="刷新人编号")
    //private String refersherCode;

    /**
     * 刷新人编号
     */
    @ApiModelProperty(value = "刷新人编号")
    private String refresherCode;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 后续加上创建人等信息
     */
    public void buildInsertData() {
        this.status = 1;
        this.creator = CurrentUtil.getUserAccount();
        this.creatorCode = CurrentUtil.getUserId();
    }

    /**
     * 后续加上修改人等信息
     */
    public void buildUpdateData() {
        this.refresher = CurrentUtil.getUserAccount();
        this.refresherCode = CurrentUtil.getUserId();
    }
}
