namespace Meezi.Core.Entities;

/// <summary>
/// A registered push-notification device (Pushe). One row per install token.
/// Used for targeted order/reservation pushes; broadcast/marketing pushes go
/// through Pushe topics (city-{slug}, cafe-{slug}) the device subscribes to
/// client-side, but we mirror the city here for server-side fallback targeting.
/// </summary>
public class PushDevice : BaseEntity
{
    /// <summary>Pushe device/install token.</summary>
    public string Token { get; set; } = string.Empty;

    /// <summary>"android" (only platform shipped today).</summary>
    public string Platform { get; set; } = "android";

    /// <summary>Optional city slug the user is browsing — for city-topic targeting.</summary>
    public string? City { get; set; }

    /// <summary>Optional link to a platform consumer account (OTP login).</summary>
    public string? ConsumerAccountId { get; set; }

    public DateTime LastSeenAt { get; set; } = DateTime.UtcNow;
}
