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; }
}
}