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