using System.ComponentModel.DataAnnotations;

namespace GerbilManagerWebAPI.Models
{
    /// <summary>
    /// A browser's Web-Push subscription (PWA-Benachrichtigungen). Single-user app, daher i. d. R.
    /// nur wenige Einträge (ein Gerät der Züchterin). Endpoint ist eindeutig; veraltete Abos werden
    /// beim Senden (404/410) automatisch entfernt.
    /// </summary>
    public class WebPushSubscription
    {
        [Key]
        public Guid Id { get; set; }

        /// <summary>Die vom Browser vergebene Push-Endpoint-URL (eindeutig).</summary>
        public required string Endpoint { get; set; }

        /// <summary>Öffentlicher Client-Schlüssel (keys.p256dh).</summary>
        public required string P256dh { get; set; }

        /// <summary>Auth-Secret des Clients (keys.auth).</summary>
        public required string Auth { get; set; }

        public DateTimeOffset CreatedAt { get; set; }
    }
}
