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