using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Domain.Share;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IRaCIS.Core.Domain.Models
{
    public class ReadModuleView: Entity
    {
        /// <summary>
        /// Id(阅片期Id 或者 访视ID)
        /// </summary>
        public new Guid Id { get; set; }


        /// <summary>
        /// 项目ID
        /// </summary>
        public Guid TrialId { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
		/// 受试者ID
		/// </summary>
		public Guid SubjectId { get; set; }

        /// <summary>
        /// 模块类型
        /// </summary>
        public ModuleTypeEnum ModuleType { get; set; }

        /// <summary>
        /// 是否加急
        /// </summary>
        public bool? IsUrgent { get; set; }

        /// <summary>
        /// 访视ID
        /// </summary>
        public Guid SubjectVisitId { get; set; }


        /// <summary>
        /// 访视名称
        /// </summary>
        public string SubjectVisitName { get; set; }


        /// <summary>
        /// 截止访视
        /// </summary>
        public Guid? CutOffVisitId { get; set; }


        /// <summary>
        /// 截止访视名称
        /// </summary>
        public string? CutOffVisitName { get; set; }

        /// <summary>
        /// 对应阅片期
        /// </summary>
        public Guid? ReadModuleId { get; set; }

        /// <summary>
        /// 对应Name
        /// </summary>
        public string? ReadModuleName { get; set; }

      

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 受试者Code
        /// </summary>
        public string SubjectCode { get; set; }

        /// <summary>
        /// 中心Id
        /// </summary>
        public string SiteCode { get; set; }

        /// <summary>
        /// 项目中心Id
        /// </summary>
        public string TrialSiteCode { get; set; }

        /// <summary>
        /// 是否为末次访视
        /// </summary>
        public bool IsFinalVisit { get; set; } = false;

        /// <summary>
        /// 上一访视
        /// </summary>
        public Guid? OutPlanPreviousVisitId { get; set; }

        /// <summary>
        /// 上一访视名称
        /// </summary>
        public string OutPlanPreviousVisitName { get; set; }

        /// <summary>
        /// 中心ID
        /// </summary>
        public Guid SiteId { get; set; }

        /// <summary>
        /// 是否为访视
        /// </summary>
        public bool IsVisit { get; set; }

        /// <summary>
        /// 访视Num
        /// </summary>
        public decimal? VisitNum { get; set; }

        /// <summary>
        /// 是否为PD进展
        /// </summary>
        public PDStateEnum PDState { get; set; } = PDStateEnum.None;

        /// <summary>
        /// 入组确认评估
        /// </summary>
        public bool IsEnrollmentConfirm { get; set; } = false;


        /// <summary>
        /// 阅片状态
        /// </summary>
        public ReadingStatusEnum ReadingStatus { get; set; }

        /// <summary>
        /// 是否是基线
        /// </summary>
        public bool IsBaseLine { get; set; } = false;
    }
}