99 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassiApp.Domain.Advertisements;
using gehGassiApp.Domain.Base;
using gehGassiApp.Domain.Dogs;
using gehGassiApp.Domain.Listings;
using gehGassiApp.Domain.Lookup;
namespace gehGassiApp.Domain.Favourites
{
/// <summary>
/// Favoriten für Listendarstellung
/// </summary>
public class FavouriteListItem : SyncEntity
{
/// <summary>
/// Benutrzer der den Favoriten angelegt hat
/// </summary>
public string AppUserId { get; set; }
/// <summary>
/// Id des verknüpften Objektes
/// </summary>
public string Key { get; set; }
/// <summary>
/// Typ des Objektes das verbunden wurde
/// </summary>
public string Table { get; set; }
/// <summary>
/// Wann erstellt?
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// Gibt an ob die Resource am Server nicht mehr verfügbar ist
/// </summary>
public bool NotAvailable { get; set; }
/// <summary>
/// Werbung, wenn entsprechender Typ
/// </summary>
public Advertisement Advertisement { get; set; }
/// <summary>
/// PArtner, wenn entsprechender Typ
/// </summary>
public Listing Listing { get; set; }
/// <summary>
/// Hund, wenn entsprechender Typ
/// </summary>
public Dog Dog { get; set; }
/// <summary>
/// Walker, wenn entsprechender Typ
/// </summary>
public DogWalkerLookup DogWalker { get; set; }
#region Erweiterung Blockier- und Sperrinfo
/// <summary>
/// Hundebesitzer ist blockiert
/// </summary>
[NotMapped]
public bool Blocked { get; set; }
/// <summary>
/// Hundebesitzer ist gesperrt
/// </summary>
[NotMapped]
public bool Locked { get; set; }
/// <summary>
/// Hundebesitzer blockiert oder gesperrt?
/// </summary>
[NotMapped]
public bool BlockedOrLocked => Blocked || Locked;
#endregion
/// <summary>
/// Erstellt eine Instanz
/// </summary>
public FavouriteListItem()
{
Advertisement = null;
Listing = null;
Dog = null;
DogWalker = null;
}
}
}