package com.rnboat.framework.model;

import com.google.gson.Gson;

import java.util.HashMap;

public class AppConfig {

    public Scene[] getScene() {
        return scene;
    }

    public void setScene(Scene[] scene) {
        this.scene = scene;
    }


    public App getApp() {
        return app;
    }

    public void setApp(App app) {
        this.app = app;
    }

    private App app;
    private Scene[] scene;

    public class App {
        public String getName() {
            return name;
        }

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

        public String getPackagename() {
            return packagename;
        }

        public void setPackagename(String packagename) {
            this.packagename = packagename;
        }

        public boolean isDaemon() {
            return this.daemon;
        }

        public void setDaemon(boolean daemon) {
            this.daemon = daemon;
        }

        public boolean isFullscreen() {
            return fullscreen;
        }

        public void setFullscreen(boolean fullscreen) {
            this.fullscreen = fullscreen;
        }

        public int getSv() {
            return sv;
        }

        public void setSv(int sv) {
            this.sv = sv;
        }

        public int getEnv() {
            return env;
        }

        public void setEnv(int env) {
            this.env = env;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public int getVersionCode() {
            return versionCode;
        }

        public void setVersionCode(int versionCode) {
            this.versionCode = versionCode;
        }

        public String getVersionName() {
            return versionName;
        }

        public void setVersionName(String versionName) {
            this.versionName = versionName;
        }

        public String getUpdateContent() {
            return updateContent;
        }

        public void setUpdateContent(String updateContent) {
            this.updateContent = updateContent;
        }

        public boolean isForce() {
            return force;
        }

        public void setForce(boolean force) {
            this.force = force;
        }

        private String name;
        private String packagename;
        private boolean daemon = false;
        private boolean fullscreen = false;
        private int sv;
        private int env;
        private String url;
        private int versionCode;
        private String versionName;
        private String updateContent;
        private boolean force;
    }

    public class Scene {
        public String getSv_number() {
            return sv_number;
        }

        public void setSv_number(String sv_number) {
            this.sv_number = sv_number;
        }

        public String getLabel() {
            return label;
        }

        public void setLabel(String label) {
            this.label = label;
        }

        public BlobUrl getBlob_url() {
            return blob_url;
        }

        public void setBlob_url(BlobUrl blob_url) {
            this.blob_url = blob_url;
        }

        public String getAsseturl() {
            return asseturl;
        }

        public void setAsseturl(String asseturl) {
            this.asseturl = asseturl;
        }

        public String getKey() {
            return key;
        }

        public void setKey(String key) {
            this.key = key;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public String getInit_scene() {
            return init_scene;
        }

        public void setInit_scene(String init_scene) {
            this.init_scene = init_scene;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        private String sv_number;
        private String label;
        private BlobUrl blob_url;
        private String asseturl;
        private String key;
        private String desc;
        private String init_scene;
        private String type;
    }

    public class BlobUrl {
        public Android getAndroid() {
            return android;
        }

        public void setAndroid(Android android) {
            this.android = android;
        }

        private Android android;
    }

    public class Android {
        public String getHash() {
            return hash;
        }

        public void setHash(String hash) {
            this.hash = hash;
        }

        public String getSize() {
            return size;
        }

        public void setSize(String size) {
            this.size = size;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        private String hash;
        private String size;
        private String url;
    }

    public static AppConfig decodeParams(HashMap params) {
        Gson gson = new Gson();
        AppConfig appConfig = gson.fromJson(gson.toJson(params), AppConfig.class);
        return appConfig;
    }

}
