Files
nimbusflow/frontend/Models/Member.cs

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; }
}
}