59 lines
2.0 KiB
C#
59 lines
2.0 KiB
C#
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; }
|
|
}
|
|
} |