using ProtoBuf;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using TEAMModelOS.SDK.Context.Attributes.Azure;
using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
using TEAMModelOS.Service.Models.Core;
using TEAMModelOS.Service.Models.Syllabus;
namespace TEAMModelOS.Service.Models.Courses
{
///
/// 课程
///
[CosmosDB(RU = 400, Name = "Course")]
[ProtoContract]
public class Course : ID
{
///
/// 学校编码 如果是教师私人知识点 则为 personal(写死) 否则为学校编码
///
[Required(ErrorMessage = "{0} 必须填写")]
[PartitionKey]
[ProtoMember(1)]
public string scopeCode { get; set; }
//[Required(ErrorMessage = "{0} 必须填写")]
//public string TEAMModelId { get; set; }
//public string schoolCode { get; set; }
///
/// 基础信息
///
[ProtoMember(2)]
public BaseInfo baseInfo { get; set; }
/////
///// personal:私有 school:校本
/////
//[Required(ErrorMessage = "{0} 必须填写")]
//public string scope { get; set; }
///
/// 协同教师
///
[ProtoMember(3)]
public List assistTeacher { get; set; }
///
/// 上课时间表
///
[ProtoMember(4)]
public List courseTime { get; set; }
///
/// 课程“教室” Classroom
///
[ProtoMember(5)]
public List classroom { get; set; }
///
/// 关联课纲 SyllabusNode
///
[ProtoMember(6)]
public List syllabus { get; set; }
///
/// id
///
[Required(ErrorMessage = "{0} 必须填写")]
[ProtoMember(7)]
public string id { get; set; }
}
///
/// 基础信息
///
[ProtoContract]
public class BaseInfo
{
///
/// 课程编码
///
[ProtoMember(1)]
[Required(ErrorMessage = "{0} 必须填写")]
public string courseCode { get; set; }//'T968475'
///
/// 课程名称
///
[ProtoMember(2)]
[Required(ErrorMessage = "{0} 必须填写")]
public string courseName { get; set; }// '一次函数极其图像'
///
/// 学段编码
///
[ProtoMember(3)]
[Required(ErrorMessage = "{0} 必须填写")]
public string periodCode { get; set; }
///
/// 年级编码
///
[ProtoMember(4)]
[Required(ErrorMessage = "{0} 必须填写")]
public string gradeCode { get; set; }
///
/// 学科编码
///
[ProtoMember(5)]
[Required(ErrorMessage = "{0} 必须填写")]
public string subjectCode { get; set; }
///
/// 课程公告
///
[ProtoMember(6)]
[Required(ErrorMessage = "{0} 必须填写")]
public string notice { get; set; }//
}
///
/// 上课时间表
///
[ProtoContract]
public class CourseTime
{
///
/// 上课频率 每日、每周、每月、临时课程
///
[ProtoMember(1)]
public string frequencyCode { get; set; }
///
/// 课程开始时间
///
[ProtoMember(2)]
public string beginTime { get; set; }
///
/// 课程结束时间
///
[ProtoMember(3)]
public string endTime { get; set; }
///
/// 上课班级/教室
///
[ProtoMember(4)]
public string classroomCode { get; set; } // Classroom
///
/// 临时课程
///
[ProtoMember(5)]
public string frequencyName { get; set; }
///
/// 每月课程
///
//public string month { get; set; }
///
/// 每周课程
///
//public string weekly { get; set; }
}
}