198 lines
5.5 KiB
C#

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