480 lines
13 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.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; }
}
}