namespace NimbusFlow.Frontend.Models { public class Member { public int MemberId { get; set; } public string FirstName { get; set; } = string.Empty; public string LastName { get; set; } = string.Empty; public string? Email { get; set; } public string? PhoneNumber { get; set; } public int? ClassificationId { get; set; } public string? Notes { get; set; } public int IsActive { get; set; } = 1; public DateTime? LastScheduledAt { get; set; } public DateTime? LastAcceptedAt { get; set; } public DateTime? LastDeclinedAt { get; set; } public int DeclineStreak { get; set; } = 0; // Navigation properties public string? ClassificationName { get; set; } public string FullName => $"{FirstName} {LastName}"; } public class Classification { public int ClassificationId { get; set; } public string ClassificationName { get; set; } = string.Empty; } public class Service { public int ServiceId { get; set; } public int ServiceTypeId { get; set; } public DateTime ServiceDate { get; set; } public string? ServiceTypeName { get; set; } } public class ServiceType { public int ServiceTypeId { get; set; } public string TypeName { get; set; } = string.Empty; } public class Schedule { public int ScheduleId { get; set; } public int ServiceId { get; set; } public int MemberId { get; set; } public string Status { get; set; } = string.Empty; // pending, accepted, declined public DateTime ScheduledAt { get; set; } public DateTime? AcceptedAt { get; set; } public DateTime? DeclinedAt { get; set; } public DateTime? ExpiresAt { get; set; } public string? DeclineReason { get; set; } // Navigation properties public Member? Member { get; set; } public Service? Service { get; set; } } }