using System;
using System.ComponentModel.DataAnnotations;
using Abp.Application.Services.Dto;
using Abp.Domain.Entities;
using Abp.Domain.Entities.Auditing;
using YGNT.QuestionLibrary.Core.Tasks;

namespace YGNT.QuestionLibrary.Core.Papers
{
    /// <summary>
    /// 试卷生成结果
    /// </summary>
    public class PaperProduceResult : Entity<long>, ICreationAudited
    {
        /// <summary>
        /// 试卷id
        /// </summary>
        [Required]
        public int PaperId { get; set; }

        /// <summary>
        /// 任务id
        /// </summary>
        [Required]
        public long PaperProduceTaskId { get; set; }

        /// <summary>
        /// 试卷生成后的基础路径
        /// </summary>
        public string ProducePath { get; set; }

        /// <summary>
        /// 试卷文件id
        /// </summary>
        public Guid? FileId { get; set; }

        /// <summary>
        /// 试卷包含答案解析文件id
        /// </summary>
        public Guid? FullPaperFileId { get; set; }

        /// <summary>
        /// 试卷答案解析
        /// </summary>
        public Guid? AnswerFileId { get; set; }

        /// <summary>
        /// 答题卡
        /// </summary>
        public Guid? AnswerSheetFileId { get; set; }


        public DateTime CreationTime { get; set; }

        public long? CreatorUserId { get; set; }

        /// <summary>
        /// 试卷
        /// </summary>
        public Paper Paper { get; set; }

        /// <summary>
        /// 生成任务
        /// </summary>
        public PaperProduceTask PaperProduceTask { get; set; }
    }
}