using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Text; using System.Threading.Tasks; using gehGassi.Dto.Common; namespace gehGassi.Dto.Walks { /// /// DTO für einen Walk /// public class WalkDto : SyncEntityDto { /// /// Art der Walk Anfrage /// [Required] public WalkTypeDto Type { get; set; } /// /// Welche Art von Service soll durchgeführt werden /// [Required] public WalkServiceTypeDto ServiceType { get; set; } /// /// Id des Walkers /// [Required] [MaxLength(128)] public string DogWalkerId { get; set; } /// /// Id des Hundebesitzers /// [Required] [MaxLength(128)] public string DogOwnerId { get; set; } /// /// Id der öffentlichen Anfrage, wenn über diese erstellt /// [MaxLength(128)] public string PublicWalkRequestId { 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; } /// /// Startdatum des Walks mit Urhrzeit /// [Required] public DateTimeOffset Start { get; set; } /// /// Enddatum des Walks mit Uhrzeit /// [Required] public DateTimeOffset End { get; set; } /// /// Wo soll der Hunde abgeholt werden /// public AddressDto PickupAddress { get; set; } /// /// Breitengrad der Abhol-Adresse /// public double PickupAddressLat { get; set; } /// /// Längengrad der Abhol-Adresse /// public double PickupAddressLng { get; set; } /// /// Wo soll der Hunde zurückgegeben werden werden /// public AddressDto ReturnAddress { get; set; } /// /// Breitengrad der Rückgabe-Adresse /// public double ReturnAddressLat { get; set; } /// /// Längengrad der Rückgabe-Adresse /// public double ReturnAddressLng { get; set; } /// /// Preis für den Walk / Das Sitting. Wird gesetzt und kann entweder fix sein (öffentliche Anfrage) oder errechnet /// public decimal Price { get; set; } /// /// Zusatzinfo für den Walk. Z.B. bei Susi klingeln /// [MaxLength(500)] public string Info { get; set; } /// /// Status eines Walks /// [Required] public WalkStatusDto Status { get; set; } /// /// Wann wurde der Walk / Sitting gestartet? /// public DateTimeOffset? Started { get; set; } /// /// Wann wurde der Walk / Sitting beendet? /// public DateTimeOffset? Completed { get; set; } /// /// Wann wurde der Walk / Sitting bestätigt? /// public DateTimeOffset? Confirmed { get; set; } /// /// Wann wurde der Walk / Sitting reklamiert? /// public DateTimeOffset? Complained { get; set; } /// /// Optional: Grund für die Reklamation /// public string ComplainReason { get; set; } #region Status Infos /// /// Optional: Grund für die Ablehnung /// [MaxLength(500)] public string DeclinedReason { get; set; } /// /// Optional: Grund für die Stornierung /// [MaxLength(500)] public string CancelledReason { get; set; } /// /// Wer hat eine Stornierung durchgeführt /// [Required] public CancellationSourceDto CancelledBy { get; set; } /// /// Anmerkungen vom Walker nach dem Abschluss /// [MaxLength(500)] public string CompletedInfo { get; set; } /// /// Kotabsatz? /// [Required] public bool Defactation { get; set; } #endregion /// /// Zahlungsstatus des Walks /// [Required] public PaymentStatusDto PaymentStatus { get; set; } /// /// Zahlungsart für den Walk /// public WalkPaymentTypeDto PaymentType { get; set; } /// /// Datum der Erstellung des Walks /// [Required] public DateTimeOffset Created { get; set; } } }