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
}
}