using gehGassi.Domain.Common;
using gehGassi.Domain.Dogs;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System;
using System.ComponentModel.DataAnnotations;
namespace gehGassi.Web.Models
{
///
/// Viewmodel für eine öffentliche Anfrage mit Namen aufgelöst
///
public class PublicWalkRequestWithNamesVm : SyncEntityListVm
{
///
/// Id des App-Users / Hundebesitzers der die Anfrage erstellt hat
/// Ist eine AppUserId
///
public string DogOwnerId { get; set; }
///
/// Name des Hundebesitzers
///
[Display(Name = "PublicWalkRequest_DogOwnerName")]
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; }
///
/// Welche Art der Anfrage?
///
[Display(Name = "PublicWalkRequest_RequestType")]
public PublicWalkRequestTypeVm RequestType { get; set; }
///
/// Startdatum und Uhrzeit
///
[Display(Name = "PublicWalkRequest_StartDate")]
public DateTimeOffset StartDate { get; set; }
///
/// Enddatum und Urzeit
///
[Display(Name = "PublicWalkRequest_EndDate")]
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; }
///
/// 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
///
[Display(Name = "PublicWalkRequest_DogCount")]
public int DogCount { get; set; }
///
/// Exklusiv buchen?
///
public bool Exclusive { get; set; }
///
/// Preis den der Besitzer bereit ist zu zahlen
///
[Display(Name = "PublicWalkRequest_Price")]
public decimal Price { get; set; }
///
/// Zusatzinfo für den Auftrag
///
[Display(Name = "PublicWalkRequest_Info")]
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
///
[Display(Name = "PublicWalkRequest_DogWalkerName")]
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
///
[Display(Name = "PublicWalkRequest_ResponseCount")]
public int ResponseCount { get; set; }
///
/// Aktueller Status der öffentlichern Anfrage
///
[Display(Name = "PublicWalkRequest_Status")]
public PublicWalkRequestStatusVm Status { get; set; }
///
/// Datum wann ein Angebot angenommen wurde
///
[Display(Name = "PublicWalkRequest_PlacedDate")]
public DateTimeOffset? PlacedDate { get; set; }
///
/// Wann wurde die Anfrage erstellt?
///
public DateTimeOffset Created { get; set; }
}
///
/// Viewmodel für eine öffentliche Anfrage mit Namen aufgelöst für Listen
///
public class PublicWalkRequestListVm : SyncEntityListVm
{
///
/// 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 - 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; }
///
/// Welche Art der Anfrage?
///
public PublicWalkRequestTypeVm RequestType { get; set; }
///
/// Welche Art der Anfrage?
///
public string RequestTypeText { get; set; }
///
/// Startdatum und Uhrzeit
///
public DateTimeOffset StartDate { get; set; }
///
/// Enddatum und Urzeit
///
public DateTimeOffset EndDate { get; set; }
///
/// Anzahl der Hunde
///
public int DogCount { get; set; }
///
/// Preis den der Besitzer bereit ist zu zahlen
///
public decimal Price { get; set; }
///
/// Offen als Ausschreibung bis... Ablaufdatum
///
public DateTimeOffset ExpirationDate { get; set; }
///
/// Anzahl der Antworten
///
public int ResponseCount { get; set; }
///
/// Aktueller Status der öffentlichern Anfrage
///
public PublicWalkRequestStatusVm Status { get; set; }
///
/// Aktueller Status der öffentlichern Anfrage
///
public string StatusText { get; set; }
///
/// Datum wann ein Angebot angenommen wurde
///
public DateTimeOffset? PlacedDate { get; set; }
///
/// Wann wurde die Anfrage erstellt?
///
public DateTimeOffset Created { get; set; }
}
}