package com.yunyan.business.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunyan.common.annotation.Excel;

import com.yunyan.common.core.domain.BaseEntity;
import com.yunyan.common.core.domain.BaseEntityVo;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.*;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.annotation.JsonIgnore;

/**
 * 预算政府采购数据对象 tb_purchase_data
 *
 * @author yunyan
 * @date 2024-02-27
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName(value = "tb_purchase_data")
public class PurchaseData extends BaseEntityVo
{
    private static final long serialVersionUID = 1L;

    /** ID主键 */
    @JsonSerialize(using= ToStringSerializer.class)
    @TableId(value = "id", type = IdType.INPUT)
    @ApiModelProperty(value = "ID主键", hidden = true)
    private Long id;

    /** 年份(如2023) */
    @ApiModelProperty(value = "年份(如2023)", hidden = true)
    private String year;

    @ApiModelProperty(value = "区域", hidden = true)
    private String area;

    /** 状态: 0-默认 */
    @ApiModelProperty(value = "状态: 0-默认", hidden = true)
    private Integer status;

    /** 创建时间/填报时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间/填报时间", hidden = true)
    private Date createTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "更新时间", hidden = true)
    private Date updateTime;

    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建者", hidden = true)
    private String createBy;

    /** 更新者 */
    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "更新者", hidden = true)
    private String updateBy;

    /** 逻辑删除(1-删除，0-未删) */
            //逻辑删除（就是在delete字段做标记，不是真正意义上的删除）
    @JsonIgnore
    @TableLogic(value = "0",delval = "1")
    @TableField(select = false)
    @ApiModelProperty(value = "逻辑删除(1-删除，0-未删)", hidden = true)
    private Long deleted;

    /**  JSON字符串的第四部分名词解释数据 */
    @ApiModelProperty(value = " JSON字符串的第四部分名词解释数据", hidden = true)
    private String jsonContent;



}
