161 lines
3.9 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.Base;
using gehGassiApp.Domain.Common;
namespace gehGassiApp.Domain.Listings
{
/// <summary>
/// Repräsentiert eine Listung
/// </summary>
public class Listing : SyncEntity
{
private bool _isFavourite;
/// <summary>
/// Id des Kunden
/// </summary>
public long CustomerId { get; set; }
/// <summary>
/// Name des kunden
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// Id der Branche
/// </summary>
public string BranchId { get; set; }
/// <summary>
/// Name der Branche
/// </summary>
public string BranchName { get; set; }
/// <summary>
/// Typ der Listung - Basis, Silber, Gold, Plating
/// </summary>
public ListingType ListingType { get; set; }
/// <summary>
/// Startdatum der Listung
/// </summary>
public DateTimeOffset? StartDate { get; set; }
/// <summary>
/// Enddatum der Listung
/// </summary>
public DateTimeOffset? EndDate { get; set; }
/// <summary>
/// Bild für die Listung - Allgemein
/// </summary>
public string Image { get; set; }
/// <summary>
/// Bild für die Listung - Allgemein 8:9
/// </summary>
public string Image2 { get; set; }
/// <summary>
/// Link für die Listung - allgemein wenn nicht überschrieben
/// </summary>
public string Url { get; set; }
/// <summary>
/// Name der Listung
/// </summary>
public string Name { get; set; }
/// <summary>
/// Beschreibung der Listung
/// </summary>
public string Description { get; set; }
/// <summary>
/// Bild der Listung für eine Sprache
/// </summary>
public string ImageLanguage { get; set; }
/// <summary>
/// Bild der Listung für eine Sprache 8:9
/// </summary>
public string Image2Language { get; set; }
/// <summary>
/// Link für die Listung für eine Sprache
/// </summary>
public string UrlLanguage { get; set; }
/// <summary>
/// Adresse die angezeigt werden soll
/// </summary>
public Address ListingAddress { get; set; }
/// <summary>
/// Breitengrad der Adresse
/// </summary>
public double ListingLat { get; set; }
/// <summary>
/// Längengrad der Adresse
/// </summary>
public double ListingLng { get; set; }
/// <summary>
/// Abstand zum aktuellen Standort in KM
/// </summary>
[NotMapped]
public double Distance { get; set; }
/// <summary>
/// Ist die Listung ein Favorit des Benutzers?
/// </summary>
[NotMapped]
public bool IsFavourite
{
get => _isFavourite;
set
{
_isFavourite = value;
OnPropertyChanged();
}
}
/// <summary>
/// Erstellt eine Instanz
/// </summary>
public Listing()
{
ListingAddress = new Address();
}
}
/// <summary>
/// Typ der Listung
/// </summary>
public enum ListingType
{
/// <summary>
/// Basis-Listung
/// </summary>
Base = 0,
/// <summary>
/// Silber-Listung
/// </summary>
Silver = 10,
/// <summary>
/// Gold-Listung
/// </summary>
Gold = 20,
/// <summary>
/// Platin-Listung
/// </summary>
Platin = 30
}
}