gehgassi_backend/gehGassi.Domain/Walks/PublicWalkRequestNotification.cs

80 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassi.Domain.Common;
using NetTopologySuite.Geometries;
namespace gehGassi.Domain.Walks
{
/// <summary>
/// Hilfsklasse für das Senden von Push-Notifications wenn eine öffentliche Anfrage erstellt wurde.
/// Es werden dann Push-Notifications an Walker in der Nähe gesendet
/// </summary>
public class PublicWalkRequestNotification
{
/// <summary>
/// Eindeutige Id
/// </summary>
[Key]
public long Id { get; set; }
/// <summary>
/// Id der öffentlichen Anfrage
/// </summary>
[Required]
[MaxLength(128)]
public string PublicWalkRequestId { get; set; }
/// <summary>
/// Id des App-Users / Hundebesitzers der die Anfrage erstellt hat
/// Ist eine AppUserId
/// </summary>
[Required]
[MaxLength(128)]
public string DogOwnerId { get; set; }
/// <summary>
/// Abhol-Adresse
/// </summary>
public Address PickupAddress { get; set; }
/// <summary>
/// Geo-Koordinaten der Adresse
/// </summary>
public Point Location { get; set; }
/// <summary>
/// Anzahl der nachrichten die gesendet wurden
/// </summary>
public int SentCount { get; set; }
/// <summary>
/// Wurden die Nachrichten bereits gesendet?
/// </summary>
[Required]
public bool HasBeenSent { get; set; }
/// <summary>
/// Datum wann die Nachricht gesendet wurden
/// </summary>
public DateTimeOffset? SentDate { get; set; }
/// <summary>
/// Wann erstellt
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// Erstellt eine Instanz
/// </summary>
public PublicWalkRequestNotification()
{
PickupAddress = new Address();
Location = new Point(0, 0);
}
}
}