34 lines
1.4 KiB
C#
34 lines
1.4 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Fitness_core_BE.Models
|
|
{
|
|
// A persisted, in-app history of pushes sent to a customer (workout/meal plan assigned,
|
|
// a gym feed post, etc.) — backs the mobile Notification tab, independent of whether the
|
|
// device actually received/displayed the push itself.
|
|
public class CustomerNotification
|
|
{
|
|
[Key]
|
|
public Guid CustomerNotificationId { get; set; }
|
|
|
|
public Guid FKCustomerId { get; set; }
|
|
[ForeignKey("FKCustomerId")]
|
|
public virtual Customer? Customer { get; set; }
|
|
|
|
public string Title { get; set; } = string.Empty;
|
|
public string Body { get; set; } = string.Empty;
|
|
|
|
// "WorkoutPlanAssigned" | "MealPlanAssigned" | "FeedPost" — free text, not an enum, so
|
|
// new notification kinds don't need a migration.
|
|
public string NotificationType { get; set; } = string.Empty;
|
|
|
|
// Mirrors PushNavigationData's contract in the mobile app's pushNotification.ts, so a
|
|
// tap on this notification in the list can navigate the same way a live push would.
|
|
public string? RouteName { get; set; }
|
|
public string? RouteParamsJson { get; set; }
|
|
|
|
public bool IsRead { get; set; } = false;
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
}
|