package com.base.plan.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

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

/**
 * <p>
 *
 * </p>
 *
 * @author cxl
 * @since 2022-06-24
 */
@Getter
@Setter
@TableName("alg_scheme_step")  //    方案评估信息
@ApiModel(value = "AlgSchemeStep对象", description = "")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AlgSchemeStep implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("uuid")
    @TableId("id")
    private String id;

    @ApiModelProperty("方案id")
    @TableField("scheme_id")
    private String schemeId;

    @ApiModelProperty("子需求id")
    @TableField("step_id")
    private String stepId;

    @ApiModelProperty("子需求执行状态： 0未安排 1已安排 ")
    @TableField("step_status")
    private String stepStatus;

    @ApiModelProperty("筹划失败原因")
    @TableField("plan_failed_reason")
    private String planFailedReason;

    @ApiModelProperty("创建时间")
    @TableField("created_date")
    private Date createdDate;

    @ApiModelProperty("创建人")
    @TableField("created_by")
    private String createdBy;

    @ApiModelProperty("最后修改人")
    @TableField("last_modified_by")
    private String lastModifiedBy;

    @ApiModelProperty("最后修改时间")
    @TableField("last_modified_date")
    private LocalDateTime lastModifiedDate;

    @ApiModelProperty("版本号")
    @TableField("version")
    private BigDecimal version;

    @ApiModelProperty("状态")
    @TableField("status")
    private BigDecimal status;

    @ApiModelProperty("最大观测间隔，单位秒")
    @TableField("max_scout_fre")
    private BigDecimal maxScoutFre;

    @ApiModelProperty("最小观测间隔，单位秒")
    @TableField("min_scout_fre")
    private BigDecimal minScoutFre;

    @ApiModelProperty("最高分辨率：比如0.5m")
    @TableField("max_load_resolution")
    private BigDecimal maxLoadResolution;

    @ApiModelProperty("最低分辨率：比如1.5m")
    @TableField("min_load_resolution")
    private BigDecimal minLoadResolution;

    @ApiModelProperty("卫星数量")
    @TableField("sat_count")
    private Integer satCount;

    @ApiModelProperty("覆盖率")
    @TableField("coverage")
    private BigDecimal coverage;

    @ApiModelProperty("日频次")
    @TableField("daily")
    private BigDecimal daily;

    @ApiModelProperty("首次下传时间")
    @TableField("first_download_time")
    private Date firstDownloadTime;

    @ApiModelProperty("末次下传时间")
    @TableField("last_download_time")
    private Date lastDownloadTime;

    @ApiModelProperty("成功率（侧摆角有关）")
    @TableField("eval_success")
    private BigDecimal evalSuccess;

    @ApiModelProperty("观测次数")
    @TableField("observe_num")
    private BigDecimal observeNum;

    @ApiModelProperty("总耗时，单位秒")
    @TableField("total_time")
    private Integer totalTime;

    @ApiModelProperty("载荷种类，以逗号隔开，包括选用卫星窗口所用的载荷")
    @TableField("load_type")
    private String loadType;

    @ApiModelProperty("需求名称")
    @TableField("step_name")
    private String stepName;

    @ApiModelProperty("优先级")
    @TableField("priority")
    private Integer priority;

    @ApiModelProperty("最早观察时间")
    @TableField("earliest_observation_time")
    private Date earliestObservationTime;

    @ApiModelProperty("编号")
    @TableField("parent_id")
    private String parentId;

    @ApiModelProperty("方案是否确认(1已确认 2未确认)")
    @TableField("is_confirm")
    private  Integer isConfirm;
}
