package com.njcn.csdevice.pojo.param;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 类的介绍：
 *
 * @author xuyang
 * @version 1.0.0
 * @createTime 2024/4/1 19:18
 */
@Data
public class WlRecordParam {

    @ApiModelProperty("方案名称")
    private String proName;

    @ApiModelProperty("描述")
    private String describe;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class Record extends WlRecordParam {

        @ApiModelProperty("装置id")
        private String devId;

        @ApiModelProperty("监测点id")
        private String lineId;

        @ApiModelProperty("项目起始时间")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime proStartTime;

        @ApiModelProperty("项目结束时间")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime proEndTime;

        @ApiModelProperty("测试项名称")
        private String itemName;

        @ApiModelProperty("测试项监测位置")
        private String location;

        @ApiModelProperty("统计间隔")
        private Integer statisticalInterval;

        @ApiModelProperty("PT变比")
        private Integer pt;

        @ApiModelProperty("CT变比")
        private Integer ct;

        @ApiModelProperty("PT变比")
        private Integer pt1;

        @ApiModelProperty("CT变比")
        private Integer ct1;

        @ApiModelProperty("电压等级")
        private String voltageLevel;

        @ApiModelProperty("基准短路容量（MVA）")
        private Float capacitySscb;

        @ApiModelProperty("最小短路容量（MVA）")
        private Float capacitySscmin;

        @ApiModelProperty("供电设备容量（MVA）")
        private Float capacitySt;

        @ApiModelProperty("用户协议容量（MVA）")
        private Float capacitySi;

        @ApiModelProperty("电压接线方式(星型、角型、V型)")
        private String volConType;

        @ApiModelProperty("基础数据集合ID")
        private List<String> list;
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class UpdateRecord extends Record {
        @ApiModelProperty("id")
        private String id;
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class AddRecord extends WlRecordParam {
        @ApiModelProperty("records")
        private List<Record> records;

        @ApiModelProperty("方案id")
        private String id;
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class lineRecord extends WlRecordParam {

        @ApiModelProperty("监测点id")
        private String lineId;

        @ApiModelProperty("测试项起始时间")
        private String itemStartTime;

        @ApiModelProperty("测试项结束时间")
        private String itemEndTime;

        @ApiModelProperty("数据来源 0:补召 1:在线监测 ")
        private Integer dataSource;


    }

}
