Florian Mihalits ada8b7a200 Add payment types for walks and update related models
This commit introduces new payment types, including "MangoPay" and "Cash", to the localization resource files for both German and English. A new enum `WalkPaymentType` is created to represent these payment types, and the `Walk` class is updated to include a required `PaymentType` property of this enum type.

The database context is modified to add a `PaymentType` column to the `Walks` table, accompanied by a migration to implement this change and set a default value. The `WalkController` is updated to support filtering by the new `PaymentType` field, and the mapping profile is enhanced to include mappings for `WalkPaymentType` and its view model counterpart.

View models are also updated to incorporate the new `PaymentType` and its display name. Front-end TypeScript files are adjusted to utilize the new `WalkPaymentType` enum and related properties, while the UI is enhanced to display the payment type in the details view of walks. Version numbers in various configuration files are incremented to reflect these changes.
2025-06-30 11:06:30 +02:00

1772 lines
47 KiB
C#

using System.ComponentModel.DataAnnotations;
namespace gehGassi.Web.Models
{
/// <summary>
/// Fido-Credentialtype VM
/// </summary>
public enum FidoCredentialTypeVm
{
/// <summary>
/// Authentifizierung durch ein Gerät / OS
/// </summary>
[Display(Name = "FidoCredentialType_Platform")]
Platform = 1,
/// <summary>
/// Authentifizierung durch ein Token. z.b. YubiKey
/// </summary>
[Display(Name = "FidoCredentialType_Crossplatform")]
Crossplatform = 2
}
/// <summary>
/// Viewmodel für ein Geschlecht
/// </summary>
public enum SexVm
{
/// <summary>
/// Undefiniert
/// </summary>
[Display(Name = "Sex_Undefined")]
Undefined = 0,
/// <summary>
/// Männlich
/// </summary>
[Display(Name = "Sex_Male")]
Male = 1,
/// <summary>
/// Weiblich
/// </summary>
[Display(Name = "Sex_Female")]
Female = 2,
/// <summary>
/// Weiblich
/// </summary>
[Display(Name = "Sex_Diverse")]
Diverse = 3,
/// <summary>
/// Weiblich
/// </summary>
[Display(Name = "Sex_Inter")]
Inter = 4,
/// <summary>
/// Weiblich
/// </summary>
[Display(Name = "Sex_Open")]
Open = 5
}
/// <summary>
/// Online / Offline Status von Entitäten.
/// Kann für die Synchronisation verwendet werden.
/// So können z.B. Rubriken ein- oder ausgeschalten werden
/// </summary>
public enum OnlineStatusVm
{
/// <summary>
/// Offline
/// </summary>
[Display(Name = "OnlineStatus_Offline")]
Offline = 0,
/// <summary>
/// Online
/// </summary>
[Display(Name = "OnlineStatus_Online")]
Online = 1
}
/// <summary>
/// Typ der FAQ - an wen richtet sich der Eintrag?
/// </summary>
public enum FaqTypeVm
{
/// <summary>
/// Hundebesitzer
/// </summary>
[Display(Name = "FaqType_DogOwner")]
DogOwner = 10,
/// <summary>
/// DogWalker
/// </summary>
[Display(Name = "FaqType_DogWalker")]
DogWalker = 20,
/// <summary>
/// Beide
/// </summary>
[Display(Name = "FaqType_Both")]
Both = 30
}
/// <summary>
/// Typ der Listung
/// </summary>
public enum ListingTypeVm
{
/// <summary>
/// Basis-Listung
/// </summary>
[Display(Name = "ListingType_Base")]
Base = 0,
/// <summary>
/// Silber-Listung
/// </summary>
[Display(Name = "ListingType_Silver")]
Silver = 10,
/// <summary>
/// Gold-Listung
/// </summary>
[Display(Name = "ListingType_Gold")]
Gold = 20,
/// <summary>
/// Platin-Listung
/// </summary>
[Display(Name = "ListingType_Platin")]
Platin = 30
}
/// <summary>
/// Status der Listung
/// </summary>
public enum ListingStatusVm
{
/// <summary>
/// Entwurf
/// </summary>
[Display(Name = "ListingStatus_Draft")]
Draft = 0,
/// <summary>
/// Reserviert
/// </summary>
[Display(Name = "ListingStatus_Reserverd")]
Reserverd = 10,
/// <summary>
/// Zu bezahlen
/// </summary>
[Display(Name = "ListingStatus_ToPay")]
ToPay = 20,
/// <summary>
/// Gebucht
/// </summary>
[Display(Name = "ListingStatus_Booked")]
Booked = 30,
/// <summary>
/// Laufend
/// </summary>
[Display(Name = "ListingStatus_Running")]
Running = 40,
/// <summary>
/// Beendet
/// </summary>
[Display(Name = "ListingStatus_Ended")]
Ended = 50,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "ListingStatus_Canceled")]
Canceled = 60
}
/// <summary>
/// Status der Werbung
/// </summary>
public enum AdvertisementStatusVm
{
/// <summary>
/// Entwurf
/// </summary>
[Display(Name = "AdvertisementStatus_Draft")]
Draft = 0,
/// <summary>
/// Zu bezahlen
/// </summary>
[Display(Name = "AdvertisementStatus_ToPay")]
ToPay = 10,
/// <summary>
/// Gebucht
/// </summary>
[Display(Name = "AdvertisementStatus_Booked")]
Booked = 20,
/// <summary>
/// Laufend
/// </summary>
[Display(Name = "AdvertisementStatus_Running")]
Running = 30,
/// <summary>
/// Beendet
/// </summary>
[Display(Name = "AdvertisementStatus_Ended")]
Ended = 40,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "AdvertisementStatus_Cancelled")]
Cancelled = 50
}
/// <summary>
/// Status eines Banners
/// </summary>
public enum BannerStatusVm
{
/// <summary>
/// Entwurf
/// </summary>
[Display(Name = "BannerStatus_Draft")]
Draft = 0,
/// <summary>
/// Zu bezahlen
/// </summary>
[Display(Name = "BannerStatus_ToPay")]
ToPay = 10,
/// <summary>
/// Gebucht
/// </summary>
[Display(Name = "BannerStatus_Booked")]
Booked = 20,
/// <summary>
/// Laufend
/// </summary>
[Display(Name = "BannerStatus_Running")]
Running = 30,
/// <summary>
/// Beendet
/// </summary>
[Display(Name = "BannerStatus_Ended")]
Ended = 40,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "BannerStatus_Cancelled")]
Cancelled = 50
}
/// <summary>
/// Status eines Pins
/// </summary>
public enum PinStatusVm
{
/// <summary>
/// Entwurf
/// </summary>
[Display(Name = "PinStatus_Draft")]
Draft = 0,
/// <summary>
/// Zu bezahlen
/// </summary>
[Display(Name = "PinStatus_ToPay")]
ToPay = 10,
/// <summary>
/// Gebucht
/// </summary>
[Display(Name = "PinStatus_Booked")]
Booked = 20,
/// <summary>
/// Laufend
/// </summary>
[Display(Name = "PinStatus_Running")]
Running = 30,
/// <summary>
/// Beendet
/// </summary>
[Display(Name = "PinStatus_Ended")]
Ended = 40,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "PinStatus_Cancelled")]
Cancelled = 50
}
/// <summary>
/// Geoeinschränkungen für Listungen und Werbungen
/// </summary>
public enum GeoModeVm
{
/// <summary>
/// Keine einschränkunge
/// </summary>
[Display(Name = "GeoMode_None")]
None = 0,
/// <summary>
/// Auf ein Land eingeschränkt
/// </summary>
[Display(Name = "GeoMode_Country")]
Country = 10,
/// <summary>
/// Auf ein Land und Bundesland eingeschränkt
/// </summary>
[Display(Name = "GeoMode_CountryAndState")]
CountryAndState = 20,
/// <summary>
/// Auf eine Geo-Location mit Radius eingeschränkt
/// </summary>
[Display(Name = "GeoMode_Location")]
Location = 30
}
/// <summary>
/// Zahlungsarten
/// </summary>
public enum PaymentTypeVm
{
/// <summary>
/// Keine
/// </summary>
[Display(Name = "PaymentType_None")]
None = 0,
/// <summary>
/// Rechnung
/// </summary>
[Display(Name = "PaymentType_Invoice")]
Invoice = 10,
/// <summary>
/// Klarna
/// </summary>
[Display(Name = "PaymentType_Klarna")]
Klarna = 20,
/// <summary>
/// PayPal
/// </summary>
[Display(Name = "PaymentType_PayPal")]
PayPal = 30
}
/// <summary>
/// Zahlungsstatus
/// </summary>
public enum PaymentStatusVm
{
/// <summary>
/// Kein Status
/// </summary>
[Display(Name = "PaymentStatus_None")]
None = 0,
/// <summary>
/// Anstehend
/// </summary>
[Display(Name = "PaymentStatus_Pending")]
Pending = 10,
/// <summary>
/// Authorisiert
/// </summary>
[Display(Name = "PaymentStatus_Authorized")]
Authorized = 20,
/// <summary>
/// Bezahlt
/// </summary>
[Display(Name = "PaymentStatus_Paid")]
Paid = 30,
///// <summary>
///// Teilweise Rückerstattung
///// </summary>
//[Display(Name = "PaymentStatus_PartiallyRefunded")]
//PartiallyRefunded = 35,
/// <summary>
/// Rückerstattet
/// </summary>
[Display(Name = "PaymentStatus_Refunded")]
Refunded = 40,
/// <summary>
/// Entwertet
/// </summary>
[Display(Name = "PaymentStatus_Voided")]
Voided = 50,
/// <summary>
/// Rückerstattet und von gehGassi bezahlt
/// </summary>
[Display(Name = "PaymentStatus_RefundendAndPayed")]
RefundendAndPayed = 60
}
/// <summary>
/// Zahlungsart für einen Walk
/// </summary>
public enum WalkPaymentTypeVm
{
/// <summary>
/// Mit MangoPay bezahlen (z.B. Kreditkarte)
/// </summary>
[Display(Name = "WalkPaymentType_MangoPay")]
MangoPay = 1,
/// <summary>
/// Barzahlung
/// </summary>
[Display(Name = "WalkPaymentType_Cash")]
Cash = 10
}
/// <summary>
/// Status einer Bestellung
/// </summary>
public enum OrderStatusVm
{
/// <summary>
/// Anstehend
/// </summary>
[Display(Name = "OrderStatus_Pending")]
Pending = 10,
/// <summary>
/// In Bearbeitung
/// </summary>
[Display(Name = "OrderStatus_Processing")]
Processing = 20,
/// <summary>
/// Abgeschlossen
/// </summary>
[Display(Name = "OrderStatus_Complete")]
Complete = 30,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "OrderStatus_Cancelled")]
Cancelled = 40
}
/// <summary>
/// Lieferart
/// </summary>
public enum ShipmentTypeVm
{
/// <summary>
/// Kein Versand
/// </summary>
[Display(Name = "ShipmentType_None")]
None = 1,
/// <summary>
/// Post
/// </summary>
[Display(Name = "ShipmentType_Postal")]
Postal = 10
}
/// <summary>
/// Lieferstatus
/// </summary>
public enum ShipmentStatusVm
{
/// <summary>
/// Kein Versand
/// </summary>
[Display(Name = "ShipmentStatus_ShippingNotRequired")]
ShippingNotRequired = 10,
/// <summary>
/// Noch nicht versendet
/// </summary>
[Display(Name = "ShipmentStatus_NotYetShipped")]
NotYetShipped = 20,
/// <summary>
/// Teilweise versendet
/// </summary>
[Display(Name = "ShipmentStatus_PartiallyShipped")]
PartiallyShipped = 25,
/// <summary>
/// Versendet
/// </summary>
[Display(Name = "ShipmentStatus_Shipped")]
Shipped = 30,
/// <summary>
/// Zugestellt
/// </summary>
[Display(Name = "ShipmentStatus_Delivered")]
Delivered = 40
}
/// <summary>
/// Definiert die Sichtbarkeit von Shop-Items (Kategorien & Artikel) je nach Benutzergruppe
/// </summary>
public enum ShopVisibilityVm
{
/// <summary>
/// Nicht sichtbar
/// </summary>
[Display(Name = "ShopVisibility_None")]
None = 0,
/// <summary>
/// Sichtbar für Kunden
/// </summary>
[Display(Name = "ShopVisibility_Customers")]
Customers = 1,
/// <summary>
/// Sichtbar für App-User
/// </summary>
[Display(Name = "ShopVisibility_AppUserDogOwner")]
AppUserDogOwner = 10,
/// <summary>
/// App-User - Hundeausführer
/// </summary>
[Display(Name = "ShopVisibility_AppUserDogWalker")]
AppUserDogWalker = 20,
/// <summary>
/// App-User - Hundebesitzer & Hundeausführer
/// </summary>
[Display(Name = "ShopVisibility_AppUserBoth")]
AppUserBoth = 30,
/// <summary>
/// Sichtbar für alle, also Kunden Hundebesitzer und Hundeausführer
/// </summary>
[Display(Name = "ShopVisibility_All")]
All = 100
}
/// <summary>
/// Produkttypen für die Unterscheidung für gehGassi
/// </summary>
public enum ProductTypeVm
{
/// <summary>
/// Physisches Produkt
/// </summary>
[Display(Name = "ProductType_Physical")]
Physical = 1,
/// <summary>
/// Digitales Produkt / Download (z.B.: ein PDF)
/// </summary>
[Display(Name = "ProductType_Download")]
Download = 2,
/// <summary>
/// Eine Listung auf gehGassi
/// </summary>
[Display(Name = "ProductType_Listing")]
Listing = 10,
/// <summary>
/// Eine Werbung auf gehGassi
/// </summary>
[Display(Name = "ProductType_Advertisement")]
Advertisement = 20,
/// <summary>
/// Ein Pin auf gehGassi
/// </summary>
[Display(Name = "ProductType_Pin")]
Pin = 30,
/// <summary>
/// Ein Banner auf gehGassi
/// </summary>
[Display(Name = "ProductType_Banner")]
Banner = 40
}
/// <summary>
/// Art eines Preises für die Kalkulation
/// </summary>
public enum PriceTypeVm
{
/// <summary>
/// Je Stück
/// </summary>
[Display(Name = "PriceType_Piece")]
Piece = 1,
/// <summary>
/// Je Tag
/// </summary>
[Display(Name = "PriceType_Day")]
Day = 10,
/// <summary>
/// Je Monat
/// </summary>
[Display(Name = "PriceType_Month")]
Month = 20,
/// <summary>
/// Je Jahr
/// </summary>
[Display(Name = "PriceType_Year")]
Year = 30,
/// <summary>
/// Je Jahr
/// </summary>
[Display(Name = "PriceType_View")]
View = 40
}
/// <summary>
/// Wie sollen Preise berechnet werden, wenn ein Zeitraum unter dem Jahr gewählt wird
/// Es geht um mögliche Berechnungen eines aliquoten Anteils.
/// Z.B. Ein Jahr, wenn zum 1.1. aber erst später gebucht wird, dann nur Restmonate berechnen
/// </summary>
public enum PriceAliquotTypeVm
{
/// <summary>
/// Keine aliquote Berechnung möglich
/// </summary>
[Display(Name = "PriceAliquotType_None")]
None = 1,
/// <summary>
/// Basierend auf Tagen
/// </summary>
[Display(Name = "PriceAliquotType_Day")]
Day = 10,
/// <summary>
/// Basierend auf Monaten
/// </summary>
[Display(Name = "PriceAliquotType_Month")]
Month = 20
}
/// <summary>
/// Wenn es sich um ein Produkt mit dem PreisTyp auf Zeitbasis handelt
/// </summary>
public enum ProductStartTypeVm
{
/// <summary>
/// Beliebiger Startzeitpunkt
/// </summary>
[Display(Name = "ProductStartType_Any")]
Any = 1,
/// <summary>
/// Der erste eines Monats
/// </summary>
[Display(Name = "ProductStartType_FirstOfMonth")]
FirstOfMonth,
/// <summary>
/// Der erste eines Jahres
/// </summary>
[Display(Name = "ProductStartType_FirstOfYear")]
FirstOfYear
}
/// <summary>
/// Wo kann ein Banner plaziert werden
/// </summary>
public enum BannerLocationVm
{
/// <summary>
/// Keine
/// </summary>
[Display(Name = "BannerLocation_None")]
None = 0,
/// <summary>
/// Homescreen
/// </summary>
[Display(Name = "BannerLocation_Home")]
Home = 1,
/// <summary>
/// Nachrichten
/// </summary>
[Display(Name = "BannerLocation_Messages")]
Messages = 10,
/// <summary>
/// Termin anlegen
/// </summary>
[Display(Name = "BannerLocation_Appointment")]
Appointment = 20,
/// <summary>
/// Hundeprofil
/// </summary>
[Display(Name = "BannerLocation_DogProfile")]
DogProfile = 30,
/// <summary>
/// Ende eines Walks
/// </summary>
[Display(Name = "BannerLocation_WalkEnd")]
WalkEnd = 40,
/// <summary>
/// Erstregistrierung
/// </summary>
[Display(Name = "BannerLocation_Registration")]
Registration = 50,
/// <summary>
/// Favoriten
/// </summary>
[Display(Name = "BannerLocation_Favorites")]
Favorites = 60
}
/// <summary>
/// Banner-Größen
/// </summary>
public enum BannerSizeVm
{
/// <summary>
/// Standard: 320 x 50
/// </summary>
[Display(Name = "BannerSize_Standard")]
Standard = 1,
/// <summary>
/// Groß: 320 x 90
/// </summary>
[Display(Name = "BannerSize_Large")]
Large = 10,
/// <summary>
/// Medium rechteckig: 300 x 250
/// </summary>
[Display(Name = "BannerSize_MediumRectangular")]
MediumRectangular = 20
}
/// <summary>
/// Anrede
/// </summary>
public enum SalutationVm
{
/// <summary>
/// Frau
/// </summary>
[Display(Name = "Salutation_Mrs")]
Mrs = 1,
/// <summary>
/// Herr
/// </summary>
[Display(Name = "Salutation_Mr")]
Mr = 2,
/// <summary>
/// Firma
/// </summary>
[Display(Name = "Salutation_Company")]
Company = 3
}
/// <summary>
/// Gibt an wer eine Bestellung durchgeführt hat
/// </summary>
public enum OrderSourceVm
{
/// <summary>
/// Kunde - Werbepartner
/// </summary>
[Display(Name = "OrderSource_Customer")]
Customer = 1,
/// <summary>
/// App-User - Hundebesitzer
/// </summary>
[Display(Name = "OrderSource_AppUserDogOwner")]
AppUserDogOwner = 10,
/// <summary>
/// App-User - Hundeausführer
/// </summary>
[Display(Name = "OrderSource_AppUserDogWalker")]
AppUserDogWalker = 20,
/// <summary>
/// App-User - Hundebesitzer & Hundeausführer
/// </summary>
[Display(Name = "OrderSource_AppUserBoth")]
AppUserBoth = 30
}
/// <summary>
/// Art der Versandkostenberechnung
/// </summary>
public enum ShipmentCalculationTypeVm
{
/// <summary>
/// Nach Gewicht
/// </summary>
[Display(Name = "ShipmentCalculationType_Weight")]
Weight = 1,
/// <summary>
/// Nach Zwischensumme
/// </summary>
[Display(Name = "ShipmentCalculationType_Subtotal")]
Subtotal = 10
}
/// <summary>
/// Geschlecht eines Hunde
/// </summary>
public enum DogSexVm
{
/// <summary>
/// Rüde
/// </summary>
[Display(Name = "DogSex_MaleDog")]
MaleDog = 1,
/// <summary>
/// Hündin
/// </summary>
[Display(Name = "DogSex_FemaleDog")]
FemaleDog = 2
}
/// <summary>
/// Größe eines Hundes
/// </summary>
public enum DogSizeVm
{
/// <summary>
/// Kleiner Hund
/// </summary>
[Display(Name = "DogSize_Small")]
Small = 1,
/// <summary>
/// Mittelgroßer Hund
/// </summary>
[Display(Name = "DogSize_Middle")]
Middle = 2,
/// <summary>
/// Großer Hund
/// </summary>
[Display(Name = "DogSize_Big")]
Big = 3,
/// <summary>
/// Riesenrasse
/// </summary>
[Display(Name = "DogSize_Giant")]
Giant = 4
}
/// <summary>
/// Aggressionsgrad des Hundes
/// </summary>
public enum DogAggressionLevelVm
{
/// <summary>
/// Nieder
/// </summary>
[Display(Name = "DogAggressionLevel_Low")]
Low = 1,
/// <summary>
/// Mittel
/// </summary>
[Display(Name = "DogAggressionLevel_Medium")]
Medium = 2,
/// <summary>
/// Hoch
/// </summary>
[Display(Name = "DogAggressionLevel_High")]
High = 3
}
/// <summary>
/// Fütterungszeiten für einen Hund
/// </summary>
public enum DogFeedingTimesVm
{
/// <summary>
/// Morgens
/// </summary>
[Display(Name = "DogFeedingTimes_Morning")]
Morning = 1,
/// <summary>
/// Abends
/// </summary>
[Display(Name = "DogFeedingTimes_Evening")]
Evening = 2,
/// <summary>
/// Morgens & Abends
/// </summary>
[Display(Name = "DogFeedingTimes_Both")]
Both = 3,
/// <summary>
/// Individuell
/// </summary>
[Display(Name = "DogFeedingTimes_Individual")]
Individual = 4
}
/// <summary>
/// Status einer News
/// </summary>
public enum NewsStatusVm
{
/// <summary>
/// Entwurf
/// </summary>
[Display(Name = "NewsStatus_Draft")]
Draft = 0,
/// <summary>
/// Freizugeben
/// </summary>
[Display(Name = "NewsStatus_ToApprove")]
ToApprove = 10,
/// <summary>
/// Abgelehnt
/// </summary>
[Display(Name = "NewsStatus_Declined")]
Declined = 20,
/// <summary>
/// Genehmigt
/// </summary>
[Display(Name = "NewsStatus_Approved")]
Approved = 30,
/// <summary>
/// Laufend
/// </summary>
[Display(Name = "NewsStatus_Running")]
Running = 40,
/// <summary>
/// Beendet
/// </summary>
[Display(Name = "NewsStatus_Ended")]
Ended = 50,
/// <summary>
/// Manuell gestoppt
/// </summary>
[Display(Name = "NewsStatus_Stopped")]
Stopped = 100
}
/// <summary>
/// Definiert die Sichtbarkeit von News
/// </summary>
public enum NewsVisibilityVm
{
/// <summary>
/// Nicht sichtbar
/// </summary>
[Display(Name = "NewsVisibility_None")]
None = 1,
/// <summary>
/// Sichtbar für Hundebesitzer
/// </summary>
[Display(Name = "NewsVisibility_DogOwners")]
DogOwners = 10,
/// <summary>
/// Sichtbar für Hundeausführer
/// </summary>
[Display(Name = "NewsVisibility_DogWalkers")]
DogWalkers = 20,
/// <summary>
/// Sichtbar für Hundebesitzer und Hundeausführer
/// </summary>
[Display(Name = "NewsVisibility_DogWalkerAndOwners")]
DogWalkerAndOwners = 30
}
/// <summary>
/// Repräsentiert den Typen eines App-Users
/// </summary>
public enum AppUserTypeVm
{
/// <summary>
/// Hundebesitzer
/// </summary>
[Display(Name = "AppUserType_DogOwner")]
DogOwner = 10,
/// <summary>
/// Hundeausführer
/// </summary>
[Display(Name = "AppUserType_DogWalker")]
DogWalker = 20,
/// <summary>
/// Beides - Hundebesitzer und Hundeausführer
/// </summary>
[Display(Name = "AppUserType_Both")]
Both = 30
}
/// <summary>
/// Arten von Dog-Walker Anfragen
/// </summary>
public enum DogWalkRequestTypeVm
{
/// <summary>
/// Akzeptiert gar keine Anfragen....
/// </summary>
[Display(Name = "DogWalkRequestType_None")]
None = 0,
/// <summary>
/// Ausführen
/// </summary>
[Display(Name = "DogWalkRequestType_Walking")]
Walking = 1,
/// <summary>
/// Sitting
/// </summary>
[Display(Name = "DogWalkRequestType_Sitting")]
Sitting = 2,
/// <summary>
/// Beides
/// </summary>
[Display(Name = "DogWalkRequestType_Both")]
Both = 3
}
/// <summary>
/// Status eines Zertifikates
/// </summary>
public enum CertificateStatusVm
{
/// <summary>
/// Noch nicht verifiziert
/// </summary>
[Display(Name = "CertificateStatus_NotVerified")]
NotVerified = 1,
/// <summary>
/// Akzeptiert
/// </summary>
[Display(Name = "CertificateStatus_Accepted")]
Accepted = 2,
/// <summary>
/// Abgelehnt
/// </summary>
[Display(Name = "CertificateStatus_Declined")]
Declined = 10
}
/// <summary>
/// Modus in welchem sich die App befindet.
/// Ist wichtig für die Abfrage von Daten wenn der Benutzer beides ist
/// </summary>
public enum AppModeVm
{
/// <summary>
/// Hundebesitzer
/// </summary>
[Display(Name = "AppMode_DogOwner")]
DogOwner = 10,
/// <summary>
/// Hundeausführer
/// </summary>
[Display(Name = "AppMode_DogWalker")]
DogWalker = 20
}
/// <summary>
/// Typ des Feedbacks
/// </summary>
public enum AppFeedbackTypeVm
{
/// <summary>
/// Problem
/// </summary>
[Display(Name = "AppFeedbackType_Problem")]
Problem = 1,
/// <summary>
/// Idee
/// </summary>
[Display(Name = "AppFeedbackType_Idea")]
Idea = 20,
/// <summary>
/// Ich mag
/// </summary>
[Display(Name = "AppFeedbackType_Like")]
Like = 33,
/// <summary>
/// Ich mag nicht
/// </summary>
[Display(Name = "AppFeedbackType_DontLike")]
DontLike = 40,
/// <summary>
/// Allgemein
/// </summary>
[Display(Name = "AppFeedbackType_General")]
General = 100
}
/// <summary>
/// Status des Feedbacks
/// </summary>
public enum AppFeedbackStatusVm
{
/// <summary>
/// Offen
/// </summary>
[Display(Name = "AppFeedbackStatus_Open")]
Open = 1,
/// <summary>
/// Geschlossen
/// </summary>
[Display(Name = "AppFeedbackStatus_Closed")]
Closed = 10,
/// <summary>
/// Ignorieren
/// </summary>
[Display(Name = "AppFeedbackStatus_Ignore")]
Ignore = 20
}
/// <summary>
/// Auf welche Art und Weise eine Zahlung erfolgt ist
/// </summary>
public enum PayInTypeVm
{
/// <summary>
/// Kreditkarte CB, Visa, Mastercard
/// </summary>
[Display(Name = "PayInType_CB_VISA_MASTERCARD")]
CB_VISA_MASTERCARD = 1,
/// <summary>
/// American Express
/// </summary>
[Display(Name = "PayInType_AMEX")]
AMEX = 20,
/// <summary>
/// Diners
/// </summary>
[Display(Name = "PayInType_DINERS")]
DINERS = 30,
/// <summary>
/// Maestro Karte
/// </summary>
[Display(Name = "PayInType_MAESTRO")]
MAESTRO = 40,
/// <summary>
/// Klarna - Sofort
/// </summary>
[Display(Name = "PayInType_KLARNA")]
KLARNA = 50,
/// <summary>
/// Giropay
/// </summary>
[Display(Name = "PayInType_GIRO")]
GIRO = 60,
/// <summary>
/// PayPal
/// </summary>
[Display(Name = "PayInType_PAYPAL")]
PAYPAL = 70
}
/// <summary>
/// Status einer Reklamation
/// </summary>
public enum WalkComplaintStatusVm
{
/// <summary>
/// Offen
/// </summary>
[Display(Name = "WalkComplaintStatus_Open")]
Open = 1,
/// <summary>
/// In Bearbeitung
/// </summary>
[Display(Name = "WalkComplaintStatus_InProgress")]
InProgress = 10,
/// <summary>
/// Gelöst, Walker normal bezahlen
/// </summary>
[Display(Name = "WalkComplaintStatus_Resolved_Pay")]
Resolved_Pay = 20,
/// <summary>
/// Gelöst, Hundebesitzer bekommt Geld zurück
/// </summary>
[Display(Name = "WalkComplaintStatus_Resolved_Refund")]
Resolved_Refund = 30,
/// <summary>
/// Gelöst, Hundebesitzer bekommt Geld zurück, Walker bekommt Geld von gehgassi
/// </summary>
[Display(Name = "WalkComplaintStatus_Resolved_Gehgassi")]
Resolved_Gehgassi = 40
}
/// <summary>
/// Art der Beschwerde
/// </summary>
public enum WalkComplaintTypeVm
{
/// <summary>
/// Der Walk/Das Sitting wurde nicht durchgeführt.
/// </summary>
[Display(Name = "WalkComplaintType_NoWalk")]
NoWalk = 10,
/// <summary>
/// Der Walk/Das Sitting war zu kurz. (zu spät gestartet etc.)
/// </summary>
[Display(Name = "WalkComplaintType_ShortWalk")]
ShortWalk = 20,
/// <summary>
/// Der/Die Hunde/e sind in einem nicht akzeptablen Zustand retour gekommen.
/// </summary>
[Display(Name = "WalkComplaintType_Condition")]
Condition = 30,
/// <summary>
/// Sonstiger Grund diesen Walk/Sitting betreffend.
/// </summary>
[Display(Name = "WalkComplaintType_Other")]
Other = 100
}
/// <summary>
/// Wer hat die Beschwerde eingereicht?
/// </summary>
public enum WalkComplaintSourceVm
{
/// <summary>
/// Hundebesitzer
/// </summary>
[Display(Name = "WalkComplaintSource_DogOwner")]
DogOwner = 10,
/// <summary>
/// Hundeausführer
/// </summary>
[Display(Name = "WalkComplaintSource_DogWalker")]
DogWalker = 20,
}
public enum WalkTypeVm
{
/// <summary>
/// Anfrage basierend auf dem Schedule eine Walkers
/// </summary>
[Display(Name = "WalkType_Scheduled")]
Scheduled = 1,
/// <summary>
/// Direkte Anfrage an einen Walker
/// </summary>
[Display(Name = "WalkType_Direct")]
Direct = 2,
/// <summary>
/// Offene Anfrage an die Community
/// </summary>
[Display(Name = "WalkType_OpenRequest")]
OpenRequest = 3
}
/// <summary>
/// Welche Art von Service soll durchgeführt werden
/// </summary>
public enum WalkServiceTypeVm
{
/// <summary>
/// Walk
/// </summary>
[Display(Name = "WalkServiceType_Walking")]
Walking = 1,
/// <summary>
/// Sitting
/// </summary>
[Display(Name = "WalkServiceType_Sitting")]
Sitting = 2,
/// <summary>
/// Daycare
/// </summary>
[Display(Name = "WalkServiceType_DayCare")]
DayCare = 3
}
/// <summary>
/// Status einer Meldung
/// </summary>
public enum AppUserReportStatusVm
{
/// <summary>
/// Offfen
/// </summary>
[Display(Name = "AppUserReportStatus_Open")]
Open = 10,
/// <summary>
/// In Bearbeitung
/// </summary>
[Display(Name = "AppUserReportStatus_Processing")]
Processing = 20,
/// <summary>
/// Abgelehnt
/// </summary>
[Display(Name = "AppUserReportStatus_Rejected")]
Rejected = 30,
/// <summary>
/// Geschlossen ohne Aktion
/// </summary>
[Display(Name = "AppUserReportStatus_ClosedNoAction")]
ClosedNoAction = 40,
/// <summary>
/// Geschlossen und für eine bestimmte Zeit gesperrt
/// </summary>
[Display(Name = "AppUserReportStatus_ClosedLockedForTime")]
ClosedLockedForTime = 50,
/// <summary>
/// Geschlossen und für immer gesperrt
/// </summary>
[Display(Name = "AppUserReportStatus_ClosedLockedForever")]
ClosedLockedForever = 60,
/// <summary>
/// Geschlossen und Inhalt bearbeitet
/// </summary>
[Display(Name = "AppUserReportStatus_ClosedContentEdited")]
ClosedContentEdited = 100,
/// <summary>
/// Geschlossen und Inhalt gelöscht
/// </summary>
[Display(Name = "AppUserReportStatus_ClosedContentDeleted")]
ClosedContentDeleted = 110,
/// <summary>
/// Wiedereröffnet
/// </summary>
[Display(Name = "AppUserReportStatus_Reopened")]
Reopened = 200
}
/// <summary>
/// Bereich der von der Meldung betroffen ist
/// Ist abhängig davon wo in der App die Meldung erstellt wurde.
/// Beeinflusst auch, welche Felder/Infos gemeldet werden können.
/// </summary>
public enum AppUserReportSectionVm
{
/// <summary>
/// Hundeprofil
/// </summary>
[Display(Name = "AppUserReportSection_ProfileDog")]
ProfileDog = 10,
/// <summary>
/// Konversationen
/// </summary>
[Display(Name = "AppUserReportSection_Conversations")]
Conversations = 20,
/// <summary>
/// Nachrichten
/// </summary>
[Display(Name = "AppUserReportSection_Messages")]
Messages = 30,
/// <summary>
/// Konversation anlegen
/// </summary>
[Display(Name = "AppUserReportSection_ConversationCreate")]
ConversationCreate = 40,
/// <summary>
/// Profil Hundebesitzer
/// </summary>
[Display(Name = "AppUserReportSection_ProfileDogOwner")]
ProfileDogOwner = 50,
/// <summary>
/// Ratings Hund
/// </summary>
[Display(Name = "AppUserReportSection_RatingsDog")]
RatingsDog = 60,
/// <summary>
/// Ratings Hundebesitzer
/// </summary>
[Display(Name = "AppUserReportSection_RatingsDogOwner")]
RatingsDogOwner = 70,
/// <summary>
/// Meine Ratings
/// </summary>
[Display(Name = "AppUserReportSection_RatingsMy")]
RatingsMy = 80,
/// <summary>
/// Ratings Walker
/// </summary>
[Display(Name = "AppUserReportSection_RatingsWalker")]
RatingsWalker = 90,
/// <summary>
/// Walker Suche
/// </summary>
[Display(Name = "AppUserReportSection_WalkersSearch")]
WalkersSearch = 100,
/// <summary>
/// Walker Profil
/// </summary>
[Display(Name = "AppUserReportSection_ProfileWalker")]
ProfileWalker = 110,
/// <summary>
/// Offene Anfrage Hundebesitzer
/// </summary>
[Display(Name = "AppUserReportSection_OpenRequestDogOwner")]
OpenRequestDogOwner = 120,
/// <summary>
/// Offene Anfrage Walker
/// </summary>
[Display(Name = "AppUserReportSection_OpenRequestWalker")]
OpenRequestWalker = 130,
/// <summary>
/// Antwort auf offene Anfrage
/// </summary>
[Display(Name = "AppUserReportSection_OpenRequestResponse")]
OpenRequestResponse = 140,
/// <summary>
/// Walks Hundebesitzer
/// </summary>
[Display(Name = "AppUserReportSection_WalksDogOwner")]
WalksDogOwner = 150,
/// <summary>
/// Offene Anfrage Hundebesitzer Details
/// </summary>
[Display(Name = "AppUserReportSection_OpenRequestDogOwnerDetails")]
OpenRequestDogOwnerDetails = 160,
/// <summary>
/// Offene Anfrage Walker Details
/// </summary>
[Display(Name = "AppUserReportSection_OpenRequestWalkerDetails")]
OpenRequestWalkerDetails = 170,
/// <summary>
/// Offene Anfrage Antworten
/// </summary>
[Display(Name = "AppUserReportSection_OpenRequestResponses")]
OpenRequestResponses = 180,
/// <summary>
/// Walks Walker
/// </summary>
[Display(Name = "AppUserReportSection_WalksWalker")]
WalksWalker = 190,
/// <summary>
/// Walk Details Hundebesitzer
/// </summary>
[Display(Name = "AppUserReportSection_WalkDetailDogOwner")]
WalkDetailDogOwner = 200,
/// <summary>
/// Walk Details Walker
/// </summary>
[Display(Name = "AppUserReportSection_WalkDetailsWalker")]
WalkDetailsWalker = 210,
/// <summary>
/// Favoriten Hundebesitzer
/// </summary>
[Display(Name = "AppUserReportSection_FavouritesDogOwner")]
FavouritesDogOwner = 220,
/// <summary>
/// Favoriten Walker
/// </summary>
[Display(Name = "AppUserReportSection_FavouritesWalker")]
FavouritesWalker = 230,
/// <summary>
/// Home Hundebesitzer
/// </summary>
[Display(Name = "AppUserReportSection_HomeDogOwner")]
HomeDogOwner = 240,
/// <summary>
/// Home Walker
/// </summary>
[Display(Name = "AppUserReportSection_HomeWalker")]
HomeWalker = 250
}
/// <summary>
/// Typ der Meldung
/// </summary>
public enum AppUserReportTypeVm
{
/// <summary>
/// Anstößiger Inhalt
/// </summary>
[Display(Name = "AppUserReportType_Objectionable")]
Objectionable = 10,
/// <summary>
/// Politisch inkorrekt
/// </summary>
[Display(Name = "AppUserReportType_PoliticallyIncorrect")]
PoliticallyIncorrect = 20,
/// <summary>
/// Obszön
/// </summary>
[Display(Name = "AppUserReportType_Obscene")]
Obscene = 30,
/// <summary>
/// Unkorrekte Angabe
/// </summary>
[Display(Name = "AppUserReportType_IncorrectData")]
IncorrectData = 40,
/// <summary>
/// Aufdringlich
/// </summary>
[Display(Name = "AppUserReportType_Intrusive")]
Intrusive = 50
}
/// <summary>
/// Wie soll eine Blockierung bei einer Meldung durchgeführt werden
/// </summary>
public enum AppUserReportBlockTypeVm
{
/// <summary>
/// Nicht blockieren
/// </summary>
[Display(Name = "AppUserReportBlockType_NoBlock")]
NoBlock = 1,
/// <summary>
/// für eine bestimmte Zeit blockieren
/// </summary>
[Display(Name = "AppUserReportBlockType_BlockForTime")]
BlockForTime = 2,
/// <summary>
/// für immer blockieren
/// </summary>
[Display(Name = "AppUserReportBlockType_BlockForever")]
BlockForever = 3
}
/// <summary>
/// Art der öffentlichen Anfrage
/// </summary>
public enum PublicWalkRequestTypeVm
{
/// <summary>
/// Ausführen
/// </summary>
[Display(Name = "PublicWalkRequestType_Walking")]
Walking = 1,
/// <summary>
/// Sitting
/// </summary>
[Display(Name = "PublicWalkRequestType_Sitting")]
Sitting = 2
}
/// <summary>
/// Status der offenen Anfrage
/// </summary>
public enum PublicWalkRequestStatusVm
{
/// <summary>
/// Offen
/// </summary>
[Display(Name = "PublicWalkRequestStatus_Open")]
Open = 1,
/// <summary>
/// vergeben
/// </summary>
[Display(Name = "PublicWalkRequestStatus_Placed")]
Placed = 20,
/// <summary>
/// Abgelaufen
/// </summary>
[Display(Name = "PublicWalkRequestStatus_TimedOut")]
TimedOut = 30,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "PublicWalkRequestStatus_Cancelled")]
Cancelled = 40
}
/// <summary>
/// Status eines Walks
/// </summary>
public enum WalkStatusVm
{
/// <summary>
/// Angefragt
/// </summary>
[Display(Name = "WalkStatus_Requested")]
Requested = 1,
/// <summary>
/// Akzeptiert
/// </summary>
[Display(Name = "WalkStatus_Accepted")]
Accepted = 10,
/// <summary>
/// Abgelehnt
/// </summary>
[Display(Name = "WalkStatus_Declined")]
Declined = 20,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "WalkStatus_Cancelled")]
Cancelled = 30,
/// <summary>
/// Der Walk läuft
/// </summary>
[Display(Name = "WalkStatus_Started")]
Started = 40,
/// <summary>
/// Der Walk wurde beendet
/// </summary>
[Display(Name = "WalkStatus_Completed")]
Completed = 50,
/// <summary>
/// Der Walk wurde vom Hundebesitzer oder dem System betätigt
/// </summary>
[Display(Name = "WalkStatus_Confirmed")]
Confirmed = 60,
/// <summary>
/// Der Walk wurde reklamiert und es muss eine Lösung gesucht werden
/// </summary>
[Display(Name = "WalkStatus_Complained")]
Complained = 70,
/// <summary>
/// Reklamation gelöst
/// </summary>
[Display(Name = "WalkStatus_ComplainResolved")]
ComplainResolved = 80
}
/// <summary>
/// Wer hat etwas storniert
/// </summary>
public enum CancellationSourceVm
{
/// <summary>
/// Nicht storniert
/// </summary>
[Display(Name = "CancellationSource_None")]
None = 0,
/// <summary>
/// Hundebesitzer
/// </summary>
[Display(Name = "CancellationSource_DogOwner")]
DogOwner = 1,
/// <summary>
/// Hundeausführer
/// </summary>
[Display(Name = "CancellationSource_DogWalker")]
DogWalker = 2,
/// <summary>
/// von gehgassi / System
/// </summary>
[Display(Name = "CancellationSource_GehGassi")]
GehGassi = 10
}
/// <summary>
/// Definition von Rating-Zielen.
/// </summary>
public enum RatingTargetVm
{
/// <summary>
/// Hundebesitzer
/// </summary>
[Display(Name = "RatingTarget_Owner")]
Owner = 0,
/// <summary>
/// Walker
/// </summary>
[Display(Name = "RatingTarget_Walker")]
Walker = 1,
/// <summary>
/// Hund
/// </summary>
[Display(Name = "RatingTarget_Dog")]
Dog = 2,
/// <summary>
/// Einen einzelnen Walk
/// </summary>
[Display(Name = "RatingTarget_Walk")]
Walk = 3,
/// <summary>
/// Eine Tagesbetreuung
/// </summary>
[Display(Name = "RatingTarget_DayCare")]
DayCare = 4,
/// <summary>
/// Ein Sitting
/// </summary>
[Display(Name = "RatingTarget_Sitting")]
Sitting = 5
}
/// <summary>
/// Status eines Angebotes für eine öffentliche Anfrage
/// </summary>
public enum PublicWalkResponseStatusVm
{
/// <summary>
/// Warten auf Antwort
/// </summary>
[Display(Name = "PublicWalkResponseStatus_Awaiting")]
Awaiting = 1,
/// <summary>
/// Akzeptiert -> Walk erstellt
/// </summary>
[Display(Name = "PublicWalkResponseStatus_Accepted")]
Accepted = 10,
/// <summary>
/// Abgelehnt (vom Hundebesitzer)
/// </summary>
[Display(Name = "PublicWalkResponseStatus_Declined")]
Declined = 20,
/// <summary>
/// Geschlossen -> entwender Timout oder jemand anderer hat den Zuschlag erhalten
/// </summary>
[Display(Name = "PublicWalkResponseStatus_Closed")]
Closed = 30,
/// <summary>
/// Vom Walker storniert
/// </summary>
[Display(Name = "PublicWalkResponseStatus_Cancelled")]
Cancelled = 40
}
/// <summary>
/// Plattform die verwendet wird
/// </summary>
public enum PlatformVm
{
/// <summary>
/// Windows
/// </summary>
[Display(Name = "Platform_Windows")]
Windows = 1,
/// <summary>
/// Apple - Mac
/// </summary>
[Display(Name = "Platform_Mac")]
Mac = 2,
/// <summary>
/// Apple - IOS
/// </summary>
[Display(Name = "Platform_Ios")]
Ios = 3,
/// <summary>
/// Google - Android
/// </summary>
[Display(Name = "Platform_Android")]
Android = 4
}
/// <summary>
/// Status eines Gutschein Kampagne
/// </summary>
public enum VoucherCampaignStatusVm
{
/// <summary>
/// Entwurf
/// </summary>
[Display(Name = "VoucherCampaignStatus_Draft")]
Draft = 0,
/// <summary>
/// Zu bezahlen
/// </summary>
[Display(Name = "VoucherCampaignStatus_ToPay")]
ToPay = 10,
/// <summary>
/// Gebucht
/// </summary>
[Display(Name = "VoucherCampaignStatus_Booked")]
Booked = 20,
/// <summary>
/// Laufend
/// </summary>
[Display(Name = "VoucherCampaignStatus_Running")]
Running = 30,
/// <summary>
/// Beendet
/// </summary>
[Display(Name = "VoucherCampaignStatus_Ended")]
Ended = 40,
/// <summary>
/// Storniert
/// </summary>
[Display(Name = "VoucherCampaignStatus_Cancelled")]
Cancelled = 50
}
public enum VoucherCampaignTypeVm
{
/// <summary>
/// Ein Gutschein für alle
/// </summary>
[Display(Name = "VoucherCampaignType_SingleVoucher")]
SingleVoucher = 0,
/// <summary>
/// Mehrere Gutscheine je Nach Anzahl
/// </summary>
[Display(Name = "VoucherCampaignType_MultiVoucher")]
MultiVoucher = 10
}
/// <summary>
/// Länge des Abonnements
/// </summary>
public enum SubscriptionLengthVm
{
/// <summary>
/// Eine Woche
/// </summary>
[Display(Name = "SubscriptionLength_OneWeek")]
OneWeek = 1,
/// <summary>
/// Ein Monat
/// </summary>
[Display(Name = "SubscriptionLength_OneMonth")]
OneMonth = 2,
/// <summary>
/// Zwei Monate
/// </summary>
[Display(Name = "SubscriptionLength_TwoMonths")]
TwoMonths = 3,
/// <summary>
/// Drei Monate
/// </summary>
[Display(Name = "SubscriptionLength_ThreeMonths")]
ThreeMonths = 4,
/// <summary>
/// Sechs Monate
/// </summary>
[Display(Name = "SubscriptionLength_SixMonths")]
SixMonths = 5,
/// <summary>
/// Ein Jahr
/// </summary>
[Display(Name = "SubscriptionLength_OneYear")]
OneYear = 6
}
}