143 lines
3.7 KiB
C#

using gehGassi.Domain.Common;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NetTopologySuite.Geometries;
namespace gehGassi.Domain.Dogs
{
/// <summary>
/// Repräsentiert eine Blockierung eines App-Users durch einen anderen App-User
/// </summary>
public class AppUserBlock
{
/// <summary>
/// Id der Blockierung
/// </summary>
[Key]
[Required]
public long Id { get; set; }
/// <summary>
/// Id des App-Users der die Blockierung erstellt hat
/// </summary>
[Required]
[MaxLength(128)]
public string BlockingAppUserId { get; set; }
/// <summary>
/// Id des App-Users der blockiert wurde
/// </summary>
[MaxLength(128)]
public string? BlockedAppUserId { get; set; }
/// <summary>
/// Wie lange ist die Blockierung gültig?
/// Wenn null, dann dauerhaft
/// </summary>
public DateTimeOffset? BlockedUntil { get; set; }
/// <summary>
/// Optional: Verweis auf einen AppUserReport
/// </summary>
public long? AppUserReportId { get; set; }
/// <summary>
/// Erstellt von?
/// </summary>
[MaxLength(256)]
public string CreatedBy { get; set; }
/// <summary>
/// Wann wurde die Blockierung erstellt?
/// </summary>
public DateTimeOffset Created { get; set; }
}
/// <summary>
/// Blockierter App-User mit Namen aufgelöst.
/// Wird für die Anzeige der Liste der blockierten App-User verwendet
/// </summary>
public class AppUserBlockWithNames
{
/// <summary>
/// Id der Blockierung
/// </summary>
public long Id { get; set; }
/// <summary>
/// Id des App-Users der die Blockierung erstellt hat
/// </summary>
public string BlockingAppUserId { get; set; }
/// <summary>
/// Id des App-Users der blockiert wurde
/// </summary>
public string? BlockedAppUserId { get; set; }
/// <summary>
/// Wie lange ist die Blockierung gültig?
/// Wenn null, dann dauerhaft
/// </summary>
public DateTimeOffset? BlockedUntil { get; set; }
/// <summary>
/// Optional: Verweis auf einen AppUserReport
/// </summary>
public long? AppUserReportId { get; set; }
/// <summary>
/// Erstellt von?
/// </summary>
public string CreatedBy { get; set; }
/// <summary>
/// Wann wurde die Blockierung erstellt?
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// Art des App-Users
/// </summary>
public AppUserType Type { get; set; }
/// <summary>
/// Vorname
/// </summary>
public string FirstName { get; set; }
/// <summary>
/// Nachname
/// </summary>
public string LastName { get; set; }
/// <summary>
/// Optional - Foto des Benutzers
/// </summary>
public string Photo { get; set; }
/// <summary>
/// Hinweis auf den Ort wo jemand zu Hause ist
/// </summary>
public string LocationHint { get; set; }
/// <summary>
/// Geo-Koordinaten
/// </summary>
public Point Location { get; set; }
/// <summary>
/// Gesperrt
/// </summary>
public bool Locked { get; set; }
/// <summary>
/// Gesperrt
/// </summary>
public bool Deleted { get; set; }
}
}