package com.hdkj.lt.bf.entity.staticgrid;

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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 静态网架评估结果主表实体
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName("t_static_indicator_result")
@ApiModel(description = "静态网架评估结果主表")
public class StaticIndicatorResult implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "批次ID")
    private String batchId;

    @ApiModelProperty(value = "区县ID（即运维单位ID maintOrgId）")
    private String countyId;

    @ApiModelProperty(value = "运维单位ID（跟countyId同值，冗余便于树节点直接关联）")
    private String maintOrgId;

    @ApiModelProperty(value = "区县短标识")
    private String countySid;

    @ApiModelProperty(value = "区县名称")
    private String countyName;

    @ApiModelProperty(value = "馈线ID列表")
    private String feederIds;

    @ApiModelProperty(value = "响应类型")
    private String responseType;

    @ApiModelProperty(value = "请求ID")
    private String requestId;

    @ApiModelProperty(value = "算法返回完整JSON")
    private String rawResponse;

    @ApiModelProperty(value = "算法标识")
    private String algorithm;

    @ApiModelProperty(value = "算法耗时(秒)")
    private BigDecimal durationSec;

    @ApiModelProperty(value = "算法状态")
    private String status;

    @ApiModelProperty(value = "数据质量状态")
    private String dataQualityStatus;

    @ApiModelProperty(value = "数据完整率(%)")
    private BigDecimal dataQualityCompletenessRate;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
}