package com.sybotan.android.demo.entitiies

import android.os.Parcelable
import com.sybotan.android.demo.tree.TreeNodeId
import com.sybotan.android.demo.tree.TreeNodeLabel
import com.sybotan.android.demo.tree.TreeNodePid
import kotlinx.android.parcel.Parcelize

@Parcelize
data class DeviceType(
    val major: String,       // 专业编码
    val majorName: String,   // 专业名字
    val sys: String,         // 系统编码
    val sysName: String,     // 系统名字
    val code: String,        // 设备编码
    val name: String         // 设备名字
):Parcelable

data class Device2(
    @TreeNodeId
    val id: String,
    @TreeNodePid
    var pid: String,            // 父类id

    val code: String,           // 唯一标识
    @TreeNodeLabel
    val name: String,

    val majorCode: String,      // 专业编码
    val systemCode: String,     // 系统编码

    val parentCode: String,     // 父编码
    val objType: String,        // 对象类型
    val children: List<DeviceType>,

    val type: String,
    val aliasCode: String,
    val aliasName: String,
    val createTime: String,
    val groupCode: String,
    val lastUpdate: String,
    val projectId: String,
    val statistics: Statistics
)


data class MajorEntity(
    val aliasCode: String,
    @TreeNodeLabel
    val aliasName: String,
    val children: List<SystemEntity>,
    @TreeNodeId
    val code: String,
    val groupCode: String,
    val name: String,
    val projectId: String
)


data class SystemEntity(
    val aliasCode: String,
    val aliasName: String,
    val children: List<DeviceEntity>,
    @TreeNodeId
    val code: String,
    val createTime: String,
    val groupCode: String,
    val id: String,
    val lastUpdate: String,
    @TreeNodePid
    val majorCode: String,
    @TreeNodeLabel
    val name: String,
    val objType: String,
    val parentCode: String,
    val projectId: String,
    val statistics: StatisticsX,
    val type: String
)

data class DeviceEntity(
    val aliasCode: String,
    val aliasName: String,
    @TreeNodeId
    val code: String,
    val createTime: String,
    val groupCode: String,
    val id: String,
    val lastUpdate: String,
    val majorCode: String,
    @TreeNodeLabel
    val name: String,
    val objType: String,
    val parentCode: String,
    val projectId: String,
    val statistics: Statistics,
    @TreeNodePid
    val systemCode: String,
    val type: String
)

class StatisticsX(
)

class Statistics(
)