using IRaCIS.Core.Domain.Share;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace IRaCIS.Core.Domain.Models
{
    [Table("Enroll")]
    public partial class Enroll : Entity,IAuditUpdate,IAuditAdd
    {

        [JsonIgnore]
        [ForeignKey("TrialId")]
        public virtual Trial Trial { get; set; }
        [JsonIgnore]
        public virtual Doctor Doctor { get; set; }

        //public TrialPaymentPrice TrialPaymentPrice { get; set; }

        public Guid DoctorId { get; set; }
        public Guid TrialId { get; set; }
        public Guid AttachmentId { get; set; } = Guid.Empty;
        public EnrollStatus EnrollStatus { get; set; }

        public decimal? AdjustmentMultiple { get; set; }
        public DateTime? EnrollTime { get; set; }
        public DateTime? OutEnrollTime { get; set; }

        public string Memo { get; set; } = string.Empty;

        public int ReviewerReadingType { get; set; } = 0;
        
        public Guid UpdateUserId { get; set; }
        public DateTime UpdateTime { get; set; } = DateTime.Now;
        public Guid CreateUserId { get; set; }
        public DateTime CreateTime { get; set; }

        public int? Training { get; set; }

        public int? RefresherTraining { get; set; }

        public int? Timepoint { get; set; }

        public int? Timepoint48H { get; set; }

        public int? Timepoint24H { get; set; }

        public int? Adjudication { get; set; }

        public int? Adjudication48H { get; set; }

        public int? Adjudication24H { get; set; }

        public int? Global { get; set; }


        public int? Downtime { get; set; }



        /// <summary>
        /// �����˺�  ���뵽��Ŀ�к� ��ֵ
        /// </summary>
        public Guid? DoctorUserId { get; set; }
        [JsonIgnore]
        public User DoctorUser { get; set; }


        //public List<VisitTask> DoctorTrialVisitTaskList { get; set; } = new List<VisitTask>();




        [JsonIgnore]
        public List<EnrollReadingCategory> EnrollReadingCategoryList { get; set; }

    }
}