galaeth-draft/Galaeth.Core/Entities/RefreshToken.cs
2024-11-17 09:31:01 +00:00

62 lines
1.5 KiB
C#

using Galaeth.Core.Attributes.EntityAnnotation;
using Galaeth.Core.Constants;
using MyCSharp.HttpUserAgentParser;
namespace Galaeth.Core.Entities;
/// <summary>
/// Entity representing a refresh token.
/// </summary>
[TableMapping("refreshTokens")]
public class RefreshToken
{
/// <summary>
/// The token.
/// </summary>
[ColumnMapping("token")]
[PrimaryKey]
public string Token { get; set; }
/// <summary>
/// Token context.
/// </summary>
[ColumnMapping("tokenContext")]
public RefreshTokenContext TokenContext { get; set; }
/// <summary>
/// The owner user's id.
/// </summary>
[ColumnMapping("userId")]
public Guid UserId { get; set; }
/// <summary>
/// When the token expires.
/// </summary>
[ColumnMapping("expires")]
public DateTime Expires { get; set; }
/// <summary>
/// The user agent this refresh token belongs to.
/// </summary>
[ColumnMapping("userAgent")]
public string UserAgent { get; set; }
/// <summary>
/// User agent type.
/// </summary>
[ColumnMapping("userAgentType")]
public HttpUserAgentType UserAgentType { get; set; }
/// <summary>
/// The ip address this refresh token belongs to.
/// </summary>
[ColumnMapping("ipAddress")]
public string IpAddress { get; set; }
/// <summary>
/// When the token was created.
/// </summary>
[ColumnMapping("createdAt")]
public DateTime CreatedAt { get; set; }
}