using gehGassi.Dto.Common;
using gehGassi.Dto.Dogs;
using System.Collections.Generic;
using System;
using gehGassi.Domain.Common;
using gehGassi.Domain.Dogs;
using System.ComponentModel.DataAnnotations.Schema;
namespace gehGassi.Web.Models
{
///
/// Viewmodel für Walks mit Namen aufgelöst
///
public class WalkWithNamesVm : SyncEntityListVm
{
///
/// Art der Walk Anfrage
///
public WalkTypeVm Type { get; set; }
///
/// Welche Art von Service soll durchgeführt werden
///
public WalkServiceTypeVm ServiceType { get; set; }
///
/// Id des Walkers
///
public string DogWalkerId { get; set; }
///
/// Name des DogWalkers
///
public string DogWalkerName { get; set; }
///
/// Foto des Dogwalkers
///
public string DogWalkerPhoto { get; set; }
///
/// Id des Hundebesitzers
///
public string DogOwnerId { get; set; }
///
/// Name des Hundebesitzers
///
public string DogOwnerName { get; set; }
///
/// Foto des Hundebesitzers
///
public string DogOwnerPhoto { get; set; }
///
/// Id der öffentlichen Anfrage, wenn über diese erstellt
///
public string PublicWalkRequestId { get; set; }
///
/// Jsonliste mit Id´s der Hunde die ausgewählt wurden
///
public string DogsJson { get; set; }
///
/// Liste der Hunde
///
[NotMapped]
public List Dogs { get; set; }
///
/// Anzahl der Hunde
///
public int DogCount { get; set; }
///
/// Startdatum des Walks mit Urhrzeit
///
public DateTimeOffset Start { get; set; }
///
/// Enddatum des Walks mit Uhrzeit
///
public DateTimeOffset End { 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; }
///
/// RückgabeAdresse - Adresszeile 1
///
public string ReturnAddress_AddressLine1 { get; set; }
///
/// RückgabeAdresse - Adresszeile 2
///
public string ReturnAddress_AddressLine2 { get; set; }
///
/// RückgabeAdresse - Stadt / Ort
///
public string ReturnAddress_City { get; set; }
///
/// RückgabeAdresse - PLZ
///
public string ReturnAddress_Zip { get; set; }
///
/// RückgabeAdresse - Bundesland / Staat
///
public string ReturnAddress_State { get; set; }
///
/// RückgabeAdresse - ISO2 Ländercode
///
public string ReturnAddress_CountryCode { 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
///
public string Info { get; set; }
///
/// Status eines Walks
///
public WalkStatusVm 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
///
public string DeclinedReason { get; set; }
///
/// Optional: Grund für die Stornierung
///
public string CancelledReason { get; set; }
///
/// Wer hat eine Stornierung durchgeführt
///
public CancellationSourceVm CancelledBy { get; set; }
///
/// Anmerkungen vom Walker nach dem Abschluss
///
public string CompletedInfo { get; set; }
///
/// Kotabsatz?
///
public bool Defactation { get; set; }
#endregion
#region Payment
///
/// Zahlungsstatus des Walks
///
public PaymentStatusVm PaymentStatus { get; set; }
///
/// Zahlungsart des Walks
///
public WalkPaymentTypeVm PaymentType { get; set; }
#endregion
///
/// Datum der Erstellung des Walks
///
public DateTimeOffset Created { get; set; }
}
///
/// Viewmodel für Walks mit Namen aufgelöst für listen
///
public class WalkWithNamesListVm : SyncEntityListVm
{
///
/// Art der Walk Anfrage
///
public WalkTypeVm Type { get; set; }
///
/// Art der Walk Anfrage
///
public string TypeText { get; set; }
///
/// Welche Art von Service soll durchgeführt werden
///
public WalkServiceTypeVm ServiceType { get; set; }
///
/// Welche Art von Service soll durchgeführt werden
///
public string ServiceTypeText { get; set; }
///
/// Id des Walkers
///
public string DogWalkerId { get; set; }
///
/// Name des DogWalkers
///
public string DogWalkerName { get; set; }
///
/// Foto des Dogwalkers
///
public string DogWalkerPhoto { get; set; }
///
/// Id des Hundebesitzers
///
public string DogOwnerId { get; set; }
///
/// Name des Hundebesitzers
///
public string DogOwnerName { get; set; }
///
/// Foto des Hundebesitzers
///
public string DogOwnerPhoto { get; set; }
///
/// Id der öffentlichen Anfrage, wenn über diese erstellt
///
public string PublicWalkRequestId { get; set; }
///
/// Anzahl der Hunde
///
public int DogCount { get; set; }
///
/// Startdatum des Walks mit Urhrzeit
///
public DateTimeOffset Start { get; set; }
///
/// Enddatum des Walks mit Uhrzeit
///
public DateTimeOffset End { get; set; }
///
/// Abholadresse - Stadt / Ort
///
public string PickupAddress_City { get; set; }
///
/// Abholadresse - PLZ
///
public string PickupAddress_Zip { get; set; }
///
/// Abholadresse - ISO2 Ländercode
///
public string PickupAddress_CountryCode { get; set; }
///
/// RückgabeAdresse - Stadt / Ort
///
public string ReturnAddress_City { get; set; }
///
/// RückgabeAdresse - PLZ
///
public string ReturnAddress_Zip { get; set; }
///
/// RückgabeAdresse - ISO2 Ländercode
///
public string ReturnAddress_CountryCode { 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; }
///
/// Status eines Walks
///
public WalkStatusVm Status { get; set; }
///
/// Status eines Walks
///
public string StatusText { 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; }
#region Payment
///
/// Zahlungsstatus des Walks
///
public PaymentStatusVm PaymentStatus { get; set; }
///
/// Zahlungsstatus des Walks
///
public string PaymentStatusText { get; set; }
///
/// Welche Art von Bezahlung wurde verwendet
///
public WalkPaymentTypeVm PaymentType { get; set; }
///
/// Welche Art von Bezahlung wurde verwendet
///
public string PaymentTypeText { get; set; }
#endregion
///
/// Datum der Erstellung des Walks
///
public DateTimeOffset Created { get; set; }
}
}