namespace IRaCIS.Core.Domain.Models;

[Comment("项目 - 影像上传监控")]
[Table("StudyMonitor")]
public class StudyMonitor : BaseAddAuditEntity
{
    #region 导航属性
    [JsonIgnore]
    [ForeignKey("StudyId")]
    public DicomStudy DicomStudy { get; set; }
    [JsonIgnore]
    [ForeignKey("StudyId")]
    public NoneDicomStudy NoneDicomStudy { get; set; }
    [JsonIgnore]
    [ForeignKey("StudyId")]
    public TaskStudy TaskStudy { get; set; }
    [JsonIgnore]
    [ForeignKey("SubjectId")]
    public Subject Subject { get; set; }

    [JsonIgnore]
    [ForeignKey("SubjectVisitId")]
    public SubjectVisit SubjectVisit { get; set; }

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

    #endregion

    public DateTime? ArchiveFinishedTime { get; set; }

    public int FailedFileCount { get; set; }

    public int FileCount { get; set; }

    public long FileSize { get; set; }

    public string IP { get; set; } = null!;

    public bool IsDicom { get; set; }

    public bool IsDicomReUpload { get; set; }

    public bool IsSuccess { get; set; }

    public string Note { get; set; } = null!;

    [StringLength(1000)]
    public string RecordPath { get; set; } = null!;

    public string StudyCode { get; set; } = null!;

    [Comment("Dicom/非Dicom")]
    public Guid StudyId { get; set; }

    public Guid SubjectId { get; set; }

    public Guid SubjectVisitId { get; set; }
    public Guid TrialId { get; set; }

    public DateTime? UploadFinishedTime { get; set; }

    public DateTime UploadStartTime { get; set; }

}
