using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Abp.Domain.Entities;
using Abp.Domain.Entities.Auditing;
using YGNT.QuestionLibrary.Core.Models;

namespace YGNT.QuestionLibrary.Core.Papers
{
    /// <summary>
    /// 试卷
    /// </summary>
    public class Paper : Entity, IFullAudited
    {
        /// <summary>
        /// 试卷名称
        /// </summary>
        [Required]
        public string Name { get; set; }

        /// <summary>
        /// 考试时间(时间戳,毫秒)
        /// </summary>
        [Required]
        public long ExamTime { get; set; }

        /// <summary>
        /// 试卷总分
        /// </summary>
        public float TotalScore { get; set; }

        /// <summary>
        /// 合格分数
        /// </summary>
        public float PassingScore { get; set; }

        /// <summary>
        /// 试卷包含学科
        /// </summary>
        public List<PaperDiscipline> PaperDisciplines { get; set; }

        /// <summary>
        /// 试卷题目
        /// </summary>
        public List<PaperQuestion> PaperQuestions { get; set; }

        /// <summary>
        /// 试卷说明
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public Status Status { get; set; }


        public DateTime CreationTime { get; set; }


        public long? CreatorUserId { get; set; }


        public DateTime? LastModificationTime { get; set; }


        public long? LastModifierUserId { get; set; }


        public bool IsDeleted { get; set; }


        public DateTime? DeletionTime { get; set; }


        public long? DeleterUserId { get; set; }
    }
}