161 lines
3.9 KiB
C#
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
|
|
}
|
|
}
|