using gehGassi.Domain.Base; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Domain.Common; namespace gehGassi.Domain.Messages { /// /// Repräsentiert eine Unterhaltung zwischen 2 Benutzern. /// Ist bewusst nicht IAuditable!!! /// Dient zum erfassen von Metadaten und der Gruppierung /// public class Conversation : SyncEntity { /// /// Ersteller der Konversation (AppUserId) /// [MaxLength(128)] public string SenderId { get; set; } /// /// Ziel der Konversation (AppUserId) /// [MaxLength(128)] public string ReceiverId { get; set; } /// /// Wann wurde die letzte Nachricht gesendet? /// public DateTimeOffset? LastMessage { get; set; } /// /// Anzahl der insgesamt gesendeten Nachrichten /// public int MessageCount { get; set; } /// /// Wann wurde die Konversation erstellt /// [Required] public DateTimeOffset Created { get; set; } } /// /// Repräsentiert eine Unterhaltung zwischen 2 Benutzern. /// Hier wird im TargetName der andere Benutzer mit Namen hinterlegt /// Dient zum Filtern nach Zielname /// public class ConversationWithTarget : SyncEntityVw { /// /// Ersteller der Konversation (AppUserId) /// public string SenderId { get; set; } /// /// Typ des Senders. DogOwner oder DogWalker /// public AppUserType SenderType { get; set; } /// /// Ziel der Konversation (AppUserId) /// public string ReceiverId { get; set; } /// /// Typ des Empfängers. DogOwner oder DogWalker /// public AppUserType ReceiverType { get; set; } /// /// Wann wurde die letzte Nachricht gesendet? /// public DateTimeOffset? LastMessage { get; set; } /// /// Anzahl der insgesamt gesendeten Nachrichten /// public int MessageCount { get; set; } /// /// Wann wurde die Konversation erstellt /// public DateTimeOffset Created { get; set; } /// /// Beinhaltet den Zielnamen einer Konversation ungleich dem Benutzer der anfrägt /// public string TargetName { get; set; } } /// /// Repräsentiert eine Unterhaltung zwischen 2 Benutzern mit Namen aufgelöst und mit Block- und Lock Info /// public class ConversationWithNames : SyncEntityVw { /// /// Ersteller der Konversation (AppUserId) /// public string SenderId { get; set; } /// /// Name des Senders /// public string SenderName { get; set; } /// /// Vorname des Senders /// public string SenderFirstName { get; set; } /// /// Nachname des Senders /// public string SenderLastName { get; set; } /// /// Sender gesperrt /// public bool SenderLocked { get; set; } /// /// Sender blockiert /// public bool SenderBlocked { get; set; } /// /// Typ des Senders. DogOwner oder DogWalker oder Beides /// public AppUserType SenderType { get; set; } /// /// Foto des Senders /// public string SenderPhoto { get; set; } /// /// Ziel der Konversation (AppUserId) /// public string ReceiverId { get; set; } /// /// Empfänger Name /// public string ReceiverName { get; set; } /// /// Vorname des Empfängers /// public string ReceiverFirstName { get; set; } /// /// Nachname des Empfängers /// public string ReceiverLastName { get; set; } /// /// Empfänger gesperrt /// public bool ReceiverLocked { get; set; } /// /// Empfänger blockiert /// public bool ReceiverBlocked { get; set; } /// /// Typ des Empfängers. DogOwner oder DogWalker oder Beides /// public AppUserType ReceiverType { get; set; } /// /// Foto des Empfängers /// public string ReceiverPhoto { get; set; } /// /// Wann wurde die letzte Nachricht gesendet? /// public DateTimeOffset? LastMessage { get; set; } /// /// Anzahl der insgesamt gesendeten Nachrichten /// public int MessageCount { get; set; } /// /// Wann wurde die Konversation erstellt /// public DateTimeOffset Created { get; set; } } }