package com.cr.models

import com.cr.common.ClassManager
import com.cr.common.JSONManager
import org.json.JSONArray
import org.json.JSONObject

/**
 * 操作系统：MAC系统
 * 创建者：王成
 * 创建日期：2023/8/23 17:05
 * 描述：选择类型模型
 */
class SelModel @JvmOverloads constructor(code:String,name:String) : iNetDataModel<SelModel> {
    var code: String? = null // define: 2023/8/23 代码
    var name: String? = null // define: 2023/8/23 名称

    companion object:iJSONModel<SelModel>{
        /**
         * JSON字符串转换为模型
         * @param json String
         * @return SelModel?
         */
        override fun toModel(json: String): SelModel? {
            var obj = JSONObject(json)
            var model = SelModel()
            model.code = JSONManager.getStringValue(obj,"code")
            model.name = JSONManager.getStringValue(obj,"name")
            return model
        }


        /**
         * 来源于JSON数组
         * @param array JSONArray JSON数组
         * @return List<SelModel> 数据集
         */
        fun fromJSONArray(array:JSONArray):MutableList<SelModel>{
            var resList = mutableListOf<SelModel>()
            for (i in 0 until array.length()){
                var model = SelModel.toModel(array.optString(i))
                resList.add(model!!)
            }
            return resList
        }
    }

    /**
     * 初始化
     */
    init {
        this.code = code
        this.name = name
    }

    /**
     * 无参数初始化
     * @constructor
     */
    constructor() : this("","")

    /**
     * 转换为JSON字符串
     * @return String JSON字符串
     */
    override fun toJSON(): String {
        var jsonObj: JSONObject = ClassManager.fieldsToJSONObject(this)
        return jsonObj.toString()
    }

}