using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

namespace TEAMModelOS.SDK.Models.Cosmos
{
    /// <summary>
    ///Teaching materials 教学材料 --- 知识点，知识块
    /// </summary>    
    public class Knowledge : CosmosEntity
    {
        public Knowledge() {
            points = new List<string>();
            blocks = new List<Block>();
            pk = "Knowledge";
        }
        [Required(ErrorMessage = "owner 必须设置")]
        public string owner { get; set; }
        [Required(ErrorMessage = "scope 必须设置")]
        public string scope { get; set; }
        /// <summary>
        /// 学段id
        /// </summary>
       [Required(ErrorMessage = "periodId 必须设置")]
        public string periodId { get; set; }
        /// <summary>
        /// 学科id
        /// </summary>
        [Required(ErrorMessage = "subjectId 必须设置")]
        public string subjectId { get; set; }
        /// <summary>
        /// 知识点
        /// </summary>
        public List<string> points { get; set; }
        /// <summary>
        /// 知识块
        /// </summary>
        public List<Block> blocks { get; set; }

    }

    public class Block { 
        public string name { get; set; }
        public List<string> points { get; set; }
    }
    /*
    {
        "id": "123",
        "code": "Knowledge-hbcn-subjectId",
        "periodId": "uuid",
        
        "points": [
            "一元一次方程","二元一次方程","一元二次方程","直线方程","三元一次方程","鸡兔同笼问题","微积分方程","函数有界性","函数单调性","函数奇偶性","函数周期性","函数连续性","函数凹凸性",
            "常函数","一次函数","二次函数","三次函数","四次函数","五次函数","幂函数","指数函数","对数函数","三角函数","反三角函数","常数函数",
            "正弦函数","余弦函数","正切函数","余切函数","正割函数","余割函数","正矢函数","余矢函数","半正矢函数","半余矢函数","外正割函数","外余割函数"
        ],
        "block":[
            {
                "name": "方程式" ,
                "points":["一元一次方程","二元一次方程","一元二次方程","直线方程","三元一次方程","鸡兔同笼问题","微积分方程"]
            },
            {
                "name": "函数的特性" ,
                "points": ["函数有界性","函数单调性","函数奇偶性","函数周期性","函数连续性","函数凹凸性"]
            },
            {
                "name": "多项式函数" ,
                "points": ["常函数","一次函数","二次函数","三次函数","四次函数","五次函数"]
            },
            {
                "name":  "基本初等函数" ,
                "points": ["幂函数","指数函数","对数函数","三角函数","反三角函数","常数函数"]
            },
            {
                "name": "三角函数" ,
                "points":["正弦函数","余弦函数","正切函数","余切函数","正割函数","余割函数","正矢函数","余矢函数","半正矢函数","半余矢函数","外正割函数","外余割函数"]
            }
        ]
    }
    */
}
