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.Lookup
{
///
/// Repräsentiert Detail-Infos zu einem DogOwner
///
public class DogOwnerInfo : SyncEntity
{
///
/// Art des App-Users
///
public AppUserType Type { get; set; }
///
/// Nummer des App-Users
///
public string Number { get; set; }
///
/// Anrede / titel
///
public string Title { get; set; }
///
/// Vorname
///
public string FirstName { get; set; }
///
/// Nachname
///
public string LastName { get; set; }
///
/// Geschlecht
///
public Sex Sex { get; set; }
///
/// Optional - Geburtstag
///
public DateTimeOffset? BirthDate { get; set; }
///
/// Optional - Foto des Benutzers
///
public string Photo { get; set; }
///
/// Kontaktdaten
///
public ContactMin Contact { get; set; }
///
/// Adresse
///
public Address Address { get; set; }
///
/// Breitengrad der Adresse
///
public double Lat { get; set; }
///
/// Längengrad der Adresse
///
public double Lng { get; set; }
///
/// Interne Anmerkungen
///
public string Comment { get; set; }
///
/// Statistiken als Owner
///
public RatingStatistics RatingStatistics { get; set; }
///
/// Datum der Erstellung
///
public DateTimeOffset Created { get; set; }
///
/// Abstand zum aktuellen Standort in KM
///
[NotMapped]
public double Distance { get; set; }
///
/// Voller Name des Walkers
///
[NotMapped]
public string FullName => $"{FirstName} {LastName}";
///
/// Vorname + Nachname erster Buchstabe + Punkt, oder nur Vorname wenn kein Nachname
///
[NotMapped]
public string FullNameShort => string.IsNullOrWhiteSpace(LastName) ? FirstName : $"{FirstName} {LastName[..1]}.";
#region Erweiterung Blockier- und Sperrinfo
///
/// Hundebesitzer ist blockiert
///
[NotMapped]
public bool Blocked { get; set; }
///
/// Hundebesitzer ist gesperrt
///
[NotMapped]
public bool Locked { get; set; }
///
/// Hundebesitzer blockiert oder gesperrt?
///
[NotMapped]
public bool BlockedOrLocked => Blocked || Locked;
#endregion
}
}