package com.jsowell.pile.domain;

import com.jsowell.common.annotation.Excel;
import com.jsowell.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 充电站信息对象 pile_station_info
 *
 * @author jsowell
 * @date 2022-08-30
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class PileStationInfo extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/**
	 * 站点id
	 */
	private Long id;

	/**
	 * 运营商id
	 */
	private Long merchantId;

	/**
	 * 站点名称
	 */
	@Excel(name = "站点名称")
	private String stationName;

	private String deptId;

	/**
	 * 二维码前缀
	 */
	private String qrcodePrefix;

	/**
	 * 是否独立报桩（0-否；1-是）
	 */
	@Excel(name = "是否独立报桩", readConverterExp = "0=-否；1-是")
	private String aloneApply;

	/**
	 * 国网电费账单户号
	 */
	@Excel(name = "国网电费账单户号")
	private String accountNumber;

	/**
	 * 容量，独立电表申请的功率保留小数点后4位
	 */
	@Excel(name = "容量")
	private BigDecimal capacity;

	/**
	 * 公共停车场库(0-否；1-是)
	 */
	@Excel(name = "公共停车场库(0-否；1-是)")
	private String publicParking;

	/**
	 * 停车场库编号
	 */
	@Excel(name = "停车场库编号")
	private String parkingNumber;

	/**
	 * 充电站国家代码
	 */
	@Excel(name = "充电站国家代码")
	private String countryCode;

	/**
	 * 充电站省市辖区编码
	 */
	@Excel(name = "充电站省市辖区编码")
	private String areaCode;

	/**
	 * 站点地址
	 */
	@Excel(name = "站点地址")
	private String address;

	/**
	 * 站点电话
	 */
	@Excel(name = "站点电话")
	private String stationTel;

	/**
	 * 服务电话,例如400电话
	 */
	@Excel(name = "服务电话,例如400电话")
	private String serviceTel;

	/**
	 * 站点状态【1：公共
	 * 50：个人
	 * 100：公交（专用）
	 * 101：环卫（专用）
	 * 102：物流（专用）
	 * 103：出租车（专用）
	 * 104：分时租赁（专用）
	 * 105：小区共享（专用）
	 * 106：单位（专用）
	 * 255：其他
	 * 】
	 */
	@Excel(name = "站点状态", readConverterExp = "专=用")
	private String stationType;

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

	/**
	 * 站点管理员名称
	 */
	@Excel(name = "站点管理员名称")
	private String stationAdminName;

	/**
	 * 车位数量(默认：0 未知)
	 */
	@Excel(name = "车位数量(默认：0 未知)")
	private String parkNums;

	/**
	 * 经度GCJ-02坐标系保留小数点后6位
	 */
	@Excel(name = "经度GCJ-02坐标系保留小数点后6位")
	private String stationLng;

	/**
	 * 纬度GCJ-02坐标系保留小数点后6位
	 */
	@Excel(name = "纬度GCJ-02坐标系保留小数点后6位")
	private String stationLat;

	/**
	 * 站点引导,用于引导车主找到充电车位
	 */
	@Excel(name = "站点引导,用于引导车主找到充电车位")
	private String siteGuide;

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

	/**
	 * 站点照片
	 */
	@Excel(name = "站点照片")
	private String pictures;

	/**
	 * 使用车型描述(描述该站点接受的车大小以及类型，如大巴、物流车、私家乘用车、出租车等 )
	 */
	@Excel(name = "使用车型描述(描述该站点接受的车大小以及类型，如大巴、物流车、私家乘用车、出租车等 )")
	private String matchCars;

	/**
	 * 车位楼层及数量描述
	 */
	@Excel(name = "车位楼层及数量描述")
	private String parkInfo;

	/**
	 * 停车场产权方
	 */
	@Excel(name = "停车场产权方")
	private String parkOwner;

	/**
	 * 停车场管理人（如：XX 物业）
	 */
	@Excel(name = "停车场管理人", readConverterExp = "如=：XX,物=业")
	private String parkManager;

	/**
	 * 是否全天开放
	 * 0：否
	 * 1：是
	 */
	@Excel(name = "是否全天开放")
	private String openAllDay;

	/**
	 * 营业时间描述
	 */
	@Excel(name = "营业时间描述")
	private String businessHours;

	/**
	 * 是否停车免费
	 * 0：否
	 * 1：是
	 */
	@Excel(name = "是否停车免费")
	private String parkFree;

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

	/**
	 * 是否支持预约 (0为不支持预约、1为支持预约。不填默认为0)
	 */
	@Excel(name = "是否支持预约 (0为不支持预约、1为支持预约。不填默认为0)")
	private String supportOrder;

	/**
	 * 是否对外开放 （0-否；1-是）
	 */
	private String publicFlag;

	/**
	 * 是否营业中（0-否；1-是）
	 */
	private String openFlag;

	/**
	 * 是否靠近卫生间 (0-无；1-有)
	 */
	@Excel(name = "是否靠近卫生间 (0-无；1-有)")
	private String toiletFlag;

	/**
	 * 是否靠近便利店(0-无；1-有)
	 */
	@Excel(name = "是否靠近便利店(0-无；1-有)")
	private String storeFlag;

	/**
	 * 是否靠近餐厅(0-无；1-有)
	 */
	@Excel(name = "是否靠近餐厅(0-无；1-有)")
	private String restaurantFlag;

	/**
	 * 是否靠近休息室(0-无；1-有)
	 */
	@Excel(name = "是否靠近休息室(0-无；1-有)")
	private String loungeFlag;

	/**
	 * 是否有雨棚(0-无；1-有)
	 */
	@Excel(name = "是否有雨棚(0-无；1-有)")
	private String canopyFlag;

	/**
	 * 是否有小票机 (0-无；1-有)
	 */
	@Excel(name = "是否有小票机 (0-无；1-有)")
	private String printerFlag;

	/**
	 * 是否有道闸(0-无；1-有)
	 */
	@Excel(name = "是否有道闸(0-无；1-有)")
	private String barrierFlag;

	/**
	 * 是否有地锁(0-无；1-有)
	 */
	@Excel(name = "是否有地锁(0-无；1-有)")
	private String parkingLockFlag;

	/**
	 * 删除标识（0-正常；1-删除）
	 */
	private String delFlag;

	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
				.append("id", id)
				.append("merchantId", merchantId)
				.append("stationName", stationName)
				.append("aloneApply", aloneApply)
				.append("accountNumber", accountNumber)
				.append("capacity", capacity)
				.append("publicParking", publicParking)
				.append("parkingNumber", parkingNumber)
				.append("countryCode", countryCode)
				.append("areaCode", areaCode)
				.append("address", address)
				.append("stationTel", stationTel)
				.append("serviceTel", serviceTel)
				.append("stationType", stationType)
				.append("stationStatus", stationStatus)
				.append("stationAdminName", stationAdminName)
				.append("parkNums", parkNums)
				.append("stationLng", stationLng)
				.append("stationLat", stationLat)
				.append("siteGuide", siteGuide)
				.append("construction", construction)
				.append("pictures", pictures)
				.append("matchCars", matchCars)
				.append("parkInfo", parkInfo)
				.append("parkOwner", parkOwner)
				.append("parkManager", parkManager)
				.append("openAllDay", openAllDay)
				.append("businessHours", businessHours)
				.append("parkFree", parkFree)
				.append("payment", payment)
				.append("supportOrder", supportOrder)
				.append("publicFlag", publicFlag)
				.append("openFlag", openFlag)
				.append("toiletFlag", toiletFlag)
				.append("storeFlag", storeFlag)
				.append("restaurantFlag", restaurantFlag)
				.append("loungeFlag", loungeFlag)
				.append("canopyFlag", canopyFlag)
				.append("printerFlag", printerFlag)
				.append("barrierFlag", barrierFlag)
				.append("parkingLockFlag", parkingLockFlag)
				.append("delFlag", delFlag)
				.toString();
	}
}
