package com.yuchen.saas.parking.charge.api.entity.charge;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.mp.base.BaseEntity;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * @Author 蔡文强
 * @Date 2023/4/13 15:56
 * @Description 充电站表
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("spc_station")
@ApiModel(value="SpcStation对象", description="充电站表")
public class SpcStation extends BaseEntity {

    /**
     * 所属运营运营商
     */
    @ApiModelProperty(name = "enterpriseId", value = "所属运营运营商")
    private Long enterpriseId;

    /**
     * 所属运营运营商
     */
    @ApiModelProperty(name = "enterpriseName", value = "所属运营运营商")
    private String enterpriseName;
    /**
     * 运营商类型(1:自营 2:加盟)
     */
    @ApiModelProperty(name = "mode", value = "运营商类型(1:自营 2:加盟)")
    private Integer mode;

    /**
     * 运营状态(1:未启动 2:运营中 3:暂停运营 4：停止运营)
     */
    @ApiModelProperty(name = "operateStatus", value = "运营状态(1:未启动 2:运营中 3:暂停运营 4：停止运营)")
    private Integer operateStatus;

    /**
     * 电站类型(1:园区电站 2:社区电站 3:其他电站)
     */
    @ApiModelProperty(name = "stationMode", value = "电站类型(1:园区电站 2:社区电站 3:其他电站)")
    private Integer stationMode;

    /**
     * 园区ID
     */
    @ApiModelProperty(name = "parkId", value = "园区ID")
    private Long parkId;
    /**
     * 园区名称
     */
    @ApiModelProperty(name = "parkName", value = "园区名称")
    private String parkName;

    /**
     * 站点类型(1:混合站 2:独立站)
     */
    @ApiModelProperty(name = "stationType", value = "站点类型(1:混合站 2:独立站)")
    private Integer stationType;
    /**
     * 停车场Id,混合站才有
     */
    @ApiModelProperty(name = "parkingId", value = "停车场Id,混合站才有")
    private Long parkingId;
    /**
     * 停车场名称,混合站才有
     */
    @ApiModelProperty(name = "parkingName", value = "停车场名称,混合站才有")
    private String parkingName;
    /**
     * 场地位置(1:地面场地 2:地下场地 3:其他场地)
     */
    @ApiModelProperty(name = "siteLocation", value = "场地位置(1:地面场地 2:地下场地 3:其他场地)")
    private Integer siteLocation;
    /**
     * 充电站名称
     */
    @ApiModelProperty(name = "stationName", value = "充电站名称")
    private String stationName;
    /**
     * 联系人
     */
    @ApiModelProperty(name = "contactName", value = "联系人")
    private String contactName;
    /**
     * 联系电话
     */
    @ApiModelProperty(name = "phone", value = "联系电话")
    private String phone;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;
    /**
     * 可用电容
     */
    @ApiModelProperty(name = "availableCapacitance", value = "可用电容")
    private Double availableCapacitance;
    /**
     * 是否增容(1:是 2:否)
     */
    @ApiModelProperty(name = "isAdd", value = "是否增容(1:是 2:否)")
    private Integer isAdd;

    /**
     * 电桩数
     */
    @ApiModelProperty(name = "terminalCount", value = "电桩数")
    private Integer stakeCount;
    @ApiModelProperty(name = "construction", value = "建设场所，1：居民区 2：公共机构 3：企事业单位 4：写字楼 5：工业园区 6：交通枢纽 7：大型文体设施 8：城市绿地 9：大型建筑配建停车 场 10：路边停车位 11：城际高速服务区 255：其他")
    private Integer construction;
    @ApiModelProperty(name = "provincePowerNo", value = "省电力编号")
    private String provincePowerNo;
    @ApiModelProperty(name = "usingType", value = "使用类型，1：公共 50：个人100：公交（专用）101：环卫（专用）102：物流（专用）103：出租车（专用）255：其他")
    private Integer usingType;
    /**
     * 终端数
     */
    @ApiModelProperty(name = "terminalCount", value = "终端数")
    private Integer terminalCount;
    /**
     * 车位数
     */
    @ApiModelProperty(name = "placeCount", value = "车位数")
    private Long placeCount;
    /**
     * 车位地锁(1:有地锁 2:无地锁)
     */
    @ApiModelProperty(name = "placeLock", value = "车位地锁(1:有地锁 2:无地锁)")
    private Integer placeLock;
    /**
     * 特殊车位(1:货车车位 2:客车车位)
     */
    @ApiModelProperty(name = "specialPlace", value = "特殊车位(1:货车车位 2:客车车位)")
    private Integer specialPlace;
    /**
     * 开放类型(1:公共对外 2:内部专用)
     */
    @ApiModelProperty(name = "openType", value = "开放类型(1:公共对外 2:内部专用)")
    private Integer openType;
    /**
     * 值守类型(1:有人看守 2:无人看守)
     */
    @ApiModelProperty(name = "dutyType", value = "值守类型(1:有人看守 2:无人看守)")
    private Integer dutyType;
    /**
     * 场站道闸(1:无道闸 2:有道闸)
     */
    @ApiModelProperty(name = "isGate", value = "场站道闸(1:无道闸 2:有道闸)")
    private Integer isGate;
    /**
     * 地理位置(省市县/区)
     */
    @ApiModelProperty(name = "location", value = "地理位置(省市县/区)")
    private String location;
    /**
     * 省编号
     */
    @ApiModelProperty(name = "province", value = "省编号")
    @NotBlank(message = "省编号不能为空")
    private String province;
    /**
     * 市编号
     */
    @ApiModelProperty(name = "city", value = "市编号")
    @NotBlank(message = "市编号不能为空")
    private String city;
    /**
     * 区/县编号
     */
    @ApiModelProperty(name = "county", value = "区/县编号")
    @NotBlank(message = "区/县编号不能为空")
    private String county;

