using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Text; using gehGassi.Dto.Common; namespace gehGassi.Dto.Dogs { /// /// Dto für einen Hund /// public class DogDto : SyncEntityDto { /// /// Id der Hunderasse /// [MaxLength(128)] public string DogRaceId { get; set; } /// /// Id des App-Users /// [Required] [MaxLength(128)] public string AppUserId { get; set; } #region Basis /// /// Nummer des Hundes /// [Required] [MaxLength(100)] public string Number { get; set; } /// /// Name des Hundes /// [Required] [MaxLength(100)] public string Name { get; set; } /// /// Optional: Beschreibung /// [MaxLength(5000)] public string Description { get; set; } /// /// Optional - Foto des Hundes /// [MaxLength(500)] public string Photo { get; set; } /// /// Geburtstag des Hundes /// public DateTimeOffset? BirthDate { get; set; } /// /// Geschlecht des Hundes /// [Required] public DogSexDto Sex { get; set; } /// /// Größe des Hundes /// [Required] public DogSizeDto Size { get; set; } #endregion #region Eigenschaften beim Gassi gehen /// /// Zieht an der Leine /// [Required] public bool PullsTheLeash { get; set; } /// /// Geht an der Leine /// [Required] public bool WalksTheLeash { get; set; } /// /// Kennt die Grundkommandos /// [Required] public bool BasicCommands { get; set; } /// /// Jagd andere Tiere /// [Required] public bool Hunter { get; set; } /// /// Versucht alles zu essen /// [Required] public bool Eating { get; set; } /// /// Springt Menschen an /// [Required] public bool Jumper { get; set; } #endregion #region Persönlichkeit /// /// Mag Erwachsene /// [Required] public bool LikesAdults { get; set; } /// /// Mag Kinder /// [Required] public bool LikesChildren { get; set; } /// /// Mag Artgenossen /// [Required] public bool LikesConspecifics { get; set; } /// /// Ist zutraulich /// [Required] public bool IsTrustful { get; set; } /// /// Ist aggressiv /// [Required] public bool IsAggressiv { get; set; } /// /// Ist ein Einzelgänger /// [Required] public bool IsLoneGunner { get; set; } /// /// Aggressionsgrad des Hundes, wenn aggressiv /// [Required] public DogAggressionLevelDto AggressionLevel { get; set; } #endregion #region Verhalten wenn jemand das Haus betritt /// /// Stürmt nach draussen /// [Required] public bool RushesOutside { get; set; } /// /// Ist ruhig und entspannt /// [Required] public bool IsCalm { get; set; } /// /// Pinkelt vor Aufregung /// [Required] public bool IsPeeing { get; set; } /// /// Ist schüchtern /// [Required] public bool IsShy { get; set; } /// /// Bewacht das zuhause /// [Required] public bool IsGuard { get; set; } #endregion #region Medical /// /// Unverträglichkeiten /// [MaxLength(5000)] public string Intolerances { get; set; } /// /// Ist gechipt /// [Required] public bool Chiped { get; set; } /// /// Ist sterilisiert? /// [Required] public bool Sterilized { get; set; } /// /// Medizinische Informationen /// [MaxLength(5000)] public string MedicalInfo { get; set; } #endregion #region Sitting /// /// Ist stubenrein? /// [Required] public bool HouseTrained { get; set; } /// /// Fütterungszeiten /// [Required] public DogFeedingTimesDto FeedingTimes { get; set; } /// /// Fütterungszeiten Individuell /// [MaxLength(500)] public string FeedingIndividual { get; set; } #endregion /// /// Rating-Statistiken für den Hund /// public RatingStatisticsDto RatingStatistics { get; set; } #region Erweiterung Blockier- und Sperrinfo /// /// Hundebesitzer ist blockiert /// public bool Blocked { get; set; } /// /// Hundebesitzer ist gesperrt /// public bool Locked { get; set; } #endregion /// /// Datum der Erstellung /// public DateTimeOffset Created { get; set; } public DogDto() { RatingStatistics = new RatingStatisticsDto(); } } /// /// DTO Min-Info eines Hundes /// public class DogMinInfoDto : SyncEntityDto { /// /// Id der Hunderasse /// public string DogRaceId { get; set; } /// /// Name der Hunderasse /// public string DogRaceName { get; set; } /// /// Name des Hundes /// public string Name { get; set; } /// /// Optional - Foto des Hundes /// public string Photo { get; set; } /// /// Geschlecht /// public DogSexDto Sex { get; set; } /// /// Größe des Hundes /// public DogSizeDto Size { get; set; } /// /// Geburtstag des Hundes /// public DateTimeOffset? BirthDate { get; set; } /// /// Durchschnittliche Bewertung /// public decimal AverageRating { get; set; } /// /// Anzahl Bewertungen /// public int TotalRatings { get; set; } #region Erweiterung Blockier- und Sperrinfo /// /// Hundebesitzer ist blockiert /// public bool Blocked { get; set; } /// /// Hundebesitzer ist gesperrt /// public bool Locked { get; set; } #endregion } }