using System;
using System.ComponentModel.DataAnnotations.Schema;

namespace IRaCIS.Core.Domain.Models
{
    [Table("WorkloadTP")]
    public class WorkloadTP : Entity
    {
        public Guid TrialId { get; set; }
        public Guid SiteId { get; set; }
        public Guid SubjectId { get; set; }
        public Guid SubjectVisitId { get; set; }
        public Guid StudyId { get; set; }
        public string TimepointCode { get; set; }
        public Guid ReviewerId { get; set; }
        public int Status { get; set; }
        public DateTime UpdateTime { get; set; }
    }

    [Table("WorkloadGlobal")]
    public class WorkloadGlobal : Entity
    {
        public Guid SiteId { get; set; }
        public Guid VisitId { get; set; }
        public string VisitName { get; set; }


        // 项目Id，患者Id，num 共同决定 Global 关联的所有study，
        // 暂定设计成这样，后期如有需要，爱用中间表 关联。
        public Guid TrialId { get; set; }
        public Guid SubjectId { get; set; }
        public decimal VisitNum { get; set; }

        public string GlobalCode { get; set; }
        public Guid ReviewerId { get; set; }
        public int Status { get; set; }
        public DateTime UpdateTime { get; set; }
    }

    [Table("WorkloadAD")]
    public class WorkloadAD : Entity
    {
        public Guid TrialId { get; set; }
        public Guid SiteId { get; set; }
        public Guid SubjectId { get; set; }
        public string ADCode { get; set; }
        public Guid ReviewerId { get; set; }
        public int Status { get; set; }
        public DateTime UpdateTime { get; set; }
        public Guid Global1Id { get; set; }
        public Guid Global2Id { get; set; }

        public Guid? SelectGlobalId { get; set; }

        public string AdNote { get; set; }
    }

    [Table("WorkloadDetail")]
    public class WorkloadDetail : Entity
    {
        public Guid WorkloadId { get; set; }
        public string OptUserName { get; set; }
        public DateTime OptTime { get; set; } = DateTime.Now;
        public int Status { get; set; }
        public Guid ReviewerId { get; set; } = Guid.Empty;
    }
}
