using Health.Domain.Enums; using System.ComponentModel.DataAnnotations.Schema; namespace Health.Domain.Entities; /// /// 复查/随访计划 /// public sealed class FollowUp { public Guid Id { get; set; } public Guid UserId { get; set; } public string Title { get; set; } = string.Empty; public string? DoctorName { get; set; } public string? Department { get; set; } public DateTime ScheduledAt { get; set; } public string? Notes { get; set; } public FollowUpStatus Status { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public User User { get; set; } = null!; } /// /// 健康档案 /// public sealed class HealthArchive { public Guid Id { get; set; } public Guid UserId { get; set; } public string? Diagnosis { get; set; } // 主要诊断 public string? SurgeryType { get; set; } // 手术类型 public DateOnly? SurgeryDate { get; set; } // 手术日期 public List Allergies { get; set; } = []; // 过敏信息 public List DietRestrictions { get; set; } = []; // 饮食限制 public List ChronicDiseases { get; set; } = []; // 慢病史 public string? FamilyHistory { get; set; } // 家族病史 public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public User User { get; set; } = null!; public ICollection Surgeries { get; set; } = []; } public sealed class HealthArchiveSurgery { public Guid Id { get; set; } public Guid HealthArchiveId { get; set; } public string Type { get; set; } = string.Empty; public DateOnly? Date { get; set; } public int SortOrder { get; set; } public HealthArchive HealthArchive { get; set; } = null!; } /// /// 刷新令牌 /// public sealed class RefreshToken { public Guid Id { get; set; } public Guid UserId { get; set; } public string Token { get; set; } = string.Empty; public DateTime ExpiresAt { get; set; } public bool IsRevoked { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } /// /// 短信验证码 /// public sealed class VerificationCode { public Guid Id { get; set; } public string Phone { get; set; } = string.Empty; public string Code { get; set; } = string.Empty; public DateTime ExpiresAt { get; set; } public bool IsUsed { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } /// /// 通知偏好 /// public sealed class NotificationPreference { public Guid Id { get; set; } public Guid UserId { get; set; } public bool MedicationReminder { get; set; } = true; public bool FollowUpReminder { get; set; } = true; public bool DoctorReply { get; set; } = true; public bool AbnormalAlert { get; set; } = true; // 健康录入提醒——总开关 + 5 子项 public bool HealthRecordReminder { get; set; } = true; public bool HealthRecordReminderBloodPressure { get; set; } = true; public bool HealthRecordReminderHeartRate { get; set; } = true; public bool HealthRecordReminderGlucose { get; set; } = true; public bool HealthRecordReminderSpO2 { get; set; } = true; public bool HealthRecordReminderWeight { get; set; } = true; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public User User { get; set; } = null!; } /// /// 设备推送 token /// public sealed class DeviceToken { public Guid Id { get; set; } public Guid UserId { get; set; } public string Platform { get; set; } = string.Empty; // ios / android public string PushToken { get; set; } = string.Empty; public bool IsActive { get; set; } = true; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public User User { get; set; } = null!; } public sealed class UserNotification { public Guid Id { get; set; } public Guid UserId { get; set; } public Guid SourceId { get; set; } public string Type { get; set; } = string.Empty; public string Title { get; set; } = string.Empty; public string Message { get; set; } = string.Empty; public string Severity { get; set; } = "info"; public string? ActionType { get; set; } public string? ActionTargetId { get; set; } public bool IsRead { get; set; } public DateTime? ReadAt { get; set; } public bool IsDeleted { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; }