was added firebase nitifying

This commit is contained in:
Artemy
2026-03-01 16:48:06 +07:00
parent 76d7280c71
commit eab0d746b8
60 changed files with 2335 additions and 1149 deletions
+20
View File
@@ -0,0 +1,20 @@
using Microsoft.EntityFrameworkCore;
namespace Govor.Core.Models.Users;
public class UserPushToken
{
public Guid Id { get; set; } = Guid.NewGuid();
public Guid UserId { get; set; }
public Guid? UserSessionId { get; set; }
public string Token { get; set; } = string.Empty; // FCM/APNs
public string Provider { get; set; } = "FCM"; // FCM | APNs | Web | Huawei
public string Platform { get; set; } = string.Empty; // android | ios | web
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
public DateTime? LastUsedAt { get; set; }
public bool IsActive { get; set; } = true;
}
@@ -0,0 +1,10 @@
namespace Govor.Core.Repositories.PushTokens;
public interface IPushTokenReader
{
Task<List<string>> GetActiveTokensAsync(Guid userId);
Task<List<string>> GetActiveTokensUsersAsync(IEnumerable<Guid> userIds);
Task<string> GetActiveTokenBySessionAsync(Guid sessionId);
}
@@ -0,0 +1,6 @@
namespace Govor.Core.Repositories.PushTokens;
public interface IPushTokenRepository : IPushTokenReader, IPushTokenWriter
{
}
@@ -0,0 +1,11 @@
namespace Govor.Core.Repositories.PushTokens;
public interface IPushTokenWriter
{
Task AddOrUpdateTokenAsync(Guid userId, Guid? sessionId, string token,
string platform, string provider = "FCM");
Task RemoveTokensAsync(IEnumerable<string> tokens);
Task DeactivateTokenBySessionAsync(Guid sessionId); // logout
}