package com.cooleshow.teacher.bean;

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

public class EarningStackedLineBean implements Serializable {

    /**
     * color : ["#14928A"]
     * title : {"show":false}
     * tooltip : {"trigger":"axis"}
     * legend : {"show":false}
     * grid : {"left":"3%","right":"3%","bottom":"3%","containLabel":true}
     * toolbox : {"feature":{"saveAsImage":{}}}
     * xAxis : {"type":"category","boundaryGap":false,"data":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"axisLine":{"lineStyle":{"color":"#8C8C8C"}}}
     * yAxis : {"type":"value","splitLine":{"lineStyle":{"color":["#E2E2E2"]},"axisLine":{"lineStyle":{"color":"#8C8C8C"}}}}
     * series : [{"symbol":"none","name":"月度","type":"line","lineStyle":{"width":1},"emphasis":{"lineStyle":{"width":1}},"data":[120,132,101,134,90,230,210,210,210,210,210,210]}]
     * dataZoom : [{"type":"slider","show":true,"filterMode":"filter","start":0,"end":50,"bottom":0}]
     */

    private TitleBean title = new TitleBean();
    private TooltipBean tooltip = new TooltipBean();
    private LegendBean legend = new LegendBean();
    private GridBean grid = new GridBean();
    private ToolboxBean toolbox = new ToolboxBean();
    private XAxisBean xAxis;
    private YAxisBean yAxis = new YAxisBean();
    private List<String> color = Arrays.asList("#01C1B5", "#5B8FF9", "#FFD02C", "#F97215", "#F85043");
    private List<SeriesBean> series;
    private List<DataZoomBean> dataZoom = Arrays.asList(new DataZoomBean());

    public List<String> getColor() {
        return color;
    }

    public void setColor(List<String> color) {
        this.color = color;
    }

    public static class TitleBean implements Serializable {
        /**
         * show : false
         */

        private boolean show = false;
    }


    public static class TooltipBean implements Serializable {
        /**
         * trigger : axis
         */

        private String trigger = "axis";
    }


    public static class LegendBean implements Serializable {
        /**
         * show : false
         */

        private boolean show = false;
    }


    public static class GridBean implements Serializable {
        /**
         * left : 3%
         * right : 3%
         * bottom : 3%
         * containLabel : true
         */

        private String left = "3%";
        private String right = "5%";
        private String bottom = "3%";
        private boolean containLabel = true;
    }


    public static class ToolboxBean implements Serializable {
        /**
         * feature : {"saveAsImage":{}}
         */

        private FeatureBean feature = new FeatureBean();


        public static class FeatureBean implements Serializable {
            /**
             * saveAsImage : {}
             */

            private SaveAsImageBean saveAsImage = new SaveAsImageBean();


            public static class SaveAsImageBean implements Serializable {
                private boolean show = false;
            }
        }
    }

    public XAxisBean getxAxis() {
        return xAxis;
    }

    public void setxAxis(XAxisBean xAxis) {
        this.xAxis = xAxis;
    }

    public List<SeriesBean> getSeries() {
        return series;
    }

    public void setSeries(List<SeriesBean> series) {
        this.series = series;
    }

    public List<DataZoomBean> getDataZoom() {
        return dataZoom;
    }

    public void setDataZoom(List<DataZoomBean> dataZoom) {
        this.dataZoom = dataZoom;
    }

    public static class XAxisBean implements Serializable {
        /**
         * type : category
         * boundaryGap : false
         * data : ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]
         * axisLine : {"lineStyle":{"color":"#8C8C8C"}}
         */

        private String type = "category";
        private boolean boundaryGap = false;
        private AxisLineBean axisLine = new AxisLineBean();
        private List<String> data;

        public List<String> getData() {
            return data;
        }

        public void setData(List<String> data) {
            this.data = data;
        }

        public static class AxisLineBean implements Serializable {
            /**
             * lineStyle : {"color":"#8C8C8C"}
             */

            private LineStyleBean lineStyle = new LineStyleBean();


            public static class LineStyleBean implements Serializable {
                /**
                 * color : #8C8C8C
                 */

                private String color = "#8C8C8C";
            }
        }
    }


    public static class YAxisBean implements Serializable {
        /**
         * type : value
         * splitLine : {"lineStyle":{"color":["#E2E2E2"]},"axisLine":{"lineStyle":{"color":"#8C8C8C"}}}
         */

        private String type = "value";
        private SplitLineBean splitLine = new SplitLineBean();


        public static class SplitLineBean implements Serializable {
            /**
             * lineStyle : {"color":["#E2E2E2"]}
             * axisLine : {"lineStyle":{"color":"#8C8C8C"}}
             */

            private LineStyleBeanX lineStyle = new LineStyleBeanX();
            private AxisLineBeanX axisLine = new AxisLineBeanX();


            public static class LineStyleBeanX implements Serializable {
                private List<String> color = Arrays.asList("#E2E2E2");
            }


            public static class AxisLineBeanX implements Serializable {
                /**
                 * lineStyle : {"color":"#8C8C8C"}
                 */

                private LineStyleBeanXX lineStyle = new LineStyleBeanXX();


                public static class LineStyleBeanXX implements Serializable {
                    /**
                     * color : #8C8C8C
                     */

                    private String color = "#8C8C8C";
                }
            }
        }
    }


    public static class SeriesBean implements Serializable {
        /**
         * symbol : none
         * name : 月度
         * type : line
         * lineStyle : {"width":1}
         * emphasis : {"lineStyle":{"width":1}}
         * data : [120,132,101,134,90,230,210,210,210,210,210,210]
         */

        private String symbol = "circle";
        private String name;


        private String type = "line";
        private LineStyleBeanXXX lineStyle = new LineStyleBeanXXX();
        private EmphasisBean emphasis = new EmphasisBean();
        private List<Double> data;

        public String getName() {
            return name;
        }

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

        public List<Double> getData() {
            return data;
        }

        public void setData(List<Double> data) {
            this.data = data;
        }

        public static class LineStyleBeanXXX implements Serializable {
            /**
             * width : 1
             */

            private int width = 1;
        }


        public static class EmphasisBean implements Serializable {
            /**
             * lineStyle : {"width":1}
             */

            private LineStyleBeanXXXX lineStyle = new LineStyleBeanXXXX();


            public static class LineStyleBeanXXXX implements Serializable {
                /**
                 * width : 1
                 */

                private int width = 1;
            }
        }
    }


    public static class DataZoomBean implements Serializable {
        /**
         * type : slider
         * show : true
         * filterMode : filter
         * start : 0
         * end : 50
         * bottom : 0
         */

        private String type = "inside";
        private int throttle = 50;

        public int getThrottle() {
            return throttle;
        }

        public void setThrottle(int throttle) {
            this.throttle = throttle;
        }
    }
}
