307 lines
8.3 KiB
C#
307 lines
8.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using gehGassi.Domain.Base;
|
|
using gehGassi.Domain.Common;
|
|
using gehGassi.Domain.Ratings;
|
|
using NetTopologySuite.Geometries;
|
|
|
|
namespace gehGassi.Domain.Dogs
|
|
{
|
|
/// <summary>
|
|
/// Repräsentiert einen App-User der DogWalker oder beides ist.
|
|
/// Wird für Abfragen mit einer View Verwendet.
|
|
/// Inkludiert auch das dogWalkerProfil
|
|
/// </summary>
|
|
public class DogWalker : SyncEntityVw
|
|
{
|
|
/// <summary>
|
|
/// Art des App-Users
|
|
/// </summary>
|
|
public AppUserType Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// Nummer des App-Users
|
|
/// </summary>
|
|
public string Number { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anrede / titel
|
|
/// </summary>
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// Vorname
|
|
/// </summary>
|
|
public string FirstName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Nachname
|
|
/// </summary>
|
|
public string LastName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geschlecht
|
|
/// </summary>
|
|
public Sex Sex { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional - Geburtstag
|
|
/// </summary>
|
|
public DateTimeOffset? BirthDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional - Foto des Benutzers
|
|
/// </summary>
|
|
public string Photo { get; set; }
|
|
|
|
/// <summary>
|
|
/// Email-Adresse der Kontaktperson
|
|
/// </summary>
|
|
public string Contact_Email { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optinale Telefonnummer (Festnetz)
|
|
/// </summary>
|
|
public string Contact_Phone { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optinale Handy-Nummer
|
|
/// </summary>
|
|
public string Contact_Mobile { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optionale Adresszeile 1
|
|
/// </summary>
|
|
public string Address_AddressLine1 { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optionale Adresszeile 2
|
|
/// </summary>
|
|
public string Address_AddressLine2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional: Stadt / Ort
|
|
/// </summary>
|
|
public string Address_City { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optinale PLZ
|
|
/// </summary>
|
|
public string Address_Zip { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bundesland / Staat
|
|
/// </summary>
|
|
public string Address_State { get; set; }
|
|
|
|
/// <summary>
|
|
/// ISO2 Ländercode
|
|
/// </summary>
|
|
public string Address_CountryCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geo-Koordinaten
|
|
/// </summary>
|
|
public Point Location { get; set; }
|
|
|
|
/// <summary>
|
|
/// Interne Anmerkungen
|
|
/// </summary>
|
|
public string Comment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anzahl der Bewertungen
|
|
/// </summary>
|
|
public int RatingStatistics_TotalRatings { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anzahl der Punkte die vergeben wurden
|
|
/// </summary>
|
|
public decimal RatingStatistics_TotalPoints { get; set; }
|
|
|
|
/// <summary>
|
|
/// Durchschnittliche Bewertung
|
|
/// </summary>
|
|
public decimal RatingStatistics_AverageRating { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anzahl der Bewertungen
|
|
/// </summary>
|
|
public int RatingStatisticsWalker_TotalRatings { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anzahl der Punkte die vergeben wurden
|
|
/// </summary>
|
|
public decimal RatingStatisticsWalker_TotalPoints { get; set; }
|
|
|
|
/// <summary>
|
|
/// Durchschnittliche Bewertung
|
|
/// </summary>
|
|
public decimal RatingStatisticsWalker_AverageRating { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gesperrt
|
|
/// </summary>
|
|
public bool Locked { get; set; }
|
|
|
|
/// <summary>
|
|
/// Grund für die Sperrung
|
|
/// </summary>
|
|
public string LockedReason { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gesperrt bis
|
|
/// </summary>
|
|
public DateTimeOffset? LockedUntil { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wie oft wurde der Benutzer gesperrt
|
|
/// </summary>
|
|
public int LockedCount { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wurden die AGB akzeptiert
|
|
/// </summary>
|
|
public bool TermsAccepted { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurden die AGB akzeptiert?
|
|
/// </summary>
|
|
public DateTimeOffset? TermsAcceptedDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wurden die Datenschutzbedingungen akzeptiert
|
|
/// </summary>
|
|
public bool PrivacyAccepted { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurden die Datenschutzbedingungen akzeptiert?
|
|
/// </summary>
|
|
public DateTimeOffset? PrivacyAcceptedDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wurden die Datenschutzbedingungen des Paymentproviders akzeptiert
|
|
/// </summary>
|
|
public bool PaymentTermsAccepted { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurden die Datenschutzbedingungen des Paymentproviders akzeptiert?
|
|
/// </summary>
|
|
public DateTimeOffset? PaymentTermsAcceptedDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Nationalität ISO-2
|
|
/// </summary>
|
|
public string NationalityCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// Land Hauptwohnsitz ISO-2
|
|
/// </summary>
|
|
public string MainResidenceCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID des AppUsers beim Payment-Provider
|
|
/// </summary>
|
|
public string PaymentId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gibt an ob der Benutzer den KYC-Prozess durchlaufen hat
|
|
/// </summary>
|
|
public bool KycPassed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde der KYC-Prozess erfolgreich durchlaufen?
|
|
/// </summary>
|
|
public DateTimeOffset? KycPassedDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gibt an ob es sich um einen verifizierten Benutzer handelt
|
|
/// </summary>
|
|
public bool Verified { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde die Verification erfolgreich durchlaufen?
|
|
/// </summary>
|
|
public DateTimeOffset? VerifiedDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wurde der Benutzer anonymisiert?
|
|
/// </summary>
|
|
public bool Anonymized { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde der Benutzer anonymisiert?
|
|
/// </summary>
|
|
public DateTimeOffset? AnonymizedDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Datum der Erstellung
|
|
/// </summary>
|
|
public DateTimeOffset Created { get; set; }
|
|
|
|
/// <summary>
|
|
/// Radius für Anfragen
|
|
/// </summary>
|
|
public double Radius { get; set; }
|
|
|
|
/// <summary>
|
|
/// Über mich
|
|
/// </summary>
|
|
public string About { get; set; }
|
|
|
|
/// <summary>
|
|
/// Welche Anfragen erlauben
|
|
/// </summary>
|
|
public DogWalkRequestType AllowedRequests { get; set; }
|
|
|
|
/// <summary>
|
|
/// nimmt Welpen an
|
|
/// </summary>
|
|
public bool PuppyAllowed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Nimmt schwierige Hunde an
|
|
/// </summary>
|
|
public bool DifficultAllowed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Aggressionsgrad des Hundes, wenn schwierige Hunde errlaubt
|
|
/// </summary>
|
|
public DogAggressionLevel AggressionLevel { get; set; }
|
|
|
|
/// <summary>
|
|
/// Akzeptierte Hundegröße
|
|
/// </summary>
|
|
public DogSize AcceptedSize { get; set; }
|
|
|
|
/// <summary>
|
|
/// Preis für einen Walk je Stunde
|
|
/// </summary>
|
|
public decimal PriceWalk { get; set; }
|
|
|
|
/// <summary>
|
|
/// Preis für Tagesbetreuung je Stunde
|
|
/// </summary>
|
|
public decimal PriceDay { get; set; }
|
|
|
|
/// <summary>
|
|
/// Preis für Sitting je Tag
|
|
/// </summary>
|
|
public decimal PriceSitting { get; set; }
|
|
|
|
/// <summary>
|
|
/// Walker ist derzeit für Buchungen nicht verfügbar
|
|
/// </summary>
|
|
public bool NotAvailable { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional: Info warum nicht verfügbar
|
|
/// </summary>
|
|
public string NotAvailableInfo { get; set; }
|
|
}
|
|
}
|