namespace IRaCIS.Core.Domain.Models;

[Comment("稽查 - 记录表")]
[Table("DataInspection")]
public class DataInspection : BaseAddAuditEntity
{
    #region 导航属性
    [JsonIgnore]
    [ForeignKey("TrialReadingCriterionId")]
    public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }

    [JsonIgnore]
    public VisitTask VisitTask { get; set; }
    #endregion

    [Comment("批次Id")]
    public Guid BatchId { get; set; }

    [Comment("子类")]
    public Guid? ChildrenTypeId { get; set; }

    [Comment("创建人姓名")]
    public string CreateUserName { get; set; } = string.Empty;

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

    [Comment("阅片医生")]
    public Guid? DoctorUserId { get; set; }

    [Comment("被稽查实体名")]
    public string EntityName { get; set; } = string.Empty;

    [Comment("要稽查对象Id")]
    public Guid? GeneralId { get; set; }

    [Comment("标识")]
    public string Identification { get; set; } = string.Empty;

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

    [Comment("是否是前端添加")]
    public bool? IsFrontAdd { get; set; }

    public bool? IsSign { get; set; }

    [MaxLength]
    public string? JsonDetail { get; set; }

    [Comment("上一条json")]
    [MaxLength]
    public string? LastJsonDetail { get; set; }

    public Guid? ModuleTypeId { get; set; }

    [Comment("被稽查对象外键1")]
    public Guid? ObjectRelationParentId { get; set; }

    public Guid? ObjectRelationParentId2 { get; set; }

    public Guid? ObjectRelationParentId3 { get; set; }

    public Guid? ObjectTypeId { get; set; }

    public Guid? OptTypeId { get; set; }

    [Comment("父ID")]
    public Guid? ParentId { get; set; }

    /// <summary>
    /// 原因
    /// </summary>
    public string Reason { get; set; } = string.Empty;

    [Comment("角色名称")]
    public string RoleName { get; set; } = string.Empty;

    public Guid? SignId { get; set; }

    public Guid? SubjectId { get; set; }

    public Guid? SubjectVisitId { get; set; }

    public Guid? TrialId { get; set; }

    public Guid? TrialReadingCriterionId { get; set; }

    public Guid? TrialSiteId { get; set; }

    [Comment("访视计划ID")]
    public Guid? VisitStageId { get; set; }

    public Guid? VisitTaskId { get; set; }

    /// <summary>
    /// 真实的Url和实体名称拼接
    /// </summary>
    public string RealUrlAndEntity { get; set; } = string.Empty;
}

