using Health.Domain.Enums;
namespace Health.Domain.Entities;
///
/// 用药计划
///
public sealed class Medication
{
public Guid Id { get; set; }
public Guid UserId { get; set; }
public string Name { get; set; } = string.Empty;
public string? Dosage { get; set; }
public MedicationFrequency Frequency { get; set; }
public List TimeOfDay { get; set; } = []; // PostgreSQL TIME[] 数组
public DateOnly? StartDate { get; set; }
public DateOnly? EndDate { get; set; }
public bool IsActive { get; set; } = true;
public MedicationSource Source { get; set; }
public string? Notes { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
public User User { get; set; } = null!;
public ICollection Logs { get; set; } = [];
}
///
/// 用药打卡记录
///
public sealed class MedicationLog
{
public Guid Id { get; set; }
public Guid MedicationId { get; set; }
public Guid UserId { get; set; }
public MedicationLogStatus Status { get; set; }
public TimeOnly ScheduledTime { get; set; }
public DateTime? ConfirmedAt { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public Medication Medication { get; set; } = null!;
}