package com.jsowell.pile.thirdparty;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * 站点基本信息
 *
 * @author Lemon
 * @Date 2023/9/5 14:10
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ZDLStationInfo {
    @JSONField(name = "StationID")
    private String stationId;

    @JSONField(name = "OperatorID")
    private String operatorId;

    @JSONField(name = "EquipmentOwnerID")
    private String equipmentOwnerId;

    @JSONField(name = "StationName")
    private String stationName;

    @JSONField(name = "CountryCode")
    private String countryCode;

    @JSONField(name = "AreaCode")
    private String areaCode;

    @JSONField(name = "Address")
    private String address;

    @JSONField(name = "ServiceTel")
    private String serviceTel;

    @JSONField(name = "StationType")
    private Integer stationType;

    @JSONField(name = "StationStatus")
    private Integer stationStatus;

    @JSONField(name = "ParkNums")
    private Integer parkNums;

    @JSONField(name = "StationLng")
    private BigDecimal stationLng;

    @JSONField(name = "StationLat")
    private BigDecimal stationLat;

    @JSONField(name = "Construction")
    private Integer construction;

    @JSONField(name = "ParkFee")
    private String parkFee;

    @JSONField(name = "Pictures")
    private List<String> pictures;

    @JSONField(name = "EquipmentInfos")
    private List<ZDLEquipmentInfo> equipmentInfos;

    /**
     * ======================= 以下为青海平台必填字段 =======================
     */

    /**
     * 充换电站所在县以下行政区划代码
     * 填写内容为 12 位行政区划代码，1-6 位为县以上行政区划代码，7-12 位为县以下区划代码。
     *
     * 具体参考国家统计局发布的 2022 年度全国统计用区划代码和城乡划分代码：
     *
     * http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2022
     */
    @JSONField(name = "AreaCodeCountryside")
    private String areaCodeCountryside;

    /**
     * 站点分类
     *
     * 1：充电站
     * 2：换电站
     * 3：充换电一体站
     */
    @JSONField(name = "StationClassification")
    private Integer stationClassification;

    /**
     * 通用类型
     *
     * 1：通用（可为 3 种或 3 种以上的车型进行换电）
     * 2：非通用
     * 注：站点分类为 2 或 3 时，此字段必填，为 1 时非必填。
     */
    @JSONField(name = "GeneralApplicationType")
    private Integer generalApplicationType;

    /**
     * 服务车型描述
     *
     * 描述换电站可服务的车系车型（厂牌型号）
     * 注：站点分类为 2 或 3 时，此字段必填，为 1 时非必填。
     */
    @JSONField(name = "SwapMatchCars")
    private List<String> swapMatchCars;

    /**
     * 7 * 24 小时营业
     *
     * 0：否 1：是
     */
    @JSONField(name = "OpenAllDay")
    private Integer openAllDay;

    /**
     * 停车费类型
     *
     * 0：免费
     * 1：不免费
     * 2：限时免费停车
     * 3：充电限时免费
     * 255：参考场地实际收费标准
     */
    @JSONField(name = "ParkFeeType")
    private Integer parkFeeType;

    /**
     * 电费类型
     *
     * 1：商业用电
     * 2：普通工业用电
     * 3：大工业用电
     * 4：其他用电
     */
    @JSONField(name = "ElectricityType")
    private Integer electricityType;

    /**
     * 报装类型
     *
     * 是否独立报装
     * 0：否 1：是
     */
    @JSONField(name = "IsAloneApply")
    private Integer isAloneApply;

    /**
     * 站点额定总功率
     * 单位 kW,保留 1 位小数
     */
    @JSONField(name = "RatedPower")
    private BigDecimal ratedPower;

    /**
     * 峰谷分时
     * 0：否 1：是
     */
    @JSONField(name = "PeriodFee")
    private Integer periodFee;

    /**
     * 投运时间
     *
     * 格式“yyyy-MM-dd HH：mm:ss”
     *
     */
    @JSONField(name = "RunTime")
    private String runTime;

    /**
     * 视频监控配套情况
     *
     * 0：无 1：有
     */
    @JSONField(name = "VideoMonitor")
    private Integer videoMonitor;
}
