480 lines
13 KiB
C#
480 lines
13 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel.DataAnnotations;
|
||
using System.ComponentModel.DataAnnotations.Schema;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using gehGassi.Domain.Base;
|
||
using gehGassi.Domain.Common;
|
||
using gehGassi.Domain.Dogs;
|
||
using NetTopologySuite.Geometries;
|
||
|
||
namespace gehGassi.Domain.Walks
|
||
{
|
||
/// <summary>
|
||
/// Repräsentiert eine öffentliche Anfrage für einen Walk
|
||
/// </summary>
|
||
public class PublicWalkRequest : SyncEntity
|
||
{
|
||
/// <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 Address PickupAddress { get; set; }
|
||
|
||
/// <summary>
|
||
/// Geo-Koordinaten der Adresse
|
||
/// </summary>
|
||
public Point Location { get; set; }
|
||
|
||
/// <summary>
|
||
/// Welche Art der Anfrage?
|
||
/// </summary>
|
||
[Required]
|
||
public PublicWalkRequestType 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 PublicWalkRequestStatus 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; }
|
||
|
||
public PublicWalkRequest()
|
||
{
|
||
Location = new Point(0, 0);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Repräsentiert eine öffentliche Anfrage mit Namen aufgelöst
|
||
/// </summary>
|
||
public class PublicWalkRequestWithNames : SyncEntityVw
|
||
{
|
||
/// <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>
|
||
/// Geo-Koordinaten der Adresse
|
||
/// </summary>
|
||
public Point Location { get; set; }
|
||
|
||
/// <summary>
|
||
/// Welche Art der Anfrage?
|
||
/// </summary>
|
||
public PublicWalkRequestType 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>
|
||
/// Jsonliste mit Id´s der Hunde die ausgewählt wurden
|
||
/// </summary>
|
||
public string DogsJson { get; set; }
|
||
|
||
/// <summary>
|
||
/// Liste der Hunde
|
||
/// </summary>
|
||
[NotMapped]
|
||
public List<DogMinInfo> 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 PublicWalkRequestStatus 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>
|
||
/// Repräsentiert eine öffentliche Anfrage mit Namen aufgelöst und dem Antwort-Status eines Dogwalkers
|
||
/// </summary>
|
||
public class PublicWalkRequestWithNamesAndResponseStatus : SyncEntityVw
|
||
{
|
||
/// <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>
|
||
/// Wurde der Hundebesitzer vom Walker blockiert?
|
||
/// </summary>
|
||
public bool DogOwnerBlocked { get; set; }
|
||
|
||
/// <summary>
|
||
/// Ist der Hundebesitzer gesperrt?
|
||
/// </summary>
|
||
public bool DogOwnerLocked { 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>
|
||
/// Geo-Koordinaten der Adresse
|
||
/// </summary>
|
||
public Point Location { get; set; }
|
||
|
||
/// <summary>
|
||
/// Welche Art der Anfrage?
|
||
/// </summary>
|
||
public PublicWalkRequestType 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>
|
||
/// Jsonliste mit Id´s der Hunde die ausgewählt wurden
|
||
/// </summary>
|
||
public string DogsJson { get; set; }
|
||
|
||
/// <summary>
|
||
/// Liste der Hunde
|
||
/// </summary>
|
||
[NotMapped]
|
||
public List<DogMinInfo> 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 PublicWalkRequestStatus 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>
|
||
/// Antwort-Status für einen Dogwalker wenn es schon eine Antwort gibt. Null sonst
|
||
/// </summary>
|
||
public PublicWalkResponseStatus? ResponseStatus { get; set; }
|
||
}
|
||
|
||
|
||
}
|