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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 静态网架评估结果主表（t_static_indicator_result）
 * <p>
 * 一次算法调用对应一行，保存算法返回的完整 JSON 以及元信息。
 *
 * @author lsl
 * @since 2026-07-19
 */
@TableName("t_static_indicator_result")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class StaticIndicatorResult implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 批次ID（yyyyMMddHHmmssSSS）
     */
    private String batchId;

    /**
     * 区县ID（即运维单位ID maintOrgId）
     */
    private String countyId;

    /**
     * 运维单位ID（跟 countyId 同值，冗余便于树节点直接关联）
     */
    private String maintOrgId;

    /**
     * 区县短标识
     */
    private String countySid;

    /**
     * 区县名称
     */
    private String countyName;

    /**
     * 馈线ID列表（逗号分隔）
     */
    private String feederIds;

    /**
     * 响应类型（static_grid_indicators）
     */
    private String responseType;

    /**
     * 请求ID
     */
    private String requestId;

    /**
     * 算法返回完整 JSON（longtext）
     */
    private String rawResponse;

    /**
     * 算法标识
     */
    private String algorithm;

    /**
     * 算法耗时（秒）
     */
    private BigDecimal durationSec;

    /**
     * 算法状态（success）
     */
    private String status;

    /**
     * 数据质量状态（partial / complete）
     */
    private String dataQualityStatus;

    /**
     * 数据完整率（%）
     */
    private BigDecimal dataQualityCompletenessRate;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;
}
