package com.navinfo.outdoor.room;

import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.PrimaryKey;
import androidx.room.TypeConverters;

import com.navinfo.outdoor.bean.Info;
import com.navinfo.outdoor.util.PhotoInfoConverter;
import com.navinfo.outdoor.util.StringTypeConverter;

import java.io.Serializable;
import java.util.List;

import static androidx.room.ForeignKey.CASCADE;

/**
 * 充电桩的表结构
 * PoiEntity实体类的id和ChargingPileEntity实体类的pileId相关联
 *  注解中包含Delete = CASCADE， 你可以告诉SQLite，如果相应的PoiEntity实例被删除，那么删除这个PoiEntity下的所有ChargingPileEntity。
 */
@Entity(tableName = "pile")
public class ChargingPileEntity implements Serializable {
    @PrimaryKey(autoGenerate = true) // 设置主键，并且自动生长
    private long pileId;
    private String name;//名称
    private String p;//经纬度 geo加密
    private int exist;//是否存在   0不存在1存在
    private int cp_floor;//充电桩地面层  地面层是1 ，地上二层为2，向上依次加1，地下一层为-1，向下依次减1.默认为1
    private int sign_exist;//设备标牌是否存在 0不存在1存在
    private int cp_availableState;//可以状态 0（可以使用（有电），默认），1(不可使用（没电）)，2(维修中)，3（建设中）4（规划中）
    private String cp_openType;// 1.对所有车辆开放 2.对环卫车开放 3.对公交和开放 4.对出租车开放 5.对特种兵车辆开放
    private String memo;//备注  默认为空
    @TypeConverters(StringTypeConverter.class)
    private List<String> photos;//照片组
    private String fid;//对应充电站id
    private int taskStatus;//任务状态 0.未领取 1.已领取，2.未保存(保存到本地但未提交成功),3.已保存(保存到本地提交成功)，4已上传（结束采集）
    private long taskId; // 充电桩的taskId，保存到服务时需要将此字段作为参数上传，自上报数据taskId为0
    private long bodyId; // 记录当前数据的bodyId，当保存到服务后，服务会返回该字段的值

    public String getCp_openType() {
        return cp_openType;
    }

    public void setCp_openType(String cp_openType) {
        this.cp_openType = cp_openType;
    }

    public long getPileId() {
        return pileId;
    }

    public void setPileId(long pileId) {
        this.pileId = pileId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getP() {
        return p;
    }

    public void setP(String p) {
        this.p = p;
    }

    public int getExist() {
        return exist;
    }

    public void setExist(int exist) {
        this.exist = exist;
    }

    public int getCp_floor() {
        return cp_floor;
    }

    public void setCp_floor(int cp_floor) {
        this.cp_floor = cp_floor;
    }

    public int getSign_exist() {
        return sign_exist;
    }

    public void setSign_exist(int sign_exist) {
        this.sign_exist = sign_exist;
    }

    public int getCp_availableState() {
        return cp_availableState;
    }

    public void setCp_availableState(int cp_availableState) {
        this.cp_availableState = cp_availableState;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public List<String> getPhotos() {
        return photos;
    }

    public void setPhotos(List<String> photos) {
        this.photos = photos;
    }

    public String getFid() {
        return fid;
    }

    public void setFid(String fid) {
        this.fid = fid;
    }

    public int getTaskStatus() {
        return taskStatus;
    }

    public void setTaskStatus(int taskStatus) {
        this.taskStatus = taskStatus;
    }

    public long getTaskId() {
        return taskId;
    }

    public void setTaskId(long taskId) {
        this.taskId = taskId;
    }

    public long getBodyId() {
        return bodyId;
    }

    public void setBodyId(long bodyId) {
        this.bodyId = bodyId;
    }
}
