gehgassi_backend/gehGassi.Dto/Walks/PublicWalkRequestDto.cs

423 lines
11 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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