package com.jsowell.thirdparty.lianlian.domain;


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;

/**
 * 充电站信息
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class StationInfo {
    /**
     * 充电站ID  Y
     * 对接平台自定义的唯一编码
     */
    @JSONField(name = "StationID")
    private String stationID;

    /**
     * 对接平台ID  Y
     * 组织机构代码
     */
    @JSONField(name = "OperatorID")
    private String operatorID;

    /**
     * 设备所属运营商ID  Y
     * 设备所属运营商组织机构代码
     */
    @JSONField(name = "EquipmentOwnerID")
    private String equipmentOwnerID;

    /**
     * 充电站名称  Y
     * 充电站名称的描述
     */
    @JSONField(name = "StationName")
    private String stationName;

    /**
     * 是否独立报桩 (0-否;1-是) Y
     * 如果是独立报桩需要填写户号以及容量
     */
    @JSONField(name = "IsAloneApply")
    private Integer isAloneApply;

    /**
     * 户号  N
     * 国网电费账单户号
     */
    // private String AccountNumber;

    /**
     * 容量(单位KW)  N
     * 独立电表申请的功率
     */
    // private BigDecimal Capacity;

    /**
     * 是否是公共停车场库 (0-否;1-是)  Y
     * 如果是公共停车场库需要填写场库编号
     */
    @JSONField(name = "IsPublicParkingLot")
    private Integer isPublicParkingLot;

    /**
     * 停车场库编号  N
     * 公共停车场库编号
     */
    // private String ParkingLotNumber;

    /**
     * 充电站国家代码  Y
     * 比如CN
     */
    @JSONField(name = "CountryCode")
    private String countryCode;

    /**
     * 充电站省市辖区编码  Y
     * 填写内容为参照 GB/T2260-2015
     */
    @JSONField(name = "AreaCode")
    private String areaCode;

    /**
     * 详细地址  Y
     */
    @JSONField(name = "Address")
    private String address;

    /**
     * 站点电话  N
     * 能够联系场站工作人员进行协助的联系电话
     */
    // private String StationTel;

    /**
     * 服务电话  Y
     * 平台服务电话，例如400 的电话
     */
    @JSONField(name = "ServiceTel")
    private String serviceTel;

    /**
     * 站点类型  Y
     * 1-公共
     * 50-个人
     * 100-公交（专用）
     * 101-环卫（专用）
     * 102-物流（专用）
     * 103-出租车（专用）
     * 104-分时租赁（专用）
     * 105-小区共享（专用）
     * 106-单位（专用）
     * 255-其他
     */
    @JSONField(name = "StationType")
    private Integer stationType;

    /**
     * 站点状态  Y
     * 0：未知
     * 1：建设中
     * 5：关闭下线
     * 6：维护中
     * 50：正常使用
     */
    @JSONField(name = "StationStatus")
    private Integer stationStatus;

    /**
     * 车位数量  Y
     * 可停放进行充电的车位总数(默认：0-未知)
     */
    @JSONField(name = "ParkNums")
    private Integer parkNums;

    /**
     * 经度  Y
     * GCJ-02坐标系
     */
    @JSONField(name = "StationLng")
    private BigDecimal stationLng;

    /**
     * 纬度  Y
     * GCJ-02坐标系
     */
    @JSONField(name = "StationLat")
    private BigDecimal stationLat;

    /**
     * 站点引导  N
     * 描述性文字，用于引导车主找到充电车位
     */
    // private String SiteGuide;

    /**
     * 建设场所  Y
     * 1：居民区
     * 2：公共机构
     * 3：企事业单位
     * 4：写字楼
     * 5：工业园区
     * 6：交通枢纽
     * 7：大型文体设施
     * 8：城市绿地
     * 9：大型建筑配建停车场
     * 10：路边停车位
     * 11：城际高速服务区
     * 12：风景区
     * 13：公交场站
     * 14：加油加气站
     * 15：出租车
     * 255：其他
     */
    @JSONField(name = "Construction")
    private Integer construction;

    /**
     * 站点照片  N
     * 充电设备照片、充电车位照片、停车场入口照片
     */
    // private List<String> Pictures;

    /**
     * 使用车型描述  N
     * 描述该站点接受的车大小以及类型，如大巴、物流车、私家乘用车、出租车等
     */
    // private String MatchCars;

    /**
     * 车位楼层及数量描述  N
     * 车位楼层以及数量信息
     */
    // private String ParkInfo;

    /**
     * 停车场产权方  N
     * 停车场产权人
     */
    // private String ParkOwner;

    /**
     * 停车场管理方  N
     * 停车场管理人（如：XX 物业）
     */
    // private String ParkManager;

    /**
     * 全天开放  Y
     * 是否全天开放(0-否；1-是),如果为0，则营业时间必填
     */
    @JSONField(name = "OpenAllDay")
    private Integer openAllDay;

    /**
     * 营业时间  N
     * 营业时间描述,推荐格式：周一至周日00:00-24:00
     */
    // private String BusinessHours;

    /**
     * 最低单价  Y
     * 最低充电电费率
     */
    @JSONField(name = "MinElectricityPrice")
    private BigDecimal minElectricityPrice;

    /**
     * 充电电费率  Y
     * 充电费描述,推荐格式：XX 元/度
     */
    @JSONField(name = "ElectricityFee")
    private String electricityFee;

    /**
     * 服务费率  Y
     * 服务费率描述,推荐格式：XX 元/度
     */
    @JSONField(name = "ServiceFee")
    private String serviceFee;

    /**
     * 免费停车  Y
     * 是否停车免费(0-否；1-是)
     */
    @JSONField(name = "ParkFree")
    private Integer parkFree;

    /**
     * 停车费  N
     * 停车费率描述
     */
    // private String ParkFee;

    /**
     * 支付方式  Y
     * 支付方式:刷卡、线上、现金  其中电子钱包类卡为刷卡，身份鉴权卡、微信/ 支付宝、APP为线上
     */
    @JSONField(name = "Payment")
    private String payment;

    /**
     * 是否支持预约  Y
     * 充电设备是否需要提前预约后才能使用。(0-不支持预约;1-支持预约)  不填默认为0
     */
    @JSONField(name = "SupportOrder")
    private Integer supportOrder;

    /**
     * 备注  N
     * 其他备注信息
     */
    // private String Remark;

    /**
     * 充电设备信息列表  Y
     * 该充电站所有充电设备信息对象集合
     */
    @JSONField(name = "EquipmentInfos")
    private List<EquipmentInfo> equipmentInfos;

    /**
     * 停车收费类型  Y
     * 0:停车收费;
     * 1:停车免费;
     * 2:限时免费;
     * 3:充电限免
     */
    @JSONField(name = "ParkFeeType")
    private Integer parkFeeType;

    /**
     * 是否靠近卫生间(0-否；1-是)  Y
     */
    @JSONField(name = "ToiletFlag")
    private Integer toiletFlag;

    /**
     * 是否靠近便利店(0-否；1-是)  Y
     */
    @JSONField(name = "StoreFlag")
    private Integer storeFlag;

    /**
     * 是否靠近餐厅(0-否；1-是)  Y
     */
    @JSONField(name = "RestaurantFlag")
    private Integer restaurantFlag;

    /**
     * 是否靠近休息室(0-否；1-是)  Y
     */
    @JSONField(name = "LoungeFlag")
    private Integer loungeFlag;

    /**
     * 是否有雨棚(0-否；1-是)  Y
     */
    @JSONField(name = "CanopyFlag")
    private Integer canopyFlag;

    /**
     * 是否有小票机(0-否；1-是)  Y
     */
    @JSONField(name = "PrinterFlag")
    private Integer printerFlag;

    /**
     * 是否有道闸(0-否；1-是)  Y
     */
    @JSONField(name = "BarrierFlag")
    private Integer barrierFlag;

    /**
     * 是否有地锁(0-否；1-是)  Y
     */
    @JSONField(name = "ParkingLockFlag")
    private Integer parkingLockFlag;

}
