Core.Thalos.BuildingBlocks/Core.Thalos.BuildingBlocks/Adapters/UserAdapter.cs
2025-08-26 14:18:33 -06:00

101 lines
3.2 KiB
C#

// ***********************************************************************
// <copyright file="UserAdapter.cs">
// AgileWebs
// </copyright>
// ***********************************************************************
using Core.Blueprint.Mongo;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Thalos.BuildingBlocks
{
/// <summary>
/// Adapter representing a user.
/// </summary>
[CollectionAttributeName("Users")]
public class UserAdapter : Document
{
/// <summary>
/// Gets or sets the email address of the user.
/// </summary>
[BsonElement("email")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("email")]
public string Email { get; set; } = null!;
/// <summary>
/// Gets or sets the name of the user.
/// </summary>
[BsonElement("name")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("name")]
public string Name { get; set; } = null!;
/// <summary>
/// Gets or sets the middlename of the user.
/// </summary>
[BsonElement("middleName")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("middleName")]
public string? MiddleName { get; set; }
/// <summary>
/// Gets or sets the last name of the user.
/// </summary>
[BsonElement("lastName")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("lastName")]
public string LastName { get; set; } = null!;
/// <summary>
/// Gets or sets the name of the user.
/// </summary>
[BsonElement("displayName")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("displayName")]
public string? DisplayName { get; set; }
/// <summary>
/// Gets or sets the Tenand ID of the user.
/// </summary>
[BsonElement("tenantId")]
[BsonRepresentation(BsonType.ObjectId)]
[JsonPropertyName("tenantId")]
public string TenantId { get; set; } = null!;
/// <summary>
/// Gets or sets the role ID of the user.
/// </summary>
[BsonElement("roleId")]
[BsonRepresentation(BsonType.ObjectId)]
[JsonPropertyName("roleId")]
public string RoleId { get; set; } = null!;
/// <summary>
/// Gets or sets the timestamp of the last login of the user.
/// </summary>
[BsonElement("lastLogIn")]
[BsonRepresentation(BsonType.DateTime)]
[JsonPropertyName("lastLogIn")]
public DateTime? LastLogIn { get; set; }
/// <summary>
/// Gets or sets the timestamp of the last logout of the user.
/// </summary>
[BsonElement("lastLogOut")]
[BsonRepresentation(BsonType.DateTime)]
[JsonPropertyName("lastLogOut")]
public DateTime? LastLogOut { get; set; }
/// <summary>
/// Gets or sets the token associated with the user.
/// </summary>
[BsonElement("token")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("token")]
public string? Token { get; set; } = null;
}
}