using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace IRaCIS.Core.Domain.Models
{
    [Table("SCPPatient")]
    public class SCPPatient : Entity, IAuditUpdate, IAuditAdd
    {
        public List<SCPStudy> SCPStudyList { get; set; }

        public string PatientIdStr { get; set; } = string.Empty;
        public string PatientName { get; set; } = string.Empty;
        public string PatientAge { get; set; } = string.Empty;
        public string PatientSex { get; set; } = string.Empty;
        public string PatientBirthDate { get; set; } = string.Empty;
        
        public Guid UpdateUserId { get; set; }
        public DateTime UpdateTime { get; set; } = DateTime.Now;
        public Guid CreateUserId { get; set; }
        public DateTime CreateTime { get; set; } = DateTime.Now;


        public DateTime? EarliestStudyTime { get; set; }

        public DateTime? LatestStudyTime { get; set; }

        public DateTime LatestPushTime { get; set; }


        public Guid? SubjectId { get; set; }
        public Guid TrialId { get; set; }
        public Guid TrialSiteId { get; set; }


        [JsonIgnore]
        public Subject Subject { get; set; }
        [JsonIgnore]
        public Trial Trial { get; set; }
        [JsonIgnore]
        public TrialSite TrialSite { get; set; }

    }
}