108 lines
2.6 KiB
C#
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}";
|
|
}
|
|
}
|