using System;
using System.Collections.Generic;
using System.Text;

namespace TEAMModelOS.Models.PowerPoint
{
    public   class Chart : Item
    {
        public  List<CommonChart> charts { get; set; }
        public List<Paragraph> title { get; set; }
    }

    public abstract class CommonChart {
        /// <summary>
        ///  bar col line pie area scatter radar plotAreaRegion stock surface
        /// </summary>
        public string chartType { get; set; }
        public List<Dictionary<string, object>> datas {get;set;}
    }

    /// <summary>
    /// surface3DChart
    ///     三维曲面图  wireframe=0
    ///     三维线框曲面图 wireframe=1
    ///  surfaceChart
    ///     曲面图  wireframe=0
    ///     曲面图-俯视框架图  wireframe=1
    /// </summary>
    public class SurfaceChart : CommonChart
    {
        public string surfaceType { get; set; }
        public bool is3D { get; set; }
    }
    /// <summary>
    /// stockChart
    ///     股价图 
    ///         盘高-盘低-收盘
    ///         开盘-盘高-盘低-收盘
    ///         成交量-盘高-盘低-收盘
    ///         成交量-开盘-盘高-盘低-收盘
    /// </summary>
    public class StockChart : CommonChart
    {
        public string stockType { get; set; }
    }
    /// <summary>
    /// plotAreaRegion
    ///     旭日图 sunburst  
    ///     树状图 treemap
    ///     直方图 排列图 clusteredColumn
    ///     箱型图 boxWhisker
    ///     瀑布图 waterfall
    /// </summary>
    public class PlotAreaChart : CommonChart
    {
        public string plotAreaType { get;set;}
    }
    /// <summary>
    ///  type radar
    ///  radarChart  
    ///     雷达图 
    ///     带数据标记的雷达图c:radarStyle val="marker"/>
    ///     填充雷达图 c:radarStyle val="filled"/>
    /// </summary>
    public class RadarChart : CommonChart
    {
        public string radarType { get; set; }
    }
    /// <summary>
    /// type scatter
    ///  scatterChart
    ///     散点图 c:scatterStyle val="lineMarker"/>
    ///     带直线的散点图 c:scatterStyle val="lineMarker"/>
    ///     带直线和数据标记的散点图c:scatterStyle val="lineMarker"/>
    ///     
    ///     带平滑线和数据标记的散点图c:scatterStyle val="smoothMarker"/>
    ///     带平滑线的散点图c:scatterStyle val="smoothMarker"/>
    ///  bubbleChart 气泡图   三维气泡图
    /// </summary>
    public class ScatterChart : CommonChart
    {
        public string scatterType { get; set; }
       // public bool Is3D { get; set; }
    }
    /// <summary>
    /// type area
    /// areaChart
    ///     面积图 standard
    ///     堆积面积图 stacked
    ///     百分比堆积面积图 percentStacked
    /// area3DChart
    ///     三维面积图 standard
    ///     三维堆积面积图 stacked
    ///     三维百分比堆积面积图 percentStacked
    /// </summary>
    public class AreaChart : CommonChart
    {
        public string areaType { get; set; }
        public bool is3D { get; set; }
    }
    /// <summary>
    /// type bar  条形图c:barDir val="bar"/>   
    ///  barChart
    ///     簇状条形图 clustered
    ///     堆积条形图 stacked
    ///     百分比堆积条形图 percentStacked
    ///  bar3DChart
    ///     三维堆积条形图 stacked
    ///     三维簇状条形图 clustered
    ///     三维百分比堆积条形图 percentStacked
    /// </summary>
    public class BarChart : CommonChart
    {
        public string barType { get; set; }
        public bool is3D { get; set; }
    }
    /// <summary>
    ///  type bar  柱状图c:barDir val="col"/>
    ///  barChart
    ///     簇状柱形图 clustered
    ///     堆积柱形图 stacked
    ///     百分比堆积柱形图 percentStacked
    ///  bar3DChart
    ///     三维堆积柱形图 stacked
    ///     三维簇状柱形图 clustered
    ///     三维百分比堆积柱形图 percentStacked
    ///     三维柱形图 standard
    /// </summary>
    public class ColChart : CommonChart
    {
        public string colType { get; set; }
        public bool is3D { get; set; }
    }
    /// <summary>
    ///  type line   
    ///  lineChart
    ///  合并
    ///     折线图 standard
    ///     带数据标记的折线图 standard 
    ///  合并
    ///     堆积折线图 stacked
    ///     带标记的堆积折线图 stacked  c:layout>不为空
    ///  合并 
    ///     百分比堆积折线图 percentStacked
    ///     带数据标记的百分比堆积折线图 percentStacked
    ///  line3DChart
    ///     三维折线图 standard
    /// </summary>
    public class LineChart : CommonChart
    {
        public string lineType { get; set; }
        public bool is3D { get; set; }
    }
    
    /// <summary>
    ///   type pie
    ///  pieChart
    ///     饼图  不包含   
    ///  ofPieChart
    ///     子母饼图   包含 c:ofPieType val="pie"/> 且val为 pie
    ///     复合条饼图 包含 c:ofPieType val="bar"/> 且val为 bar
    ///  pie3DChart
    ///     三维饼图
    ///  doughnutChart
    ///     圆环饼图
    /// </summary>
    public class PieChart : CommonChart
    {
        public string pieType { get; set; }
        public bool is3D { get; set; }
    }

}
