using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Drawing; using System.Text; using gehGassi.Dto.Common; using gehGassi.Dto.Dogs; namespace gehGassi.Dto.Walks { /// /// Dto für eine öffentliche Anfrage /// public class PublicWalkRequestDto : SyncEntityDto { /// /// Id des App-Users / Hundebesitzers der die Anfrage erstellt hat /// Ist eine AppUserId /// [Required] [MaxLength(128)] public string DogOwnerId { get; set; } /// /// Abhol-Adresse /// public AddressDto PickupAddress { get; set; } /// /// Breitengrad der Adresse /// public double Lat { get; set; } /// /// Längengrad der Adresse /// public double Lng { get; set; } /// /// Welche Art der Anfrage? /// [Required] public PublicWalkRequestTypeDto RequestType { get; set; } /// /// Startdatum und Uhrzeit /// [Required] public DateTimeOffset StartDate { get; set; } /// /// Enddatum und Urzeit /// [Required] public DateTimeOffset EndDate { get; set; } /// /// Id des Hundes /// [Required] [MaxLength(128)] public string DogId { get; set; } /// /// Jsonliste mit Id´s der Hunde die ausgewählt wurden /// public string DogsJson { get; set; } /// /// Anzahl der Hunde /// [Required] public int DogCount { get; set; } /// /// Exklusiv buchen? /// [Required] public bool Exclusive { get; set; } /// /// Preis den der Besitzer bereit ist zu zahlen /// [Required] public decimal Price { get; set; } /// /// Zusatzinfo für den Auftrag /// [MaxLength(500)] public string Info { get; set; } /// /// Offen als Ausschreibung bis... Ablaufdatum /// public DateTimeOffset ExpirationDate { get; set; } /// /// Id des Walkers der den Auftrag erhalten hat /// Ist eine AppUserId /// [MaxLength(128)] public string DogWalkerId { get; set; } /// /// Zuordnung zum angenommenen Angebot /// public string PublicWalkResponseId { get; set; } /// /// Anzahl der Antworten /// public int ResponseCount { get; set; } /// /// Aktueller Status der öffentlichern Anfrage /// public PublicWalkRequestStatusDto Status { get; set; } /// /// Datum wann ein Angebot angenommen wurde /// public DateTimeOffset? PlacedDate { get; set; } /// /// Wann wurde die Anfrage erstellt? /// public DateTimeOffset Created { get; set; } } /// /// Dto für das Anlegen einer öffentlichen Anfrage /// public class PublicWalkRequestCreateDto : SyncEntityDto { /// /// Id des App-Users / Hundebesitzers der die Anfrage erstellt hat /// Ist eine AppUserId /// [Required] [MaxLength(128)] public string DogOwnerId { get; set; } /// /// Abhol-Adresse /// [Required] public AddressDto PickupAddress { get; set; } /// /// Breitengrad der Adresse /// public double Lat { get; set; } /// /// Längengrad der Adresse /// public double Lng { get; set; } /// /// Welche Art der Anfrage? /// [Required] public PublicWalkRequestTypeDto RequestType { get; set; } /// /// Startdatum und Uhrzeit /// [Required] public DateTimeOffset StartDate { get; set; } /// /// Enddatum und Urzeit /// [Required] public DateTimeOffset EndDate { get; set; } /// /// Id des Hundes /// [Required] [MaxLength(128)] public string DogId { get; set; } /// /// Jsonliste mit Id´s der Hunde die ausgewählt wurden /// public string DogsJson { get; set; } /// /// Anzahl der Hunde /// [Required] public int DogCount { get; set; } /// /// Exklusiv buchen? /// [Required] public bool Exclusive { get; set; } /// /// Preis den der Besitzer bereit ist zu zahlen /// [Required] public decimal Price { get; set; } /// /// Zusatzinfo für den Auftrag /// [MaxLength(500)] public string Info { get; set; } /// /// Offen als Ausschreibung bis... Ablaufdatum /// public DateTimeOffset ExpirationDate { get; set; } /// /// Wann wurde die Anfrage erstellt? /// public DateTimeOffset Created { get; set; } } /// /// Dto für öffentliche Anfragen mit Namen aufgelöst /// public class PublicWalkRequestWithNamesDto : SyncEntityDto { /// /// Id des App-Users / Hundebesitzers der die Anfrage erstellt hat /// Ist eine AppUserId /// public string DogOwnerId { get; set; } /// /// Name des Hundebesitzers /// public string DogOwnerName { get; set; } /// /// Foto des Hundebesitzers /// public string DogOwnerPhoto { get; set; } /// /// Abholadresse - Adresszeile 1 /// public string PickupAddress_AddressLine1 { get; set; } /// /// Abholadresse - Adresszeile 2 /// public string PickupAddress_AddressLine2 { get; set; } /// /// Abholadresse - Stadt / Ort /// public string PickupAddress_City { get; set; } /// /// Abholadresse - PLZ /// public string PickupAddress_Zip { get; set; } /// /// Abholadresse - Bundesland / Staat /// public string PickupAddress_State { get; set; } /// /// Abholadresse - ISO2 Ländercode /// public string PickupAddress_CountryCode { get; set; } /// /// Breitengrad der Adresse /// public double Lat { get; set; } /// /// Längengrad der Adresse /// public double Lng { get; set; } /// /// Welche Art der Anfrage? /// public PublicWalkRequestTypeDto RequestType { get; set; } /// /// Startdatum und Uhrzeit /// public DateTimeOffset StartDate { get; set; } /// /// Enddatum und Urzeit /// public DateTimeOffset EndDate { get; set; } /// /// Id des Hundes /// public string DogId { get; set; } /// /// Name des Hundes /// public string DogName { get; set; } /// /// Foto des Hundes /// public string DogPhoto { get; set; } /// /// Liste der Hunde /// public List Dogs { get; set; } /// /// Anzahl der Hunde /// public int DogCount { get; set; } /// /// Exklusiv buchen? /// public bool Exclusive { get; set; } /// /// Preis den der Besitzer bereit ist zu zahlen /// public decimal Price { get; set; } /// /// Zusatzinfo für den Auftrag /// public string Info { get; set; } /// /// Offen als Ausschreibung bis... Ablaufdatum /// public DateTimeOffset ExpirationDate { get; set; } /// /// Id des Walkers der den Auftrag erhalten hat /// Ist eine AppUserId /// public string DogWalkerId { get; set; } /// /// Name des Dogwalkers wenn selektiert /// public string DogWalkerName { get; set; } /// /// Foto des Dogwalkers wenn gesetzt /// public string DogWalkerPhoto { get; set; } /// /// Zuordnung zum angenommenen Angebot /// public string PublicWalkResponseId { get; set; } /// /// Anzahl der Antworten /// public int ResponseCount { get; set; } /// /// Aktueller Status der öffentlichern Anfrage /// public PublicWalkRequestStatusDto Status { get; set; } /// /// Datum wann ein Angebot angenommen wurde /// public DateTimeOffset? PlacedDate { get; set; } #region Erweiterung Blockier- und Sperrinfo /// /// Hundebesitzer ist blockiert /// public bool Blocked { get; set; } /// /// Hundebesitzer ist gesperrt /// public bool Locked { get; set; } #endregion /// /// Wann wurde die Anfrage erstellt? /// public DateTimeOffset Created { get; set; } } /// /// Dto für öffentliche Anfragen mit Namen aufgelöst und dem Antwort-Status für einen DogWalker /// public class PublicWalkRequestWithNamesAndResponseStatusDto : PublicWalkRequestWithNamesDto { /// /// Antwort-Status für einen Dogwalker wenn es schon eine Antwort gibt. Null sonst /// public PublicWalkResponseStatusDto? ResponseStatus { get; set; } /// /// Wurde der Hundebesitzer vom Walker blockiert? /// public bool DogOwnerBlocked { get; set; } /// /// Ist der Hundebesitzer gesperrt? /// public bool DogOwnerLocked { get; set; } } }