- Updated `Walk` class to include `PaymentType` property. - Introduced `WalkPaymentTypeDto` enum for payment types. - Modified DTOs (`PublicWalkRequestAcceptDto`, `WalkCreateDto`, `WalkDto`, `WalkWithNamesDto`) to include `PaymentType`. - Enhanced `ApiWalksController` with new endpoints for accepting and canceling walks, and confirming walks with ratings. - Updated `MappingProfile` for seamless conversion between `WalkPaymentType` and `WalkPaymentTypeDto`.
243 lines
6.5 KiB
C#
243 lines
6.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using gehGassi.Dto.Common;
|
|
using gehGassi.Dto.Dogs;
|
|
|
|
namespace gehGassi.Dto.Walks
|
|
{
|
|
/// <summary>
|
|
/// DTO für Walks mit Namen aufgelöst
|
|
/// </summary>
|
|
public class WalkWithNamesDto : SyncEntityDto
|
|
{
|
|
/// <summary>
|
|
/// Art der Walk Anfrage
|
|
/// </summary>
|
|
public WalkTypeDto Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// Welche Art von Service soll durchgeführt werden
|
|
/// </summary>
|
|
public WalkServiceTypeDto ServiceType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Walkers
|
|
/// </summary>
|
|
public string DogWalkerId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des DogWalkers
|
|
/// </summary>
|
|
public string DogWalkerName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Foto des Dogwalkers
|
|
/// </summary>
|
|
public string DogWalkerPhoto { get; set; }
|
|
|
|
/// <summary>
|
|
/// Walker gesperrt
|
|
/// </summary>
|
|
public bool DogWalkerLocked { get; set; }
|
|
|
|
/// <summary>
|
|
/// Walker blockiert
|
|
/// </summary>
|
|
public bool DogWalkerBlocked { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Hundebesitzers
|
|
/// </summary>
|
|
public string DogOwnerId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des Hundebesitzers
|
|
/// </summary>
|
|
public string DogOwnerName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Foto des Hundebesitzers
|
|
/// </summary>
|
|
public string DogOwnerPhoto { get; set; }
|
|
|
|
/// <summary>
|
|
/// Hundebesitzer gesperrt
|
|
/// </summary>
|
|
public bool DogOwnerLocked { get; set; }
|
|
|
|
/// <summary>
|
|
/// Hundebesitzer blockiert
|
|
/// </summary>
|
|
public bool DogOwnerBlocked { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id der öffentlichen Anfrage, wenn über diese erstellt
|
|
/// </summary>
|
|
public string PublicWalkRequestId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Liste der Hunde
|
|
/// </summary>
|
|
public List<DogMinInfoDto> Dogs { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anzahl der Hunde
|
|
/// </summary>
|
|
public int DogCount { get; set; }
|
|
|
|
/// <summary>
|
|
/// Startdatum des Walks mit Urhrzeit
|
|
/// </summary>
|
|
public DateTimeOffset Start { get; set; }
|
|
|
|
/// <summary>
|
|
/// Enddatum des Walks mit Uhrzeit
|
|
/// </summary>
|
|
public DateTimeOffset End { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wo soll der Hunde abgeholt werden
|
|
/// </summary>
|
|
public AddressDto PickupAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// Breitengrad der Abhol-Adresse
|
|
/// </summary>
|
|
public double PickupAddressLat { get; set; }
|
|
|
|
/// <summary>
|
|
/// Längengrad der Abhol-Adresse
|
|
/// </summary>
|
|
public double PickupAddressLng { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wo soll der Hunde zurückgegeben werden werden
|
|
/// </summary>
|
|
public AddressDto ReturnAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// Breitengrad der Rückgabe-Adresse
|
|
/// </summary>
|
|
public double ReturnAddressLat { get; set; }
|
|
|
|
/// <summary>
|
|
/// Längengrad der Rückgabe-Adresse
|
|
/// </summary>
|
|
public double ReturnAddressLng { get; set; }
|
|
|
|
/// <summary>
|
|
/// Preis für den Walk / Das Sitting. Wird gesetzt und kann entweder fix sein (öffentliche Anfrage) oder errechnet
|
|
/// </summary>
|
|
public decimal Price { get; set; }
|
|
|
|
/// <summary>
|
|
/// Zusatzinfo für den Walk. Z.B. bei Susi klingeln
|
|
/// </summary>
|
|
public string Info { get; set; }
|
|
|
|
/// <summary>
|
|
/// Status eines Walks
|
|
/// </summary>
|
|
public WalkStatusDto Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde der Walk / Sitting gestartet?
|
|
/// </summary>
|
|
public DateTimeOffset? Started { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde der Walk / Sitting beendet?
|
|
/// </summary>
|
|
public DateTimeOffset? Completed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde der Walk / Sitting bestätigt?
|
|
/// </summary>
|
|
public DateTimeOffset? Confirmed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde der Walk / Sitting reklamiert?
|
|
/// </summary>
|
|
public DateTimeOffset? Complained { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional: Grund für die Reklamation
|
|
/// </summary>
|
|
public string ComplainReason { get; set; }
|
|
|
|
#region Status Infos
|
|
|
|
/// <summary>
|
|
/// Optional: Grund für die Ablehnung
|
|
/// </summary>
|
|
public string DeclinedReason { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional: Grund für die Stornierung
|
|
/// </summary>
|
|
public string CancelledReason { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wer hat eine Stornierung durchgeführt
|
|
/// </summary>
|
|
public CancellationSourceDto CancelledBy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anmerkungen vom Walker nach dem Abschluss
|
|
/// </summary>
|
|
public string CompletedInfo { get; set; }
|
|
|
|
/// <summary>
|
|
/// Kotabsatz?
|
|
/// </summary>
|
|
public bool Defactation { get; set; }
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Zahlungsstatus des Walks
|
|
/// </summary>
|
|
public PaymentStatusDto PaymentStatus { get; set; }
|
|
|
|
/// <summary>
|
|
/// Zahlungsart für den Walk
|
|
/// </summary>
|
|
public WalkPaymentTypeDto PaymentType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Gutscheins der verwendet wurde, wenn einer verwendet wurde
|
|
/// </summary>
|
|
public string? VoucherId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wert des Gutscheins - real verwendeter Wert
|
|
/// </summary>
|
|
public decimal VoucherAmmount { get; set; }
|
|
|
|
#region Erweiterung Blockier- und Sperrinfo
|
|
|
|
/// <summary>
|
|
/// Hundebesitzer ist blockiert
|
|
/// </summary>
|
|
public bool Blocked { get; set; }
|
|
|
|
/// <summary>
|
|
/// Hundebesitzer ist gesperrt
|
|
/// </summary>
|
|
public bool Locked { get; set; }
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Datum der Erstellung des Walks
|
|
/// </summary>
|
|
public DateTimeOffset Created { get; set; }
|
|
|
|
}
|
|
}
|