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