package com.hdkj.lt.job.entity.po;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * @author rj
 * @date 2025/12/22 15:41
 * @description
 */
@NoArgsConstructor
@Data
public class FeederBaseResponse {

    private Integer count;
    private String errors;
    private String message;
    private ResultDTO result;
    private String status;

    @NoArgsConstructor
    @Data
    public static class ResultDTO {
        private DkxDTO dkx;

        @NoArgsConstructor
        @Data
        public static class DkxDTO {
            private Integer current;
            private Integer total;
            private Integer pages;
            private Integer size;
            private List<RecordsDTO> records;
            private Boolean searchCount;
            private List<?> orders;

            @NoArgsConstructor
            @Data
            public static class RecordsDTO {
                private List<AssetsDTO> assets;
                private Integer distribution;
                private String id;
                private String modelId;
                private ResourceDTO resource;

                @NoArgsConstructor
                @Data
                public static class ResourceDTO {
                    private String isCoaltoelectricity;
                    private String normalEnergizingBusbar;
                    private String startSwitchType;
                    @JSONField(name = "erectionMethod#Name")
                    private String erectionMethodName;
                    private String dispatchOrg;
                    private String maintOrg;
                    @JSONField(name = "isCentralizedelechtg#Name")
                    private String isCentralizedelechtgName;
                    private Double referenceLength;
                    private String cableMethod;
                    @JSONField(name = "voltageLevel#Name")
                    private String voltageLevelName;
                    private String supplyArea;
                    private String startStationType;
                    @JSONField(name = "cableMethod#Name")
                    private String cableMethodName;
                    private String overheadMethod;
                    @JSONField(name = "supplyArea#Name")
                    private String supplyAreaName;
                    @JSONField(name = "pubPrivFlag#Name")
                    private String pubPrivFlagName;
                    private String isDistributedelechtg;
                    @JSONField(name = "regionalism#Name")
                    private String regionalismName;
                    @JSONField(name = "startSwitch#Name")
                    private String startSwitchName;
                    private String erectionMethod;
                    private String dispatchLevel;
                    private String isRural;
                    @JSONField(name = "dispatchLevel#Name")
                    private String dispatchLevelName;
                    @JSONField(name = "isRural#Name")
                    private String isRuralName;
                    private Date ctime;
                    private String startStation;
                    private String startBay;
                    private String equipmentOwner;
                    @JSONField(name = "overheadMethod#Name")
                    private String overheadMethodName;
                    private String psrId;
                    @JSONField(name = "startStation#Name")
                    private String startStationName;
                    private String astId;
                    @JSONField(name = "maintOrg#Name")
                    private String maintOrgName;
                    private String name;
                    @JSONField(name = "isDaFeeder#Name")
                    private String isDaFeederName;
                    @JSONField(name = "isCoaltoelectricity#Name")
                    private String isCoaltoelectricityName;
                    private Double overheadLength;
                    private Double cableLength;
                    private Date lastUpdateTime;
                    private Double feederRateCapacity;
                    private String psrState;
                    private String regionalism;
                    @JSONField(name = "startStationType#Name")
                    private String startStationTypeName;
                    private String city;
                    private String importance;
                    private Double supplyRadius;
                    @JSONField(name = "isDistributedelechtg#Name")
                    private String isDistributedelechtgName;
                    @JSONField(name = "importance#Name")
                    private String importanceName;
                    private String runDevName;
                    @JSONField(name = "psrState#Name")
                    private String psrStateName;
                    private Date startTime;
                    private String pubPrivFlag;
                    private String startSwitch;
                    @JSONField(name = "maintGroup#Name")
                    private String maintGroupName;
                    private String maintGroup;
                    private Double length;
                    private String isCentralizedelechtg;
                    private String consNo;
                    private String isDaFeeder;
                    @JSONField(name = "dispatchOrg#Name")
                    private String dispatchOrgName;
                    @JSONField(name = "city#Name")
                    private String cityName;
                    private String voltageLevel;
                    @JSONField(name = "startBay#Name")
                    private String startBayName;
                    @JSONField(name = "equipmentOwner#Name")
                    private String equipmentOwnerName;
                }

                @NoArgsConstructor
                @Data
                public static class AssetsDTO {
                    private Double feederRateCapacity;
                    private String astNature;
                    @JSONField(name = "source#Name")
                    private String sourceName;
                    private String source;
                    @JSONField(name = "astOrg#Name")
                    private String astOrgName1;
                    @JSONField(name = "isCommission#Name")
                    private String isCommissionName;
                    private String astOrg;
                    private String astOrgName;
                    private Date ctime;
                    @JSONField(name = "astNature#Name")
                    private String astNatureName;
                    private String equipCode;
                    private String isCommission;
                    private String astId;
                    private String astNum;
                    private String wbsNum;
                    @JSONField(name = "deployState#Name")
                    private String deployStateName;
                    private String projectNum;
                    private Double maxAllowableCurrent;
                    private String projectName;
                    private Date operateDate;
                    private String deployState;
                    private Date lastUpdateTime;
                }
            }
        }
    }
}
