using IRaCIS.Core.Domain.Models;

namespace IRaCIS.Core.Application.Contracts
{
    public class HistoryVisitRSDTO
    {

        public Guid StudyId { get; set; }
        public string StudyCode { get; set; } = String.Empty;

        public decimal VisitNum { get; set; }

        public string VisitName { get; set; } = String.Empty;

        public string OverallResponse { get; set; } = String.Empty;

        public string TpCode { get; set; } = String.Empty;

        public GlobalRSSelectView GlobalRSSelect { get; set; } = new GlobalRSSelectView();

    }

    public class GlobalRSSelectView
    {
        public bool? Agree { get; set; }
        public string NewRS { get; set; } = String.Empty;
        public string Note { get; set; } = String.Empty;
    }

    public class HistoryGlobalRsDTO
    {

        public decimal VisitNum { get; set; }

        public string VisitName { get; set; } = String.Empty;

        public string OverallResponse { get; set; } = String.Empty;
    }

    public class PreviousGlobalReadsView
    {
        public string SubjectNote { get; set; } = String.Empty;

        public List<HistoryGlobalRsDTO> PreviousGlobalReadsList { get; set; } = new List<HistoryGlobalRsDTO>();
    }


    public class GlobalTaskReportCommand
    {
        public Guid GlobalId { get; set; }
        public string SubjectNote { get; set; } = String.Empty;
        public string SubjectCode { get; set; } = String.Empty;
        public Guid SubjectId { get; set; }

        public List<GlobalReportCommand> GlobalRSReportList { get; set; }=new List<GlobalReportCommand>();
    }

    public class GlobalReportCommand
    {
        public Guid GlobalId { get; set; }
        public string TpCode { get; set; } = String.Empty;
        public int VisitNum { get; set; }
        public bool? Agree { get; set; }
        public string NewRS { get; set; } = String.Empty;
        public string Note { get; set; } = String.Empty;

    }


    public class AdReportDTO
    {
        public WorkloadAD ADInfo { get; set; } = new WorkloadAD();
        public PreviousGlobalReadsView Global1 { get; set; } = new PreviousGlobalReadsView();
        public PreviousGlobalReadsView Global2 { get; set; } = new PreviousGlobalReadsView();

        public IEnumerable<HistoryVisitRSDTO> Global1VisitRS { get; set; }=new List<HistoryVisitRSDTO>();
        public IEnumerable<HistoryVisitRSDTO> Global2VisitRS { get; set; } = new List<HistoryVisitRSDTO>();

    }


    public class ADReportCommand
    {

        public Guid AdId { get; set; }
        public Guid SelectGlobalId { get; set; }
        public string ADNote { get; set; } = String.Empty;
    }


}