feat(frontend): Replace React with Blazor frontend

This commit is contained in:
2025-08-30 19:29:40 -04:00
parent 3b9c074bc7
commit 6063ed62e0
82 changed files with 22786 additions and 3435 deletions

59
frontend/Models/Member.cs Normal file
View File

@@ -0,0 +1,59 @@
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 bool IsActive { get; set; } = true;
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; }
}
}