using IRaCIS.Core.Domain.Share;

namespace IRaCIS.Core.Domain.Models;

[Comment("阅片医学审核对话")]
[Table("ReadingMedicalReviewDialog")]
public class ReadingMedicalReviewDialog : BaseAddAuditEntity
{
    #region 导航属性
    [JsonIgnore]
    [ForeignKey("TaskMedicalReviewId")]
    public TaskMedicalReview TaskMedicalReview { get; set; }
    [Comment("文件")]
    [NotMapped]
    public List<OSSImageInfo> FileList
    {
        get
        {
            try
            {
                var result = JsonConvert.DeserializeObject<List<OSSImageInfo>>(this.ImagePath);
                return result == null ? new List<OSSImageInfo>() : result;
            }
            catch (Exception)
            {

                return new List<OSSImageInfo>();
            }

        }
    }

    #endregion
    [Comment("医学审核Id")]
    public Guid TaskMedicalReviewId { get; set; }

    [Comment("任务Id")]
    public Guid VisitTaskId { get; set; }

    [Comment("对话内容")]
    [StringLength(1000)]
    public string Content { get; set; } = string.Empty;

    [Comment("用户角色")]
    public string UserTypeShortName { get; set; } = string.Empty;

    [Comment("医学审核对话关闭原因")]
    public MedicalDialogClose? MedicalDialogCloseEnum { get; set; }

    [Comment("用户角色枚举")]
    public int UserTypeEnumInt { get; set; }
    [Comment("阅片人是否认同")]
    public MedicalReviewDoctorUserIdea DoctorUserIdeaEnum { get; set; } = MedicalReviewDoctorUserIdea.defalut;

    [Comment("是否有问题")]
    public bool IsHaveQuestion { get; set; } = false;

    [Comment("质询问题")]
    public string Questioning { get; set; } = string.Empty;

    [Comment("审核建议")]
    public AuditAdvice AuditAdviceEnum { get; set; } = AuditAdvice.None;

    [Comment("不同意重阅原因")]
    public string DisagreeReason { get; set; } = string.Empty;
    [Comment("是否申请重阅")]
    public bool? IsApplyHeavyReading { get; set; }


    [Comment("图片路径")]
    [MaxLength]
    public string ImagePath { get; set; } = string.Empty;

    [Comment("文件名称")]
    public string FileName { get; set; } = string.Empty;
}
