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
{
///
/// Repräsentiert den angemeldeten Benutzer
///
public class User
{
///
/// Id
///
[Key]
[Required]
[MaxLength(128)]
public string Id { get; set; }
///
/// Benutzername - Email
///
[Required]
[MaxLength(256)]
public string UserName { get; set; }
///
/// Vorname
///
[Required]
[MaxLength(150)]
public string FirstName { get; set; }
///
/// Nachname
///
[Required]
[MaxLength(150)]
public string LastName { get; set; }
///
/// Zugeordnete Rollen
///
[MaxLength(255)]
public string Roles { get; set; }
///
/// Foto
///
[MaxLength(500)]
public string Photo { get; set; }
/////
///// Foto - Base64
/////
//public string PhotoBase64 { get; set; }
///
/// Datum der Registrierung
///
public DateTimeOffset? RegistrationDate { get; set; }
///
/// Datum der letzten Anmeldung
///
public DateTimeOffset? LastLoginDate { get; set; }
///
/// Id des App-Users
///
[MaxLength(128)]
public string AppUserId { get; set; }
///
/// Access-Token für den Benutzer
///
[NotMapped]
public string AccessToken { get; set; }
///
/// Ablaufdatum Access-Token
///
[NotMapped]
public DateTimeOffset AccessTokenExpires { get; set; }
///
/// Refreshtoken für den Benutzer
///
[NotMapped]
public string RefreshToken { get; set; }
///
/// Ablaufdatum Refresh-Token
///
[NotMapped]
public DateTimeOffset RefreshTokenExpires { get; set; }
///
/// Voller Name
///
public string FullName => $"{FirstName} {LastName}";
}
}