using gehGassi.Domain.Base; using gehGassi.Domain.Common; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace gehGassi.Domain.Dogs { /// /// Profil eines Hundeausführers. /// Die Id der Syncentity muss mit einem App-User übereinstimmen /// public class DogWalkerProfile : SyncEntity, IAuditable { /// /// Radius für Anfragen /// [Required] public double Radius { get; set; } /// /// Über mich /// [MaxLength(300)] public string About { get; set; } /// /// Welche Anfragen erlauben /// [Required] public DogWalkRequestType AllowedRequests { get; set; } /// /// nimmt Welpen an /// [Required] public bool PuppyAllowed { get; set; } /// /// Nimmt schwierige Hunde an /// [Required] public bool DifficultAllowed { get; set; } /// /// Aggressionsgrad des Hundes, wenn schwierige Hunde errlaubt /// [Required] public DogAggressionLevel AggressionLevel { get; set; } /// /// Akzeptierte Hundegröße /// [Required] public DogSize AcceptedSize { get; set; } /// /// Preis für einen Walk je Stunde /// [Required] public decimal PriceWalk { get; set; } /// /// Preis für Tagesbetreuung je Stunde /// [Required] public decimal PriceDay { get; set; } /// /// Preis für Sitting je Tag /// [Required] public decimal PriceSitting { get; set; } /// /// Walker ist derzeit für Buchungen nicht verfügbar /// [Required] public bool NotAvailable { get; set; } /// /// Optional: Info warum nicht verfügbar /// [MaxLength(500)] public string NotAvailableInfo { get; set; } #region IAuditable /// /// Gibt den eindeutigen Key für die Entität zurück; /// Hier als String gelöst, weil damit auch kombinierte Schlüssel möglich sind. /// /// Eindeutiger Key public string AuditKey() { return Id.ToString(); } /// /// Gibt den Objektnamen bzw. die Tabelle der Entität zurück /// /// Objektnamen public string AuditTable() { return "DogWalkerProfiles"; } public AuditableOptions Options() { return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete; } #endregion } }