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