108 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gehGassiApp.Domain.Users
{
/// <summary>
/// Repräsentiert den angemeldeten Benutzer
/// </summary>
public class User
{
/// <summary>
/// Id
/// </summary>
[Key]
[Required]
[MaxLength(128)]
public string Id { get; set; }
/// <summary>
/// Benutzername - Email
/// </summary>
[Required]
[MaxLength(256)]
public string UserName { get; set; }
/// <summary>
/// Vorname
/// </summary>
[Required]
[MaxLength(150)]
public string FirstName { get; set; }
/// <summary>
/// Nachname
/// </summary>
[Required]
[MaxLength(150)]
public string LastName { get; set; }
/// <summary>
/// Zugeordnete Rollen
/// </summary>
[MaxLength(255)]
public string Roles { get; set; }
/// <summary>
/// Foto
/// </summary>
[MaxLength(500)]
public string Photo { get; set; }
///// <summary>
///// Foto - Base64
///// </summary>
//public string PhotoBase64 { get; set; }
/// <summary>
/// Datum der Registrierung
/// </summary>
public DateTimeOffset? RegistrationDate { get; set; }
/// <summary>
/// Datum der letzten Anmeldung
/// </summary>
public DateTimeOffset? LastLoginDate { get; set; }
/// <summary>
/// Id des App-Users
/// </summary>
[MaxLength(128)]
public string AppUserId { get; set; }
/// <summary>
/// Access-Token für den Benutzer
/// </summary>
[NotMapped]
public string AccessToken { get; set; }
/// <summary>
/// Ablaufdatum Access-Token
/// </summary>
[NotMapped]
public DateTimeOffset AccessTokenExpires { get; set; }
/// <summary>
/// Refreshtoken für den Benutzer
/// </summary>
[NotMapped]
public string RefreshToken { get; set; }
/// <summary>
/// Ablaufdatum Refresh-Token
/// </summary>
[NotMapped]
public DateTimeOffset RefreshTokenExpires { get; set; }
/// <summary>
/// Voller Name
/// </summary>
public string FullName => $"{FirstName} {LastName}";
}
}