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