using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace YBEE.EQM.Core;
///
/// 监测计划
///
[Comment("监测计划")]
public partial class ExamPlan : DEntityBase
{
///
/// 学段
///
[Comment("学段")]
[Required, Column(TypeName = "smallint")]
public EducationStage EducationStage { get; set; }
///
/// 学制
///
[Comment("学制")]
[Required]
public short EducationYears { get; set; }
///
/// 学期ID
///
[Comment("学期ID")]
[Required]
public short SemesterId { get; set; }
/////
///// 监测期间类型
/////
//[Comment("监测期间类型")]
//[Required, Column(TypeName = "smallint")]
//public ExamPeriodType ExamPeriodType { get; set; } = ExamPeriodType.NONE;
/////
///// 监测类型
/////
//[Comment("监测类型")]
//[Required, Column(TypeName = "smallint")]
//public ExamType ExamType { get; set; } = ExamType.NONE;
///
/// 序,同一学段、学期、监测类型、监测期间从1开始计数
///
[Comment("序,同一学段、学期、监测类型、监测期间从1开始计数")]
[Required]
public short Sequence { get; set; } = 1;
///
/// 名称
///
[Comment("名称")]
[Required, StringLength(100)]
public string Name { get; set; }
///
/// 全称
///
[Comment("全称")]
[Required, StringLength(200)]
public string FullName { get; set; }
///
/// 简称
///
[Comment("简称")]
[Required, StringLength(50)]
public string ShortName { get; set; }
///
/// 备注
///
[Comment("备注")]
[StringLength(200)]
public string Remark { get; set; } = "";
///
/// 监测配置
///
[Comment("监测配置")]
[Required, Column(TypeName = "json")]
public string Config { get; set; } = new { }.ToJson();
///
/// 状态
///
[Comment("状态")]
[Required]
public ExamStatus Status { get; set; } = ExamStatus.READY;
///
/// 开始时间
///
[Comment("开始时间")]
public DateTime? BeginTime { get; set; }
///
/// 结束时间
///
[Comment("结束时间")]
public DateTime? EndTime { get; set; }
///
/// 一对一引用(学期)
///
public virtual Semester Semester { get; set; }
///
/// 一对多引用(监测机构)
///
public ICollection ExamOrgs { get; } = new List();
///
/// 一对多引用(监测年级)
///
public ICollection ExamGrades { get; } = new List();
///
/// 一对多引用(监测上报类型)
///
public ICollection ExamDataReports { get; } = new List();
}