    /**
     * 乡镇编码
     */
    @ApiModelProperty(name = "townCode", value = "乡镇编码")
    @NotBlank(message = "乡镇编码不能为空")
    private String townCode;

    /**
     * 详细地址
     */
    @ApiModelProperty(name = "address", value = "详细地址")
    private String address;

    /**
     * 验收时间
     */
    @ApiModelProperty(name = "operDate", value = "验收时间")
    @NotBlank(message = "验收时间不能为空")
    private Date operDate;
    @ApiModelProperty(name = "operationTime", value = "投运时间")
    private Date operationTime;
    /**
     * 经度
     */
    @ApiModelProperty(name = "longitude", value = "经度")
    private Double longitude;
    /**
     * 纬度
     */
    @ApiModelProperty(name = "latitude", value = "纬度")
    private Double latitude;
    /**
     * 充电站图片(多张，逗号隔开)
     */
    @ApiModelProperty(name = "stationPhotos", value = "充电站图片(多张，逗号隔开)")
    private String stationPhotos;
    /**
     * 所属资质图片(多张，逗号隔开)
     */
    @ApiModelProperty(name = "naturalEndowmen", value = "所属资质图片(多张，逗号隔开)")
    private String naturalEndowmen;
    /**
     * 站点服务设施(1:免费wifi 2:空调休息室 3:按摩室 4:便利店 5:洗车 6:饮用水 7:厕所 8:快餐 9:自动售货机 10:雨棚)
     */
    @ApiModelProperty(name = "serviceFacilities", value = "站点服务设施(1:免费wifi 2:空调休息室 3:按摩室 4:便利店 5:洗车 6:饮用水 7:厕所 8:快餐 9:自动售货机 10:雨棚)")
    private String serviceFacilities;
    /**
     * 周边基础设施(1:公厕 2:近学校 3:进地铁站 4:进机场 5:近商场 6:近高速 7:近火车站 8:近汽车站)
     */
    @ApiModelProperty(name = "basicFacilities", value = "周边基础设施(1:公厕 2:近学校 3:进地铁站 4:进机场 5:近商场 6:近高速 7:近火车站 8:近汽车站)")
    private String basicFacilities;
    /**
     * 电站公告说明
     */
    @ApiModelProperty(name = "notice", value = "电站公告说明")
    private String notice;
    /**
     * 客服电话
     */
    @ApiModelProperty(name = "servicePhone", value = "客服电话")
    private String servicePhone;
    /**
     * 营业时间(1:全天开放 2:限时开放)
     */
    @ApiModelProperty(name = "businessTimeMode", value = "营业时间(1:全天开放 2:限时开放)")
    private Integer businessTimeMode;
    /**
     * 营业时间(多个时间段，逗号隔开)
     */
    @ApiModelProperty(name = "businessTime", value = "(多个时间段，逗号隔开)")
    private String businessTime;
   /* *//**
     * 空闲终端数量
     *//*
    @ApiModelProperty(name = "freeCount", value = "空闲终端数量")
    private Integer freeCount;
    *//**
     * 充电终端数量
     *//*
    @ApiModelProperty(name = "chargingCount", value = "充电终端数量")
    private Integer chargingCount;
    *//**
     * 故障终端数量
     *//*
    @ApiModelProperty(name = "faultCount", value = "故障终端数量")
    private Integer faultCount;
    *//**
     * 离线终端数量
     *//*
    @ApiModelProperty(name = "offlineCount", value = "离线终端数量")
    private Integer offlineCount;
*/
    /**
     * 停车收费说明
     */
    @ApiModelProperty(name = "chargeTemplateId", value = "充电模板id")
    private Long chargeTemplateId;

    /**
     * 停车收费说明
     */
    @ApiModelProperty(name = "instruction", value = "停车收费说明")
    private String instruction;

    /**
     * 停车收费说明
     */
    @ApiModelProperty(name = "maxSocLimitSet", value = "soc限制配置")
    private Integer maxSocLimitSet;

    /**
     * 停车收费说明
     */
    @ApiModelProperty(name = "maxSocLimit", value = "soc限制")
    private String maxSocLimit;

    @ApiModelProperty(name = "refuseOweUser", value = "拒绝欠费用户0关1开")
    private String refuseOweUser;
    @ApiModelProperty(name = "stakeTypeCount", value = "电桩类型统计")
    private String stakeTypeCount;
    @ApiModelProperty(name = "stationNo", value = "电站编号")
    private String stationNo;

    @ApiModelProperty(name = "orgType", value = "机构类型 1:单位；2：企业；3：个体户；4：个人；5：其他")
    private Integer orgType;

    @ApiModelProperty(name = "verifyState", value = "确认状态（0：未确认，1：已确认）")
    private String verifyState;

    @ApiModelProperty(name = "publishType", value = "发布类型（1：统一平台，2：客户专用）")
    private String publishType;

    @ApiModelProperty(name = "collectFeeModel", value = "收费模式（1：平台代收，定期结算，2：客户直收，自动分层, 3:免费模式）")
    private String collectFeeModel;

    @ApiModelProperty(name = "invoiceModel", value = "开票模式（1：平台开票，2：客户开票）")
    private String invoiceModel;
}
