2790 lines
57 KiB
TypeScript
2790 lines
57 KiB
TypeScript
/**
|
|
* Hilfsklasse für die Erstellung eines Guid
|
|
*/
|
|
export class Guid {
|
|
|
|
/**
|
|
* Erstellt einen Guid (siehe: http://stackoverflow.com/questions/26501688/a-typescript-guid-class)
|
|
*/
|
|
public static newGuid(): string {
|
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
|
var r = Math.random() * 16 | 0, v = c === "x" ? r : (r & 0x3 | 0x8);
|
|
return v.toString(16);
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Empty Guid
|
|
*/
|
|
public static empty(): string {
|
|
return "00000000-0000-0000-0000-000000000000";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Hilfsklasse für den Sprachwechsel
|
|
*/
|
|
export class ChangeLanguage {
|
|
culture: string;
|
|
returnUrl: string;
|
|
}
|
|
|
|
/**
|
|
* Hilfsklasse für die Anzeige von Audit-Infos
|
|
*/
|
|
export class AuditInfoParams {
|
|
key: string;
|
|
table: string;
|
|
constructor(key: string, table: string) {
|
|
this.key = key;
|
|
this.table = table;
|
|
}
|
|
}
|
|
|
|
/**Hilfsklasse Dictionary als Counter */
|
|
export class CounterDictionary {
|
|
key: string;
|
|
count: number;
|
|
|
|
constructor(key: string, count: number) {
|
|
this.key = key;
|
|
this.count = count;
|
|
}
|
|
}
|
|
|
|
/**Sex-Enum */
|
|
export enum Sex {
|
|
undefined,
|
|
male,
|
|
female,
|
|
diverse,
|
|
inter,
|
|
open
|
|
}
|
|
|
|
/**Typ eines Abos */
|
|
export enum SignalrMessageType {
|
|
/* Erfolg - GRÜN */
|
|
success = 10,
|
|
/* Warnung - ORANGE */
|
|
warning = 20,
|
|
/* Fehler - ROT */
|
|
alert = 30
|
|
}
|
|
|
|
/**Sex-Enum */
|
|
export enum OnlineStatus {
|
|
offline,
|
|
online
|
|
}
|
|
|
|
export enum FaqType {
|
|
dogOwner = 10,
|
|
dogWalker = 20,
|
|
both = 30
|
|
}
|
|
|
|
/**Definiert die Sichtbarkeit von Shop-Items (Kategorien & Artikel) je nach Benutzergruppe */
|
|
export enum ShopVisibility {
|
|
/**Nicht sichtbar */
|
|
None = 0,
|
|
/**Sichtbar für Kunden */
|
|
Customers = 1,
|
|
/**Sichtbar für Hundebesitzer */
|
|
AppUserDogOwner = 10,
|
|
/**Sichtbar für Hundeausführer */
|
|
AppUserDogWalker = 20,
|
|
/**Sichtbar für Hundebesitzer und Hundeausführer */
|
|
AppUserBoth = 30,
|
|
/**Sichtbar für alle, also Kunden Hundebesitzer und Hundeausführer */
|
|
All = 100
|
|
}
|
|
|
|
/**Produkttypen für die Unterscheidung für gehGassi */
|
|
export enum ProductType {
|
|
/**Physisches Produkt */
|
|
Physical = 1,
|
|
/**Digitales Produkt / Download (z.B.: ein PDF) */
|
|
Download = 2,
|
|
/**Eine Listung auf gehGassi */
|
|
Listing = 10,
|
|
/**Eine Werbung auf gehGassi */
|
|
Advertisement = 20,
|
|
/**Ein Pin auf gehGassi */
|
|
Pin = 30,
|
|
/**Banner auf gehGassi */
|
|
Banner = 40
|
|
}
|
|
|
|
/**Typ der Listung */
|
|
export enum ListingType {
|
|
/**Basis-Listung */
|
|
Base = 0,
|
|
/**Silber-Listung */
|
|
Silver = 10,
|
|
/**Gold-Listung */
|
|
Gold = 20,
|
|
/**Platin-Listung */
|
|
Platin = 30
|
|
}
|
|
|
|
/**Art eines Preises für die Kalkulation */
|
|
export enum PriceType {
|
|
/**Je Stück */
|
|
Piece = 1,
|
|
/**Je Tag */
|
|
Day = 10,
|
|
/**Je Monat */
|
|
Month = 20,
|
|
/**Je Jahr */
|
|
Year = 30,
|
|
/**Je View */
|
|
View = 40
|
|
}
|
|
|
|
/**
|
|
* 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
|
|
*/
|
|
export enum PriceAliquotType {
|
|
/**Keine aliquote Berechnung möglich */
|
|
None = 1,
|
|
/**Basierend auf Tagen */
|
|
Day = 10,
|
|
/**Basierend auf Monaten */
|
|
Month = 20
|
|
}
|
|
|
|
/**Wenn es sich um ein Produkt mit dem PreisTyp auf Zeitbasis handelt */
|
|
export enum ProductStartType {
|
|
/**Beliebiger Startzeitpunkt */
|
|
Any = 1,
|
|
/**Der erste eines Monats */
|
|
FirstOfMonth,
|
|
/**Der erste eines Jahres */
|
|
FirstOfYear
|
|
}
|
|
|
|
/**Status der Listung */
|
|
export enum ListingStatus {
|
|
/**Entwurf */
|
|
Draft = 0,
|
|
/**Reserviert */
|
|
Reserverd = 10,
|
|
/**Zu bezahlen */
|
|
ToPay = 20,
|
|
/**Gebucht */
|
|
Booked = 30,
|
|
/**Laufend */
|
|
Running = 40,
|
|
/**Beendet */
|
|
Ended = 50,
|
|
/**Storniert */
|
|
Canceled = 60
|
|
}
|
|
|
|
/**Status der Werbung */
|
|
export enum AdvertisementStatus {
|
|
/**Entwurf */
|
|
Draft = 0,
|
|
/**Zu bezahlen */
|
|
ToPay = 10,
|
|
/**Gebucht */
|
|
Booked = 20,
|
|
/**Laufend */
|
|
Running = 30,
|
|
/**Beendet */
|
|
Ended = 40,
|
|
/**Storniert */
|
|
Cancelled = 50
|
|
}
|
|
|
|
/**Zahlungsarten */
|
|
export enum PaymentType {
|
|
/**Keine */
|
|
None = 0,
|
|
/**Rechnung */
|
|
Invoice = 10,
|
|
/**Klarna */
|
|
Klarna = 20,
|
|
/**PayPal */
|
|
PayPal = 30
|
|
}
|
|
|
|
/**Zahlungsstatus */
|
|
export enum PaymentStatus {
|
|
/**Kein Status */
|
|
None = 0,
|
|
/**Anstehend */
|
|
Pending = 10,
|
|
/**Authorisiert */
|
|
Authorized = 20,
|
|
/**Bezahlt */
|
|
Paid = 30,
|
|
/**Teilweise Rückerstattung
|
|
PartiallyRefunded = 35,*/
|
|
/**Rückerstattet */
|
|
Refunded = 40,
|
|
/**Entwertet */
|
|
Voided = 50,
|
|
/**Rückerstattet gehgassi */
|
|
RefundendAndPayed = 60,
|
|
}
|
|
|
|
/**Geoeinschränkungen für Listungen und Werbungen */
|
|
export enum GeoMode {
|
|
/**Keine einschränkunge */
|
|
None = 0,
|
|
/**Auf ein Land eingeschränkt */
|
|
Country = 10,
|
|
/**Auf ein Land und Bundesland eingeschränkt */
|
|
CountryAndState = 20,
|
|
/**Auf eine Geo-Location mit Radius eingeschränkt */
|
|
Location = 30
|
|
}
|
|
|
|
/**Wo kann ein Banner plaziert werden */
|
|
export enum BannerLocation {
|
|
/**Keine */
|
|
None = 0,
|
|
/**Homescreen */
|
|
Home = 1,
|
|
/**Nachrichten */
|
|
Messages = 10,
|
|
/**Termin anlegen */
|
|
Appointment = 20,
|
|
/**Hundeprofil */
|
|
DogProfile = 30,
|
|
/**Ende eines Walks */
|
|
WalkEnd = 40,
|
|
/**Erstregistrierung */
|
|
Registration = 50,
|
|
/**Favoriten */
|
|
Favorites = 60
|
|
}
|
|
|
|
/**Banner-Größen */
|
|
export enum BannerSize {
|
|
/**Standard: 320 x 50 */
|
|
Standard = 1,
|
|
/**Groß: 320 x 90 */
|
|
Large = 10,
|
|
/**Medium rechteckig: 300 x 250 */
|
|
MediumRectangular = 20
|
|
}
|
|
|
|
/**Status eines Banners */
|
|
export enum BannerStatus {
|
|
/**Entwurf */
|
|
Draft = 0,
|
|
/**Zu bezahlen */
|
|
ToPay = 10,
|
|
/**Gebucht */
|
|
Booked = 20,
|
|
/**Laufend */
|
|
Running = 30,
|
|
/**Beendet */
|
|
Ended = 40,
|
|
/**Storniert */
|
|
Cancelled = 50
|
|
}
|
|
|
|
/**Status eines Pins */
|
|
export enum PinStatus {
|
|
/**Entwurf */
|
|
Draft = 0,
|
|
/**Zu bezahlen */
|
|
ToPay = 10,
|
|
/**Gebucht */
|
|
Booked = 20,
|
|
/**Laufend */
|
|
Running = 30,
|
|
/**Beendet */
|
|
Ended = 40,
|
|
/**Storniert */
|
|
Cancelled = 50
|
|
}
|
|
|
|
/**Gibt an wer eine Bestellung durchgeführt hat */
|
|
export enum OrderSource {
|
|
/**Kunde - Werbepartner */
|
|
Customer = 1,
|
|
/**Hundebesitzer */
|
|
DogOwner = 10,
|
|
/**Hundeausführer */
|
|
DogWalker = 20
|
|
}
|
|
|
|
/**Status einer Bestellung */
|
|
export enum OrderStatus {
|
|
/**Anstehend */
|
|
Pending = 10,
|
|
/**In Bearbeitung */
|
|
Processing = 20,
|
|
/**Abgeschlossen */
|
|
Complete = 30,
|
|
/**Storniert */
|
|
Cancelled = 40
|
|
}
|
|
|
|
/**Lieferart */
|
|
export enum ShipmentType {
|
|
/**Kein Versand */
|
|
None = 1,
|
|
/**Post */
|
|
Postal = 10
|
|
}
|
|
|
|
/**Lieferstatus */
|
|
export enum ShipmentStatus {
|
|
/**Kein Versand */
|
|
ShippingNotRequired = 10,
|
|
/**Noch nicht versendet */
|
|
NotYetShipped = 20,
|
|
/**Teilweise versendet */
|
|
PartiallyShipped = 25,
|
|
/**Versendet */
|
|
Shipped = 30,
|
|
/**Zugestellt */
|
|
Delivered = 40
|
|
}
|
|
|
|
/**Geschlecht eines Hunde */
|
|
export enum DogSex {
|
|
/**Rüde */
|
|
MaleDog = 1,
|
|
/**Hündin */
|
|
FemaleDog = 2
|
|
}
|
|
|
|
/**Größe eines Hundes */
|
|
export enum DogSize {
|
|
/**Kleiner Hund */
|
|
Small = 1,
|
|
/**Mittelgroßer Hund */
|
|
Middle = 2,
|
|
/**Großer Hund */
|
|
Big = 3,
|
|
/**Riesenrasse */
|
|
Giant = 4
|
|
}
|
|
|
|
/**Aggressionsgrad des Hundes */
|
|
export enum DogAggressionLevel {
|
|
/**Nieder */
|
|
Low = 1,
|
|
/**Mittel */
|
|
Medium = 2,
|
|
/**Hoch */
|
|
High = 3
|
|
}
|
|
|
|
/**Status einer News */
|
|
export enum NewsStatus {
|
|
/**Entwurf */
|
|
Draft = 0,
|
|
/**Freizugeben */
|
|
ToApprove = 10,
|
|
/**Abgelehnt */
|
|
Declined = 20,
|
|
/**Genehmigt */
|
|
Approved = 30,
|
|
/**Laufend */
|
|
Running = 40,
|
|
/**Beendet */
|
|
Ended = 50,
|
|
/**Manuell gestoppt */
|
|
Stopped = 100
|
|
}
|
|
|
|
/**Definiert die Sichtbarkeit von News */
|
|
export enum NewsVisibility {
|
|
/**Nicht sichtbar */
|
|
None = 1,
|
|
/**Sichtbar für Hundebesitzer */
|
|
DogOwners = 10,
|
|
/**Sichtbar für Hundeausführer */
|
|
DogWalkers = 20,
|
|
/**Sichtbar für Hundebesitzer und Hundeausführer */
|
|
DogWalkerAndOwners = 30
|
|
}
|
|
|
|
/**Definiert den Typen von App-Usern */
|
|
export enum AppUserType {
|
|
/**Hundebesitzer */
|
|
DogOwner = 10,
|
|
/**Hundeausführer */
|
|
DogWalker = 20,
|
|
/**Beides */
|
|
Both = 30
|
|
}
|
|
|
|
/**Typ des Feedbacks */
|
|
export enum AppFeedbackType {
|
|
/**Problem */
|
|
Problem = 1,
|
|
/**Idee */
|
|
Idea = 20,
|
|
/**Ich mag */
|
|
Like = 33,
|
|
/**Ich mag nicht */
|
|
DontLike = 40,
|
|
/**Allgemein */
|
|
General = 100
|
|
}
|
|
|
|
/**Status des Feedbacks */
|
|
export enum AppFeedbackStatus {
|
|
/**Offen */
|
|
Open = 1,
|
|
/**Geschlossen */
|
|
Closed = 10,
|
|
/**Ignorieren */
|
|
Ignore = 20
|
|
}
|
|
|
|
/**
|
|
* Modus in welchem sich die App befindet.
|
|
* Ist wichtig für die Abfrage von Daten wenn der Benutzer beides ist
|
|
*/
|
|
export enum AppMode {
|
|
/**Hundebesitzer */
|
|
DogOwner = 10,
|
|
/**Hundeausführer */
|
|
DogWalker = 20
|
|
}
|
|
|
|
/**Auf welche Art und Weise eine Zahlung erfolgt ist */
|
|
export enum PayInType {
|
|
/**Kreditkarte CB, Visa, Mastercard */
|
|
CB_VISA_MASTERCARD = 1,
|
|
/**American Express */
|
|
AMEX = 20,
|
|
/**Diners */
|
|
DINERS = 30,
|
|
/**Maestro Karte */
|
|
MAESTRO = 40,
|
|
/**Klarna - Sofort */
|
|
KLARNA = 50,
|
|
/**Giropay */
|
|
GIRO = 60,
|
|
/**PayPal */
|
|
PAYPAL = 70
|
|
}
|
|
|
|
/**Status einer Reklamation */
|
|
export enum WalkComplaintStatus {
|
|
/**Offen */
|
|
Open = 1,
|
|
/**In Bearbeitung */
|
|
InProgress = 10,
|
|
/**Gelöst, Walker normal bezahlen */
|
|
Resolved_Pay = 20,
|
|
/**Gelöst, Hundebesitzer bekommt Geld zurück */
|
|
Resolved_Refund = 30,
|
|
/**Gelöst, Hundebesitzer bekommt Geld zurück, Walker bekommt Geld von gehgassi */
|
|
Resolved_Gehgassi = 40
|
|
}
|
|
|
|
/**Art der Beschwerde */
|
|
export enum WalkComplaintType {
|
|
/**Walk hat nicht stattgefunden */
|
|
NoWalk = 10,
|
|
/**Hundebesitzer ist unzufrieden */
|
|
Unsatisfied = 20
|
|
}
|
|
|
|
/**Wer hat die Beschwerde eingereicht? */
|
|
export enum WalkComplaintSource {
|
|
/**Hundebesitzer */
|
|
DogOwner = 10,
|
|
/**Hundeausführer */
|
|
DogWalker = 20,
|
|
}
|
|
|
|
export enum WalkType {
|
|
/**Anfrage basierend auf dem Schedule eine Walkers */
|
|
Scheduled = 1,
|
|
/**Direkte Anfrage an einen Walker */
|
|
Direct = 2,
|
|
/**Offene Anfrage an die Community */
|
|
OpenRequest = 3
|
|
}
|
|
|
|
/**Welche Art von Service soll durchgeführt werden */
|
|
export enum WalkServiceType {
|
|
/**Walk */
|
|
Walking = 1,
|
|
/**Sitting */
|
|
Sitting = 2,
|
|
/**Daycare */
|
|
DayCare = 3
|
|
}
|
|
|
|
/**Status einer Meldung */
|
|
export enum AppUserReportStatus {
|
|
/**Offfen */
|
|
Open = 10,
|
|
/**In Bearbeitung */
|
|
Processing = 20,
|
|
/**Abgelehnt */
|
|
Rejected = 30,
|
|
/**Geschlossen ohne Aktion */
|
|
ClosedNoAction = 40,
|
|
/**Geschlossen und für eine bestimmte Zeit gesperrt */
|
|
ClosedLockedForTime = 50,
|
|
/**Geschlossen und für immer gesperrt */
|
|
ClosedLockedForever = 60,
|
|
/**Geschlossen und Inhalt bearbeitet */
|
|
ClosedContentEdited = 100,
|
|
/**Geschlossen und Inhalt gelöscht */
|
|
ClosedContentDeleted = 110,
|
|
/**Wiedereröffnet */
|
|
Reopened = 200
|
|
}
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
export enum AppUserReportSection {
|
|
/**Hundeprofil */
|
|
ProfileDog = 10,
|
|
/**Konversationen */
|
|
Conversations = 20,
|
|
/**Nachrichten */
|
|
Messages = 30,
|
|
/**Konversation anlegen */
|
|
ConversationCreate = 40,
|
|
/**Profil Hundebesitzer */
|
|
ProfileDogOwner = 50,
|
|
/**Ratings Hund */
|
|
RatingsDog = 60,
|
|
/**Ratings Hundebesitzer */
|
|
RatingsDogOwner = 70,
|
|
/**Meine Ratings */
|
|
RatingsMy = 80,
|
|
/**Ratings Walker */
|
|
RatingsWalker = 90,
|
|
/**Walker Suche */
|
|
WalkersSearch = 100,
|
|
/**Walker Profil */
|
|
ProfileWalker = 110,
|
|
/**Offene Anfrage Hundebesitzer */
|
|
OpenRequestDogOwner = 120,
|
|
/**Offene Anfrage Walker */
|
|
OpenRequestWalker = 130,
|
|
/**Antwort auf offene Anfrage */
|
|
OpenRequestResponse = 140,
|
|
/**Walks Hundebesitzer */
|
|
WalksDogOwner = 150,
|
|
/**Offene Anfrage Hundebesitzer Details */
|
|
OpenRequestDogOwnerDetails = 160,
|
|
/**Offene Anfrage Walker Details */
|
|
OpenRequestWalkerDetails = 170,
|
|
/**Offene Anfrage Antworten */
|
|
OpenRequestResponses = 180,
|
|
/**Walks Walker */
|
|
WalksWalker = 190,
|
|
/**Walk Details Hundebesitzer */
|
|
WalkDetailDogOwner = 200,
|
|
/**Walk Details Walker */
|
|
WalkDetailsWalker = 210,
|
|
/**Favoriten Hundebesitzer */
|
|
FavouritesDogOwner = 220,
|
|
/**Favoriten Walker */
|
|
FavouritesWalker = 230,
|
|
/**Home Hundebesitzer */
|
|
HomeDogOwner = 240,
|
|
/**Home Walker */
|
|
HomeWalker = 250
|
|
}
|
|
|
|
/**Typ der Meldung */
|
|
export enum AppUserReportType {
|
|
/**Anstößiger Inhalt */
|
|
Objectionable = 10,
|
|
/**Politisch inkorrekt */
|
|
PoliticallyIncorrect = 20,
|
|
/**Obszön */
|
|
Obscene = 30,
|
|
/**Unkorrekte Angabe */
|
|
IncorrectData = 40,
|
|
/**Aufdringlich */
|
|
Intrusive = 50
|
|
}
|
|
|
|
/**Wie soll eine Blockierung bei einer Meldung durchgeführt werden */
|
|
export enum AppUserReportBlockType {
|
|
/**Nicht blockieren */
|
|
NoBlock = 1,
|
|
/**für eine bestimmte Zeit blockieren */
|
|
BlockForTime = 2,
|
|
/**für immer blockieren */
|
|
BlockForever = 3
|
|
}
|
|
|
|
/**Art der öffentlichen Anfrage */
|
|
export enum PublicWalkRequestType {
|
|
Walking = 1,
|
|
Sitting = 2
|
|
}
|
|
|
|
/**Status der offenen Anfrage */
|
|
export enum PublicWalkRequestStatus {
|
|
/**Offen */
|
|
Open = 1,
|
|
/**vergeben */
|
|
Placed = 20,
|
|
/**Abgelaufen */
|
|
TimedOut = 30,
|
|
/**Storniert */
|
|
Cancelled = 40
|
|
}
|
|
|
|
/**Status eines Walks */
|
|
export enum WalkStatus {
|
|
/**Angefragt */
|
|
Requested = 1,
|
|
/**Akzeptiert */
|
|
Accepted = 10,
|
|
/**Abgelehnt */
|
|
Declined = 20,
|
|
/**Storniert */
|
|
Cancelled = 30,
|
|
/**Der Walk läuft */
|
|
Started = 40,
|
|
/**Der Walk wurde beendet */
|
|
Completed = 50,
|
|
/**Der Walk wurde vom Hundebesitzer oder dem System betätigt */
|
|
Confirmed = 60,
|
|
/**Der Walk wurde reklamiert und es muss eine Lösung gesucht werden */
|
|
Complained = 70,
|
|
/**Reklamation gelöst */
|
|
ComplainResolved = 80
|
|
}
|
|
|
|
/**Plattform die verwendet wird */
|
|
export enum Platform {
|
|
/**Windows */
|
|
Windows = 1,
|
|
/**Apple - Mac */
|
|
Mac = 2,
|
|
/**Apple - IOS */
|
|
Ios = 3,
|
|
/**Google - Android */
|
|
Android = 4
|
|
}
|
|
|
|
/**Status eines Gutschein Kampagne */
|
|
export enum VoucherCampaignStatus {
|
|
/**Entwurf */
|
|
Draft = 0,
|
|
/**Zu bezahlen */
|
|
ToPay = 10,
|
|
/**Gebucht */
|
|
Booked = 20,
|
|
/**Laufend */
|
|
Running = 30,
|
|
/**Beendet */
|
|
Ended = 40,
|
|
/**Storniert */
|
|
Cancelled = 50
|
|
}
|
|
|
|
export enum VoucherCampaignType {
|
|
/**Ein Gutschein für alle */
|
|
SingleVoucher = 0,
|
|
/**Mehrere Gutscheine je Nach Anzahl */
|
|
MultiVoucher = 10
|
|
}
|
|
|
|
export enum SubscriptionLength {
|
|
/**Eine Woche */
|
|
OneWeek = 1,
|
|
/**Ein Monat */
|
|
OneMonth = 2,
|
|
/**Zwei Monate */
|
|
TwoMonths = 3,
|
|
/**Drei Monate */
|
|
ThreeMonths = 4,
|
|
/**Sechs Monate */
|
|
SixMonths = 5,
|
|
/**Ein Jahr */
|
|
OneYear = 6
|
|
}
|
|
|
|
/**
|
|
* Repräsentiert einen Benutzer
|
|
*/
|
|
export class ApplicationUser {
|
|
/**
|
|
* Id
|
|
*/
|
|
id: string;
|
|
/**
|
|
* Benutzername
|
|
*/
|
|
userName: string;
|
|
/**
|
|
* vorname
|
|
*/
|
|
firstName: string;
|
|
/**
|
|
* Nachname
|
|
*/
|
|
lastName: string;
|
|
/**
|
|
* Id der Zeitzone
|
|
*/
|
|
timeZoneId: string;
|
|
/**
|
|
* Bevorzugte Sprache
|
|
*/
|
|
preferredLangauge: string;
|
|
/**
|
|
* Photo als Base64 encoded string
|
|
*/
|
|
photo: string;
|
|
/**
|
|
* Datum der Registrierung
|
|
*/
|
|
registrationDate: Date;
|
|
/**
|
|
* Datum l. Login
|
|
*/
|
|
lastLoginDate: Date;
|
|
/**
|
|
* Rechte als Packed string
|
|
*/
|
|
permissions: string;
|
|
}
|
|
|
|
/**
|
|
* Repräsentiert einen Benutzer in der Liste
|
|
*/
|
|
export class ApplicationUserListItem {
|
|
/**
|
|
* Id
|
|
*/
|
|
id: string;
|
|
/**
|
|
* Benutzername
|
|
*/
|
|
userName: string;
|
|
/**
|
|
* vorname
|
|
*/
|
|
firstName: string;
|
|
/**
|
|
* Nachname
|
|
*/
|
|
lastName: string;
|
|
/**
|
|
* Gesperrt
|
|
*/
|
|
locked: boolean;
|
|
/**
|
|
* Rollen
|
|
*/
|
|
roles: string;
|
|
/**
|
|
* Photo als Base64 encoded string
|
|
*/
|
|
photo: string;
|
|
/**
|
|
* Datum der Registrierung
|
|
*/
|
|
registrationDate: Date;
|
|
/**
|
|
* Datum l. Login
|
|
*/
|
|
lastLoginDate: Date;
|
|
/**
|
|
* Id des Kunden
|
|
*/
|
|
customerId: number;
|
|
/**
|
|
* Name des Kunden
|
|
*/
|
|
customerName: string;
|
|
|
|
/**
|
|
* Id des App-Users
|
|
* null, wenn keiner zugeordnet
|
|
*/
|
|
appUserId: string;
|
|
|
|
/**Name des App-Users */
|
|
appUserName: string;
|
|
|
|
/** 2-Faktor Authentifizierung aktiviert? */
|
|
twoFactorEnabled: boolean;
|
|
|
|
/** Email-Adresse bestätigt? */
|
|
emailConfirmed: boolean;
|
|
}
|
|
|
|
/**
|
|
* Repräsentiert einen Kunden-Typ
|
|
*/
|
|
export class CustomerType {
|
|
/**
|
|
* ID
|
|
*/
|
|
id: number;
|
|
/**
|
|
* Spezial-ID
|
|
*/
|
|
uniqueId: string;
|
|
/**
|
|
* Name
|
|
*/
|
|
name: string;
|
|
/**
|
|
* Anmerkungen
|
|
*/
|
|
comment: string;
|
|
/**
|
|
* Erstellungsdatum
|
|
*/
|
|
created: Date;
|
|
}
|
|
|
|
/**
|
|
* Repräsentiert einen Kunden-Typ in der Liste
|
|
*/
|
|
export class CustomerTypeListItem {
|
|
/**
|
|
* ID
|
|
*/
|
|
id: number;
|
|
/**
|
|
* Spezial-ID
|
|
*/
|
|
uniqueId: string;
|
|
/**
|
|
* Name
|
|
*/
|
|
name: string;
|
|
/**
|
|
* Anmerkungen
|
|
*/
|
|
comment: string;
|
|
/**
|
|
* Erstellungsdatum
|
|
*/
|
|
created: Date;
|
|
}
|
|
|
|
/**
|
|
* Repräsentiert eine Adresse
|
|
*/
|
|
export class Address {
|
|
/**Optionale Adresszeile 1 */
|
|
addressLine1: string;
|
|
|
|
/**Optionale Adresszeile 2 */
|
|
addressLine2: string;
|
|
|
|
/**Optional: Stadt / Ort */
|
|
city: string;
|
|
|
|
/**Optinale PLZ */
|
|
zip: string;
|
|
|
|
/**Bundesland / Staat */
|
|
state: string;
|
|
|
|
/**ISO2 Ländercode */
|
|
countryCode: string;
|
|
}
|
|
|
|
/**
|
|
* Repräsentiert einen Kunden in der Liste
|
|
*/
|
|
export class CustomerListItem {
|
|
/**Id des Kunden */
|
|
id: number;
|
|
|
|
/**
|
|
* SpezialID
|
|
*/
|
|
uniqueId: string;
|
|
|
|
/**Typ des Kunden */
|
|
typeId: number;
|
|
|
|
/**Typ des Kunden als Name */
|
|
typeName: string;
|
|
|
|
/**Kundennummer */
|
|
number: string;
|
|
|
|
/**Name des Kunden */
|
|
name: string;
|
|
|
|
/**UID Nummer */
|
|
vat: string;
|
|
|
|
/**Land der Adresse */
|
|
countryCode: string;
|
|
|
|
/**Logo */
|
|
logo: string;
|
|
/**
|
|
* Erstellungsdatum
|
|
*/
|
|
created: Date;
|
|
}
|
|
|
|
/**
|
|
* Model für eine Platzhalter-Kategorie
|
|
*/
|
|
export class PlaceHolderCategory {
|
|
/**
|
|
* Eindeutige Id
|
|
*/
|
|
public id: number;
|
|
|
|
/**
|
|
* Name
|
|
*/
|
|
public name: string;
|
|
|
|
/**
|
|
* Prefix der Kategorie für Variable
|
|
*/
|
|
public prefix: string;
|
|
|
|
/**
|
|
* Liste der Platzhalter in der KAtegrorie
|
|
*/
|
|
public placeholders: PlaceHolder[];
|
|
|
|
constructor() {
|
|
this.id = -1;
|
|
this.name = "";
|
|
this.prefix = "";
|
|
this.placeholders = [];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Model für einen Platzhalter
|
|
*/
|
|
export class PlaceHolder {
|
|
/**
|
|
* Eindeutige Id
|
|
*/
|
|
public id: number;
|
|
|
|
/**
|
|
* Name
|
|
*/
|
|
public name: string;
|
|
|
|
/**
|
|
* Wert
|
|
*/
|
|
public value: string;
|
|
|
|
constructor() {
|
|
this.id = -1;
|
|
this.name = "";
|
|
this.value = "";
|
|
}
|
|
}
|
|
|
|
/**Basisklasse für eine Entität welche über Synchronisierungs-Eigenschaften verfügt */
|
|
export class SyncEntity {
|
|
/**Guid als String - wird als Key verwendet.*/
|
|
id: string;
|
|
|
|
/**Datum und Uhrzeit inkl. Zeitzone wann die letzte Aktualisierung stattgefunden hat. */
|
|
updatedAt: Date | string;
|
|
|
|
/**Gibt an ob diese Entität gelöscht wurde */
|
|
deleted: boolean;
|
|
}
|
|
|
|
/**Viewmodel für eine Werbungs-Rubrik Liste */
|
|
export class AdvertisementCategoryListItem extends SyncEntity {
|
|
/**Titel der Rubrik */
|
|
title: string;
|
|
|
|
/**Anmerkungen intern */
|
|
comment: string;
|
|
|
|
/**Name der Rubrik */
|
|
|
|
name: string;
|
|
|
|
/**Bild für die Rubrik */
|
|
image: string;
|
|
|
|
/**Online-Status */
|
|
onlineStatus: OnlineStatus;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
|
|
/**Hilfsvariable für Abfragen. Wird in der View aus JSON generiert */
|
|
language: string;
|
|
}
|
|
|
|
/**Viewmodel für einen App-User Listen */
|
|
export class AppUserListItem extends SyncEntity {
|
|
/**Typ des App-Users */
|
|
type: AppUserType;
|
|
|
|
/**Nummer des Hundebesitzers */
|
|
number: string;
|
|
|
|
/**Anrede / titel */
|
|
title: string;
|
|
|
|
/**Vorname */
|
|
firstName: string;
|
|
|
|
/**Nachname */
|
|
lastName: string;
|
|
|
|
/**Geschlecht */
|
|
sex: Sex;
|
|
|
|
/**Geschlecht als Text */
|
|
sexText: string;
|
|
|
|
/**Optional - Geburtstag */
|
|
birthDate: Date | string | null;
|
|
|
|
/**Optional - Foto des Benutzers */
|
|
photo: string;
|
|
|
|
/**E-Mail Adresse */
|
|
email: string;
|
|
|
|
/**Optional: Stadt / Ort */
|
|
city: string;
|
|
|
|
/**Optinale PLZ */
|
|
zip: string;
|
|
|
|
/**ISO2 Ländercode */
|
|
countryCode: string;
|
|
|
|
/**ISO2 Bundesland */
|
|
state: string;
|
|
|
|
/**Gesperrt */
|
|
locked: boolean;
|
|
|
|
/**Sperrgrund */
|
|
lockedReason: string;
|
|
|
|
/**Gesperrt bis */
|
|
lockedUntil: Date | string | null;
|
|
|
|
/**Wurden die AGB akzeptiert */
|
|
termsAccepted: boolean;
|
|
|
|
/**Wann wurden die AGB akzeptiert? */
|
|
termsAcceptedDate: Date | string | null;
|
|
|
|
/**Nationalität ISO-2 */
|
|
nationalityCode: string;
|
|
|
|
/**Land Hauptwohnsitz ISO-2 */
|
|
mainResidenceCode: string;
|
|
|
|
/**Gibt an ob der Benutzer den KYC-Prozess durchlaufen hat */
|
|
kycPassed: boolean;
|
|
|
|
/**Gibt an ob es sich um einen verifizierten Benutzer handelt */
|
|
verified: boolean;
|
|
|
|
/**Gibt an ob für den Benutzer eine automatische Auszahlung erfolgen soll */
|
|
autoPayout: boolean;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für einen Hundeausführer Listen */
|
|
export class DogWalkerListItem extends SyncEntity {
|
|
/**Nummer des Hundeausführers */
|
|
number: string;
|
|
|
|
/**Anrede / titel */
|
|
title: string;
|
|
|
|
/**Vorname */
|
|
firstName: string;
|
|
|
|
/**Nachname */
|
|
lastName: string;
|
|
|
|
/**Geschlecht */
|
|
sex: Sex;
|
|
|
|
/**Geschlecht als Text */
|
|
sexText: string;
|
|
|
|
/**Optional - Geburtstag */
|
|
birthDate: Date | string | null;
|
|
|
|
/**Optional - Foto des Benutzers */
|
|
photo: string;
|
|
|
|
/**E-Mail Adresse */
|
|
email: string;
|
|
|
|
/**Optional: Stadt / Ort */
|
|
city: string;
|
|
|
|
/**Optinale PLZ */
|
|
zip: string;
|
|
|
|
/**ISO2 Ländercode */
|
|
countryCode: string;
|
|
|
|
/**Gesperrt */
|
|
locked: boolean;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für Steuern in Listendarstellung */
|
|
export class TaxRateListItem {
|
|
/**Id des Steuereintrags */
|
|
id: number;
|
|
|
|
/**Land für die Steuer */
|
|
countryIso: string;
|
|
|
|
/**Steuer in Prozent */
|
|
value: number;
|
|
|
|
/**Für Versandkosten verwenden */
|
|
useForShipment: boolean;
|
|
|
|
/**Titel des Steuersatzes */
|
|
title: string;
|
|
|
|
/**Name des Steuersatzed */
|
|
name: string;
|
|
|
|
/**Hilfsvariable für Abfragen. Wird in der View aus JSON generiert */
|
|
language: string;
|
|
}
|
|
|
|
/**Viewmodel für die Listendarstellung von Produkategorien */
|
|
export class ProductCategoryListItem {
|
|
/**Eindeutige Id */
|
|
id: number;
|
|
|
|
/**Id der Übergeordneten Kategorie */
|
|
parentId: number | null;
|
|
|
|
/**Für wen sichtbar? */
|
|
visibility: ShopVisibility;
|
|
|
|
/**Übersetzung der Shop-Visibility */
|
|
shopVisibilityText: string;
|
|
|
|
/**Titel der Kategorie */
|
|
title: string;
|
|
|
|
/**Reihenfolge der Darstellung, danach nach Name */
|
|
displayOrder: number;
|
|
|
|
/**Bild für die Produktkategorie - Allgemein */
|
|
image: string;
|
|
|
|
/**Name der Rubrik */
|
|
name: string;
|
|
|
|
/**Gelöscht */
|
|
deleted: boolean;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
|
|
/**Hilfsvariable für Abfragen. Wird in der View aus JSON generiert */
|
|
language: string;
|
|
}
|
|
|
|
/**Viewmodel für ein Produkt Listendarstellung */
|
|
export class ProductListItem {
|
|
/**Eindeutige Id */
|
|
id: number;
|
|
|
|
/**Produkttyp */
|
|
productType: ProductType;
|
|
|
|
/**Um welche Art von Listung handelt es sich, wenn das Produkt für Listungen ist */
|
|
listingType: ListingType;
|
|
|
|
/**Id der Produktkategorie */
|
|
productCategoryId: number | null;
|
|
|
|
/**Name der Produktkategorie */
|
|
productCategoryName: string;
|
|
|
|
/**Einstellung wer das Produkt sehen darf */
|
|
visibility: ShopVisibility;
|
|
|
|
/**Name des Produktes */
|
|
name: string;
|
|
|
|
/**Bild für das Produkt - Allgemein */
|
|
image: string;
|
|
|
|
/**Artikelnummer */
|
|
sku: string;
|
|
|
|
/**Gibt an ob das Produkt versendet werden kann */
|
|
isShipEnabled: boolean;
|
|
|
|
/**Gibt an ob das Produkt Versandkostenbefreit ist */
|
|
isFreeShipping: boolean;
|
|
|
|
/**Zusatzversandkosten netto */
|
|
additionalShippingCharge: number;
|
|
|
|
/**Gibt an ob das Produkt von der Steuer ausgenommen ist */
|
|
isTaxExempt: boolean;
|
|
|
|
/**Id der Zugeordneten Steuer */
|
|
taxRateId: number;
|
|
|
|
/**Name der Steuerstufe */
|
|
taxRateName: string;
|
|
|
|
/**Anzahl der Produkte auf Lager */
|
|
stockQuantity: number;
|
|
|
|
/**Wie viele Produkte müssen mindestens bestellt werden? */
|
|
orderMinimumQuantity: number;
|
|
|
|
/**Wie viele Produkte dürfen maximal bestellt werden? */
|
|
orderMaximumQuantity: number;
|
|
|
|
/**Preis des Produktes netto */
|
|
price: number;
|
|
|
|
/**Alter Preis wenn man eine Aktion setzen möchte */
|
|
oldPrice: number;
|
|
|
|
/**Reihenfolge der Darstellung, danach nach Name */
|
|
displayOrder: number;
|
|
|
|
/**Wurde das Produkt gelöscht */
|
|
deleted: boolean;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
|
|
/**Anzahl der Ländereinstellungen für dieses Produkt */
|
|
countrySettingsCount: number;
|
|
|
|
/**Sprache */
|
|
language: string;
|
|
}
|
|
|
|
/**Einstellungen eines Produktes in Bezug auf ein Land */
|
|
export class ProductCountryItem {
|
|
/**Eindeutige Id */
|
|
id: number;
|
|
|
|
/**Id des Produktes */
|
|
productId: number;
|
|
|
|
/**ISO2 Land für die Einstellungen */
|
|
countryIso: string;
|
|
|
|
/**Preis des Produktes netto */
|
|
price: number;
|
|
|
|
/**Alter Preis wenn man eine Aktion setzen möchte */
|
|
oldPrice: number;
|
|
|
|
/**Einstellung ob das Produkt in einem Land nicht verfügbar ist */
|
|
notAvailable: boolean;
|
|
}
|
|
|
|
/**Viewmodel für Versandkosten */
|
|
export class ShipmentCostItem {
|
|
/**Eindeutige Id */
|
|
id: number;
|
|
|
|
/**Startgewicht */
|
|
weightFrom: number;
|
|
|
|
/**Endgewicht */
|
|
weightTo: number;
|
|
|
|
/**Start Zwischensumme */
|
|
subtotalFrom: number;
|
|
|
|
/**End-Zwischensumme */
|
|
subtotalTo: number;
|
|
|
|
/**Fixer Aufschlag */
|
|
fixedPrice: number;
|
|
|
|
/**Prozent-Wert der Zwischensumme */
|
|
subtotalPercent: number;
|
|
|
|
/**Zielland - oder leer für ALLE */
|
|
targetCountryIso: string;
|
|
}
|
|
|
|
/**Viewmodel für eine Branche Liste */
|
|
export class BranchListItem extends SyncEntity {
|
|
/**Titel der Branche */
|
|
title: string;
|
|
|
|
/**Anmerkungen intern */
|
|
comment: string;
|
|
|
|
/**Name der Rubrik */
|
|
|
|
name: string;
|
|
|
|
/**Bild für die Rubrik */
|
|
image: string;
|
|
|
|
/**Online-Status */
|
|
onlineStatus: OnlineStatus;
|
|
|
|
/**Für Listungen verfügbar */
|
|
listingAllowed: boolean;
|
|
|
|
/**Sortierung */
|
|
order: number;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für die Listendarstellung von Listungen */
|
|
export class ListingListItem extends SyncEntity {
|
|
/**Id des Kunden */
|
|
customerId: number;
|
|
|
|
/**Name des Kunden */
|
|
customerName: string;
|
|
|
|
/**Id der Branche */
|
|
branchId: string;
|
|
|
|
/**Name der Branche */
|
|
branchName: string;
|
|
|
|
/**Name der Listung */
|
|
name: string;
|
|
|
|
/**Bild für die Listiung */
|
|
image: string;
|
|
|
|
/**Typ der Listung - Basis, Silber, Gold, Plating */
|
|
listingType: ListingType;
|
|
|
|
/**Startdatum der Listung */
|
|
startDate: Date | string | null;
|
|
|
|
/**Enddatum der Listung */
|
|
endDate: Date | string | null;
|
|
|
|
/**Wie lange kann man diese Buchung reservieren bis sie bezahlt wird */
|
|
reservedUntil: Date | string | null;
|
|
|
|
/**Status der Listung */
|
|
status: ListingStatus;
|
|
|
|
/**Id der Bestellung */
|
|
orderId: number | null;
|
|
|
|
/**Id des Artikels in der Bestellung */
|
|
orderItemId: number | null;
|
|
|
|
/**Zahlungsart der Bestellung */
|
|
paymentType: PaymentType;
|
|
|
|
/**Zahlungsstatus der Bestellung */
|
|
paymentStatus: PaymentStatus;
|
|
|
|
/**Zahlungsdatum */
|
|
payedDate: Date | string | null;
|
|
|
|
/**Art der Geo-Einschränkung */
|
|
geoMode: GeoMode;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für die Listendarstellung von Werbungen */
|
|
export class AdvertisementListItem extends SyncEntity {
|
|
/**Id des Kunden */
|
|
customerId: number;
|
|
|
|
/**Name des Kunden */
|
|
customerName: string;
|
|
|
|
/**Id der Rubrik */
|
|
advertisementCategoryId: string;
|
|
|
|
/**Name der Rubrik */
|
|
advertisementCategoryName: string;
|
|
|
|
/**Name der Werbung */
|
|
name: string;
|
|
|
|
/**Rabatt in Prozent */
|
|
discount: number;
|
|
|
|
/**Übersetzungen Name */
|
|
nameLocalized: string;
|
|
|
|
/**Bild für die Werbung */
|
|
image: string;
|
|
|
|
/**Url für die Werbung */
|
|
url: string;
|
|
|
|
/**Startdatum der Werbung */
|
|
startDate: Date | string | null;
|
|
|
|
/**Enddatum der Werbung */
|
|
endDate: Date | string | null;
|
|
|
|
/**Status der Werbung */
|
|
status: AdvertisementStatus;
|
|
|
|
/**Status der Listung - Text */
|
|
statusText: string;
|
|
|
|
/**Id der Bestellung */
|
|
orderId: number | null;
|
|
|
|
/**Id des Artikels in der Bestellung */
|
|
orderItemId: number | null;
|
|
|
|
/**Zahlungsart der Bestellung */
|
|
paymentType: PaymentType;
|
|
|
|
/**Zahlungsart der Bestellung - Text */
|
|
paymentTypeText: string;
|
|
|
|
/**Zahlungsstatus der Bestellung */
|
|
paymentStatus: PaymentStatus;
|
|
|
|
/**Zahlungsstatus der Bestellung - Text */
|
|
paymentStatusText: string;
|
|
|
|
/**Zahlungsdatum */
|
|
payedDate: Date | string | null;
|
|
|
|
/**Art der Geo-Einschränkung */
|
|
geoMode: GeoMode;
|
|
|
|
/**Art der Geo-Einschränkung - Text */
|
|
geoModeText: string;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für die Listendarstellung von Bannern */
|
|
export class BannerListItem extends SyncEntity {
|
|
/**Id des Kunden */
|
|
customerId: number;
|
|
|
|
/**Name des Kunden */
|
|
customerName: string;
|
|
|
|
/**Bannerplatzierung */
|
|
bannerLocation: BannerLocation;
|
|
|
|
/**Text der Banner-Platzierung */
|
|
bannerLocationText: string;
|
|
|
|
/**Banner Größe */
|
|
bannerSize: BannerSize;
|
|
|
|
/**Text der Banner Größe */
|
|
bannerSizeText: string;
|
|
|
|
/**Aktuelle Anzahl der Views */
|
|
currentViews: number;
|
|
|
|
/**Maximale Anzahl der Views */
|
|
maxViews: number;
|
|
|
|
/**Name des Banners */
|
|
name: string;
|
|
|
|
/**Übersetzungen Name */
|
|
nameLocalized: string;
|
|
|
|
/**Bild für den Banner */
|
|
image: string;
|
|
|
|
/**Url des Banners */
|
|
url: string;
|
|
|
|
/**Startdatum des Banners */
|
|
startDate: Date | string | null;
|
|
|
|
/**Enddatum des Banners */
|
|
endDate: Date | string | null;
|
|
|
|
/**Status des Banners */
|
|
status: BannerStatus;
|
|
|
|
/**Status des Banners - Text */
|
|
statusText: string;
|
|
|
|
/**Id der Bestellung */
|
|
orderId: number | null;
|
|
|
|
/**Id des Artikels in der Bestellung */
|
|
orderItemId: number | null;
|
|
|
|
/**Zahlungsart der Bestellung */
|
|
paymentType: PaymentType;
|
|
|
|
/**Zahlungsart der Bestellung - Text */
|
|
paymentTypeText: string;
|
|
|
|
/**Zahlungsstatus der Bestellung */
|
|
paymentStatus: PaymentStatus;
|
|
|
|
/**Zahlungsstatus der Bestellung - Text */
|
|
paymentStatusText: string;
|
|
|
|
/**Zahlungsdatum */
|
|
payedDate: Date | string | null;
|
|
|
|
/**Art der Geo-Einschränkung */
|
|
geoMode: GeoMode;
|
|
|
|
/**Art der Geo-Einschränkung - Text */
|
|
geoModeText: string;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für die Listendarstellung von Pins */
|
|
export class PinListItem extends SyncEntity {
|
|
/**Id des Kunden */
|
|
customerId: number;
|
|
|
|
/**Name des Kunden */
|
|
customerName: string;
|
|
|
|
/**Id der Listung - optional */
|
|
listingId: string;
|
|
|
|
/**Name des Pins */
|
|
name: string;
|
|
|
|
/**Übersetzungen Name */
|
|
nameLocalized: string;
|
|
|
|
/**Bild für den Pin */
|
|
image: string;
|
|
|
|
/**Url für den Pin */
|
|
url: string;
|
|
|
|
/**Breitengrad */
|
|
lat: number;
|
|
|
|
/**Längengrad */
|
|
lng: number;
|
|
|
|
/**Effektiver Radius des Pins */
|
|
radius: number;
|
|
|
|
/**Startdatum des Pins */
|
|
startDate: Date | string | null;
|
|
|
|
/**Enddatum des Pins */
|
|
endDate: Date | string | null;
|
|
|
|
/**Status des Pins */
|
|
status: PinStatus;
|
|
|
|
/**Status der Listung - Text */
|
|
statusText: string;
|
|
|
|
/**Id der Bestellung */
|
|
orderId: number | null;
|
|
|
|
/**Id des Artikels in der Bestellung */
|
|
orderItemId: number | null;
|
|
|
|
/**Zahlungsart der Bestellung */
|
|
paymentType: PaymentType;
|
|
|
|
/**Zahlungsart der Bestellung - Text */
|
|
paymentTypeText: string;
|
|
|
|
/**Zahlungsstatus der Bestellung */
|
|
paymentStatus: PaymentStatus;
|
|
|
|
/**Zahlungsstatus der Bestellung - Text */
|
|
paymentStatusText: string;
|
|
|
|
/**Zahlungsdatum */
|
|
payedDate: Date | string | null;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Ergebnis einer Preis-Kalkulation */
|
|
export class PriceCalculation {
|
|
/**Preis netto */
|
|
price: number;
|
|
|
|
/**Preis brutto */
|
|
priceGross: number;
|
|
|
|
/**Vorheriger Preis netto */
|
|
oldPrice: number;
|
|
|
|
/**Vorheriger Preis brutto */
|
|
oldPriceGross: number;
|
|
|
|
/**Preis2 netto */
|
|
price2: number;
|
|
|
|
/**Preis2 brutto */
|
|
price2Gross: number;
|
|
|
|
/**Vorheriger Preis2 netto */
|
|
oldPrice2: number;
|
|
|
|
/**Vorheriger Preis2 brutto */
|
|
oldPrice2Gross: number;
|
|
|
|
/**Angewandte Steuer - z.B. 10%, 20% */
|
|
taxRate: number;
|
|
|
|
/**Kalkulierte Steuer */
|
|
taxValue: number;
|
|
|
|
/**Gesamtwert Netto (Preis + Preis2) */
|
|
total: number;
|
|
|
|
/**Gesamtwert Brutto (Preis + Preis2) */
|
|
totalGross: number;
|
|
|
|
/**Gesamtwert Vorherig Netto (Preis + Preis2) */
|
|
totalOld: number;
|
|
|
|
/**Gesamtwert vorherig Brutto (Preis + Preis2) */
|
|
totalOldGross: number;
|
|
|
|
/**Stückzahl */
|
|
quantity: number;
|
|
}
|
|
|
|
/**Ergebis der Neuberechnung des Carts */
|
|
export class RecalculationResult {
|
|
/**Hat sich die Summe in Warenkorb geändert? */
|
|
totalChanged: boolean;
|
|
|
|
/**Gesamt-Preis Brutto */
|
|
totalGross: number;
|
|
|
|
/**Haben sich die Versandkosten geändert? */
|
|
shipmentChanged: boolean;
|
|
|
|
/**Versandkosten Brutto */
|
|
shipmentGross: number;
|
|
}
|
|
|
|
/**Ergebnis das nach der Änderung des Carts gesendet wird */
|
|
export class CartChangedResult {
|
|
/**Anzahl der verbliebenen Artikel im Warenkorb */
|
|
itemCount: number;
|
|
|
|
/**Liste der entfernten Produkte */
|
|
validationList: string[];
|
|
|
|
/**Ergebnis der neuberechnung des Cart */
|
|
recalculationResult: RecalculationResult;
|
|
}
|
|
|
|
export class OrderListItem {
|
|
/**Id der Bestellung */
|
|
id: number;
|
|
|
|
/**Spezial-ID */
|
|
uniqueId: string;
|
|
|
|
/**Welcher "Kunden-Typ" hat die Bestellung erstellt? */
|
|
orderSource: OrderSource;
|
|
|
|
/**Welcher "Kunden-Typ" hat die Bestellung erstellt? */
|
|
orderSourceText: string;
|
|
|
|
/**Name des Bestellers in Abhängigkeit der Bestellquelle */
|
|
orderSourceName: string;
|
|
|
|
/**Id des Hundebesitzers */
|
|
dogOwnerId: string;
|
|
|
|
/**Name des Hundebesitzers (Vor- und Nachname) */
|
|
dogOwnerName: string;
|
|
|
|
/**Hundebesitzer - Firma */
|
|
dogOwnerCompany: string;
|
|
|
|
|
|
/**Id des Hundeausführers */
|
|
dogWalkerId: string;
|
|
|
|
/**Name des Hundeausführers (Vor- und Nachname) */
|
|
dogWalkerName: string;
|
|
|
|
/**Hundeausführer - Firma */
|
|
dogWalkerCompany: string;
|
|
|
|
/**Kunde */
|
|
customerId: number | null;
|
|
|
|
/**Name des Kunden / Vertriebspartners */
|
|
customerName: string;
|
|
|
|
/**Bestellnummer */
|
|
number: string;
|
|
|
|
/**Zwischensumme Netto */
|
|
subtotal: number;
|
|
|
|
/**Zwischensumme Brutto */
|
|
subtotalGross: number;
|
|
|
|
/**Gesamt-Preis Netto */
|
|
total: number;
|
|
|
|
/**Gesamt-Preis Brutto */
|
|
totalGross: number;
|
|
|
|
/**Versandkosten Netto */
|
|
shipment: number;
|
|
|
|
/**Versandkosten Brutto */
|
|
shipmentGross: number;
|
|
|
|
/**Status der Bestellung */
|
|
orderStatus: OrderStatus;
|
|
|
|
/**Status der Bestellung */
|
|
orderStatusText: string;
|
|
|
|
/**Zahlungsart */
|
|
paymentType: PaymentType;
|
|
|
|
/**Zahlungsart */
|
|
paymentTypeText: string;
|
|
|
|
/**Zahlungsstatus */
|
|
paymentStatus: PaymentStatus;
|
|
|
|
/**Zahlungsstatus */
|
|
paymentStatusText: string;
|
|
|
|
/**Versandart */
|
|
shipmentType: ShipmentType;
|
|
|
|
/**Versandart */
|
|
shipmentTypeText: string;
|
|
|
|
/**Versandstatus */
|
|
shipmentStatus: ShipmentStatus;
|
|
|
|
/**Versandstatus */
|
|
shipmentStatusText: string;
|
|
|
|
/**Versanddatum */
|
|
shipmentDate: Date | string | null;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
|
|
/**Datum der letzten Änderung */
|
|
lastUpdate: Date | string | null;
|
|
|
|
/**Wurde die Bestellung gelöscht? */
|
|
deleted: boolean;
|
|
}
|
|
|
|
/**Filter für den Shop */
|
|
export class ShopFilter {
|
|
/**Gewählte Kategorien, wenn welche */
|
|
categories: number[];
|
|
/**Filter für Namen */
|
|
filter: string;
|
|
}
|
|
|
|
/**Viewmodel für die Liste der Hunderassen */
|
|
export class DogRaceListItem extends SyncEntity {
|
|
/**Name der Rasse */
|
|
name: string;
|
|
|
|
/**Optional - Foto der Hunderasse */
|
|
photo: string;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für einen Hund - Listendarstellung */
|
|
export class DogListItem extends SyncEntity {
|
|
/**Id der Hunderasse */
|
|
dogRaceId: string;
|
|
|
|
/**Name der Hunderasse */
|
|
dogRaceName: string;
|
|
|
|
/**Id des Hundebesitzers */
|
|
dogOwnerId: string;
|
|
|
|
/**Name des Hundebesitzers */
|
|
dogOwnerName: string;
|
|
|
|
/**Nummer des Hundes */
|
|
number: string;
|
|
|
|
/**Name des Hundes */
|
|
name: string;
|
|
|
|
/**Optional - Foto des Hundes */
|
|
photo: string;
|
|
|
|
/**Geburtstag des Hundes */
|
|
birthDate: Date | string | null;
|
|
|
|
/**Geschlecht des Hundes */
|
|
sex: DogSex;
|
|
|
|
/**Geschlecht des Hundes */
|
|
sexText: string;
|
|
|
|
/**Größe des Hundes */
|
|
size: DogSize;
|
|
|
|
/**Größe des Hundes */
|
|
sizeText: string;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für eine News Kategorien Liste */
|
|
export class NewsCategoryListItem extends SyncEntity {
|
|
/**Titel der Kategorie */
|
|
title: string;
|
|
|
|
/**Anmerkungen intern */
|
|
comment: string;
|
|
|
|
/**Name der Kategorie */
|
|
name: string;
|
|
|
|
/**Übersetzungen Name */
|
|
nameLocalized: string;
|
|
|
|
/**Bild für die Kategorie */
|
|
image: string;
|
|
|
|
/**Online-Status */
|
|
onlineStatus: OnlineStatus;
|
|
|
|
/**Textdarstellung des Online-Status */
|
|
onlineStatusText: string;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für eine News-Meldung Listendarstellung */
|
|
export class NewsListItem {
|
|
/**Eindeutige Id */
|
|
id: number;
|
|
|
|
/**Id der News-Kategorie */
|
|
categoryId: string;
|
|
|
|
/**Name der Kategorie */
|
|
categoryName: string;
|
|
|
|
/**Status der News */
|
|
status: NewsStatus;
|
|
|
|
/**Status der News */
|
|
statusText: string;
|
|
|
|
/**Sichtbarkeit der News */
|
|
visibility: NewsVisibility;
|
|
|
|
/**Sichtbarkeit der News */
|
|
visibilityText: string;
|
|
|
|
/**Startdatum */
|
|
start: Date | string;
|
|
|
|
/**Enddatum */
|
|
end: Date | string | null;
|
|
|
|
/**Erstellt von */
|
|
creator: string;
|
|
|
|
/**Stammt von einer externen Quelle */
|
|
isExternal: boolean;
|
|
|
|
/**Quelle der News wenn extern */
|
|
source: string;
|
|
|
|
/**Sprache für welche die News zur Verfüggung steht */
|
|
language: string;
|
|
|
|
/**Bild für die Newsmeldung */
|
|
image: string;
|
|
|
|
/**Schlagzeile */
|
|
headline: string;
|
|
|
|
/**Art der Geo-Einschränkung */
|
|
geoMode: GeoMode;
|
|
|
|
/**Art der Geo-Einschränkung */
|
|
geoModeText: string;
|
|
|
|
/**Bundesland / Staat */
|
|
state: string;
|
|
|
|
/**Bundesland */
|
|
stateName: string;
|
|
|
|
/**ISO2 Ländercode */
|
|
countryCode: string;
|
|
|
|
/**Land */
|
|
countryName: string;
|
|
|
|
/**Gelöscht */
|
|
deleted: boolean;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für ein Text-Seite Listendarstellung */
|
|
export class PageListItem {
|
|
/**Eindeutige Id */
|
|
id: number;
|
|
|
|
/**Titel der Seite */
|
|
title: string;
|
|
|
|
/**
|
|
* Eindeutiger Code für die Seite.
|
|
* Wird für den Aufruf aus der App verwendet
|
|
*/
|
|
code: string;
|
|
}
|
|
|
|
/**Viewmodel für ein App-Feedback */
|
|
export class AppFeedbackListItem {
|
|
/**Eindeutige Id */
|
|
id: number;
|
|
|
|
/**Benutzername - Email */
|
|
userName: string;
|
|
|
|
/**Name des Users */
|
|
name: string;
|
|
|
|
/**Art des Feedbacks */
|
|
feedbackType: AppFeedbackType;
|
|
|
|
feedbackTypeText: string;
|
|
|
|
/**Status des Feedbacks */
|
|
status: AppFeedbackStatus;
|
|
|
|
statusText: string;
|
|
|
|
/**In welchem Modus war die App beim Senden der Nachricht */
|
|
appMode: AppMode;
|
|
|
|
appModeText: string;
|
|
|
|
/**Welche Sprache war gewählt */
|
|
language: string;
|
|
|
|
/**Land */
|
|
country: string;
|
|
|
|
/**Version der App */
|
|
appVersion: string;
|
|
|
|
/**Infos über das Gerät dürfen gesendet werden */
|
|
deviceInfoAllowed: boolean;
|
|
|
|
/**Gerät: Version */
|
|
deviceVersion: string;
|
|
|
|
/**Gerät: Plattform */
|
|
devicePlatform: string;
|
|
|
|
/**Gerät: Typ: Phone oder Tablet usw. */
|
|
deviceIdiom: string;
|
|
|
|
/**Wann erstellt */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Repräsentiert eine Transaktionsgebühr, die vom System berechnet wird und vom Kunden zu tragen ist. */
|
|
export class TransactionFeeItem extends SyncEntity {
|
|
/**Zahlungsmethode */
|
|
payInType: PayInType;
|
|
|
|
/**Prozent */
|
|
percent: number;
|
|
|
|
/**Fixer Betrag */
|
|
fixed: number;
|
|
}
|
|
|
|
/**Repräsentiert eine Transaktionsgebühr, die vom System berechnet wird und vom Kunden zu tragen ist. */
|
|
export class GehGassiFeeItem extends SyncEntity {
|
|
/**Startbetrag */
|
|
startAmmount: number;
|
|
|
|
/**Prozent */
|
|
percent: number;
|
|
|
|
/**Fixer Betrag */
|
|
fixed: number;
|
|
}
|
|
|
|
/**Viewmodel für eine Reklamation Listendarstellung */
|
|
export class WalkComplaintListItem extends SyncEntity {
|
|
/**Id des Walks */
|
|
walkId: string;
|
|
|
|
/**Art der Walk Anfrage */
|
|
walkType: WalkType;
|
|
|
|
walkTypeText: string;
|
|
|
|
/**Welche Art von Service soll durchgeführt werden */
|
|
walkServiceType: WalkServiceType;
|
|
|
|
walkServiceTypeText: string;
|
|
|
|
/**Name des DogWalkers */
|
|
dogWalkerName: string;
|
|
|
|
/**Foto des Dogwalkers */
|
|
dogWalkerPhoto: string;
|
|
|
|
/**Name des Hundebesitzers */
|
|
dogOwnerName: string;
|
|
|
|
/**Foto des Hundebesitzers */
|
|
dogOwnerPhoto: string;
|
|
|
|
/**Startdatum des Walks mit Urhrzeit */
|
|
walkStart: Date | string;
|
|
|
|
/**Enddatum des Walks mit Uhrzeit */
|
|
walkEnd: Date | string;
|
|
|
|
/**Abholadresse - ISO2 Ländercode */
|
|
pickupAddress_CountryCode: string;
|
|
|
|
/**Preis für den Walk / Das Sitting. Wird gesetzt und kann entweder fix sein (öffentliche Anfrage) oder errechnet */
|
|
walkPrice: number;
|
|
|
|
/**Wer hat die Beschwerde erstellt? */
|
|
source: WalkComplaintSource;
|
|
|
|
sourceText: string;
|
|
|
|
/**Art der Beschwerde */
|
|
type: WalkComplaintType;
|
|
|
|
typeText: string;
|
|
|
|
/**Status der Beschwerde */
|
|
status: WalkComplaintStatus;
|
|
|
|
statusText: string;
|
|
|
|
/**Gehgassi Benutzer der die Beschwerde zuletzt bearbeitet hat */
|
|
userName: string;
|
|
|
|
/**Datum der Lösung der Beschwerde */
|
|
resolved: Date | string | null;
|
|
|
|
/**Datum der Erstellung der Beschwerde */
|
|
created: Date | string;
|
|
}
|
|
|
|
export class SystemMessageToSendListItem {
|
|
/**Id der Nachricht */
|
|
id: number;
|
|
|
|
/**Interner titel */
|
|
title: string;
|
|
|
|
/**Nachricht die gesendet werden soll */
|
|
message: string;
|
|
|
|
/**Anzahl der App-User die die Nachricht erhalten sollen */
|
|
appUserCount: number;
|
|
|
|
/**Anzahl der nachrichten die gesendet wurden */
|
|
sentCount: number;
|
|
|
|
/**Datum wann die Nachricht gesendet werden soll */
|
|
toSendDate: Date | string | null;
|
|
|
|
/**Wurden die Nachrichten bereits gesendet? */
|
|
hasBeenSent: boolean;
|
|
|
|
/**Datum wann die Nachricht gesendet wurden */
|
|
sentDate: Date | string | null;
|
|
|
|
/**Von wem gesendet? */
|
|
sentBy: string;
|
|
|
|
/**Push-Notification senden?*/
|
|
sendPushNotification: boolean;
|
|
|
|
/**Typ des App-Users */
|
|
appUserType: AppUserType;
|
|
|
|
/**Land oder leer */
|
|
country: string;
|
|
|
|
/**Bundesland oder leer */
|
|
state: string;
|
|
|
|
/**Stadt oder leer */
|
|
city: string;
|
|
|
|
/**Postleitzahl oder leer */
|
|
zip: string;
|
|
|
|
/**Nur verifizierte App-User */
|
|
verifiedOnly: boolean;
|
|
|
|
/**Geschlecht oder leer */
|
|
sex: Sex | null;
|
|
|
|
/**Geschlecht oder leer als Text */
|
|
sexText: string;
|
|
|
|
/**Wann erstellt */
|
|
created: Date | string;
|
|
|
|
/**Erstellt von? */
|
|
createdBy: string;
|
|
}
|
|
|
|
/**Viewmodel für eine App-User Meldung Listendarstellung */
|
|
export class AppUserReportListItem {
|
|
/**Id der Meldung */
|
|
id: number;
|
|
|
|
/**Id des App-Users der die Meldung erstellt hat */
|
|
reportingAppUserId: string | null;
|
|
|
|
/**Name des App-Users der die Meldung erstellt hat */
|
|
reportingAppUserName: string;
|
|
|
|
/**Typ des App-Users der die Meldung erstellt hat */
|
|
reportingAppUserType: AppUserType;
|
|
|
|
reportingAppUserTypeText: string;
|
|
|
|
/**Email des App-Users der die Meldung erstellt hat */
|
|
reportingAppUserEmail: string;
|
|
|
|
/**Id des App-Users der Ziel der Meldung ist */
|
|
reportedAppUserId: string | null;
|
|
|
|
/**Name des App-Users der Ziel der Meldung ist */
|
|
reportedAppUserName: string;
|
|
|
|
/**Typ des App-Users der Ziel der Meldung ist */
|
|
reportedAppUserType: AppUserType;
|
|
|
|
reportedAppUserTypeText: string;
|
|
|
|
/**Email des App-Users der Ziel der Meldung ist */
|
|
reportedAppUserEmail: string;
|
|
|
|
/**Status der Meldung */
|
|
status: AppUserReportStatus;
|
|
|
|
statusText: string;
|
|
|
|
/**Bereich der von der Meldung betroffen ist */
|
|
section: AppUserReportSection;
|
|
sectionText: string;
|
|
|
|
/**
|
|
* Id des Inhalts der betroffen ist.
|
|
* Das ist eine Id z.B. eines Hundes, Walkers usw.
|
|
*/
|
|
sectionId: string;
|
|
|
|
/**
|
|
* Id des Inhalts der betroffen ist. Zweite ID falls notwendig
|
|
* Das ist eine Id z.B. eines Hundes, Walkers usw.
|
|
*/
|
|
sectionId2: string;
|
|
|
|
/**Es gibt ein Problem mit einem Bild */
|
|
reportedImage: boolean;
|
|
|
|
/**Es gibt ein Problem mit einem Namen */
|
|
reportedName: boolean;
|
|
|
|
/**Es gibt ein Problem mit einem Text */
|
|
reportedText: boolean;
|
|
|
|
/**Es gibt ein Problem mit einer Nachricht */
|
|
reportedMessage: boolean;
|
|
|
|
/**Es gibt ein Problem mit einer Adresse */
|
|
reportedAddress: boolean;
|
|
|
|
/**Typ der Meldung */
|
|
type: AppUserReportType;
|
|
typeText: string;
|
|
|
|
/**Email-Adresse des Benutzers der die Meldung erstellt hat */
|
|
email: string;
|
|
|
|
/**Zusätzliche Infos des Benutzers der die Meldung erstellt hat */
|
|
comment: string;
|
|
|
|
/**
|
|
* Gibt an ob der Benutzer der gemeldet wurde für den meldenden Benutzer gesperrt werden soll und wie.
|
|
* Diese Info kommt vom Benutzer selbst.
|
|
*/
|
|
blockType: AppUserReportBlockType;
|
|
|
|
/**Der Benutzer der die Meldung erstellt hat, hat zugestimmt via Email kontaktiert zu werden */
|
|
contactAllowed: boolean;
|
|
|
|
/**Interner Kommentar von gehGassi */
|
|
internalComment: string;
|
|
|
|
/**Aktualisiert von? */
|
|
updatedBy: string;
|
|
|
|
/**Datum letzte Aktualisierung */
|
|
updated: Date | string | null;
|
|
|
|
/**Erstellt von? */
|
|
createdBy: string;
|
|
|
|
/**Wann wurde die Blockierung erstellt? */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**FAQ mit Namen aufgelöst */
|
|
export class FaqListItem extends SyncEntity {
|
|
/**Titel der FAQ */
|
|
title: string;
|
|
|
|
/**Reihung des FAQ-Eintrags */
|
|
order: number;
|
|
|
|
/**Frage - Inhalt */
|
|
question: string;
|
|
|
|
/**Frage - Inhalt */
|
|
questionLocalized: string;
|
|
|
|
/**Antwort - Inhalt */
|
|
answer: string;
|
|
|
|
/**Antwort - Inhalt */
|
|
answerLocalized: string;
|
|
|
|
/**Online / Offline Status */
|
|
onlineStatus: OnlineStatus;
|
|
|
|
/**Textdarstellung des Online-Status */
|
|
onlineStatusText: string;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für eine öffentliche Anfrage mit Namen aufgelöst für Listen */
|
|
export class PublicWalkRequestListItem extends SyncEntity {
|
|
/**
|
|
* Id des App-Users / Hundebesitzers der die Anfrage erstellt hat
|
|
* Ist eine AppUserId
|
|
*/
|
|
dogOwnerId: string;
|
|
|
|
/**Name des Hundebesitzers */
|
|
dogOwnerName: string;
|
|
|
|
/**Foto des Hundebesitzers */
|
|
dogOwnerPhoto: string;
|
|
|
|
/**Abholadresse - Stadt / Ort */
|
|
pickupAddress_City: string;
|
|
|
|
/**Abholadresse - PLZ */
|
|
pickupAddress_Zip: string;
|
|
|
|
/**Abholadresse - ISO2 Ländercode */
|
|
pickupAddress_CountryCode: string;
|
|
|
|
/**Welche Art der Anfrage? */
|
|
requestType: PublicWalkRequestType;
|
|
|
|
/**Startdatum und Uhrzeit */
|
|
startDate: Date | string;
|
|
|
|
/**Enddatum und Urzeit */
|
|
endDate: Date | string;
|
|
|
|
/**Anzahl der Hunde */
|
|
dogCount: number;
|
|
|
|
/**Preis den der Besitzer bereit ist zu zahlen */
|
|
price: number;
|
|
|
|
/**Offen als Ausschreibung bis... Ablaufdatum */
|
|
expirationDate: Date | string;
|
|
|
|
/**Anzahl der Antworten */
|
|
responseCount: number;
|
|
|
|
/**Aktueller Status der öffentlichern Anfrage */
|
|
status: PublicWalkRequestStatus;
|
|
|
|
/**Datum wann ein Angebot angenommen wurde */
|
|
placedDate: Date | string | null;
|
|
|
|
/**Wann wurde die Anfrage erstellt? */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für Walks mit Namen aufgelöst für listen */
|
|
export class WalkWithNamesListItem extends SyncEntity {
|
|
/**Art der Walk Anfrage */
|
|
type: WalkType;
|
|
|
|
/**Welche Art von Service soll durchgeführt werden */
|
|
serviceType: WalkServiceType;
|
|
|
|
/**Id des Walkers */
|
|
dogWalkerId: string;
|
|
|
|
/**Name des DogWalkers */
|
|
dogWalkerName: string;
|
|
|
|
/**Foto des Dogwalkers */
|
|
dogWalkerPhoto: string;
|
|
|
|
/**Id des Hundebesitzers */
|
|
dogOwnerId: string;
|
|
|
|
/**Name des Hundebesitzers */
|
|
dogOwnerName: string;
|
|
|
|
/**Foto des Hundebesitzers */
|
|
dogOwnerPhoto: string;
|
|
|
|
/**Id der öffentlichen Anfrage, wenn über diese erstellt */
|
|
publicWalkRequestId: string;
|
|
|
|
/**Anzahl der Hunde */
|
|
dogCount: number;
|
|
|
|
/**Startdatum des Walks mit Urhrzeit */
|
|
start: Date | string;
|
|
|
|
/**Enddatum des Walks mit Uhrzeit */
|
|
end: Date | string;
|
|
|
|
/**Abholadresse - Stadt / Ort */
|
|
pickupAddress_City: string;
|
|
|
|
/**Abholadresse - PLZ */
|
|
pickupAddress_Zip: string;
|
|
|
|
/**Abholadresse - ISO2 Ländercode */
|
|
pickupAddress_CountryCode: string;
|
|
|
|
/**RückgabeAdresse - Stadt / Ort */
|
|
returnAddress_City: string;
|
|
|
|
/**RückgabeAdresse - PLZ */
|
|
returnAddress_Zip: string;
|
|
|
|
/**RückgabeAdresse - ISO2 Ländercode */
|
|
returnAddress_CountryCode: string;
|
|
|
|
/**Preis für den Walk / Das Sitting. Wird gesetzt und kann entweder fix sein (öffentliche Anfrage) oder errechnet */
|
|
price: number;
|
|
|
|
/**Status eines Walks */
|
|
status: WalkStatus;
|
|
|
|
/**Wann wurde der Walk / Sitting gestartet? */
|
|
started: Date | string | null;
|
|
|
|
/**Wann wurde der Walk / Sitting beendet? */
|
|
completed: Date | string | null;
|
|
|
|
/**Wann wurde der Walk / Sitting bestätigt? */
|
|
confirmed: Date | string | null;
|
|
|
|
/**Wann wurde der Walk / Sitting reklamiert? */
|
|
complained: Date | string | null;
|
|
|
|
/**Zahlungsstatus des Walks */
|
|
paymentStatus: PaymentStatus;
|
|
|
|
/**Datum der Erstellung des Walks */
|
|
created: Date | string;
|
|
}
|
|
|
|
export class AppVersionListItem {
|
|
/**Id der Appversion */
|
|
id: number;
|
|
|
|
/**Plattform für die die Version gilt */
|
|
platform: Platform;
|
|
|
|
/**Plattform für die die Version gilt */
|
|
platformText: string;
|
|
|
|
/**Version Major */
|
|
major: number;
|
|
|
|
/**Version Minor */
|
|
minor: number;
|
|
|
|
/**Version Build */
|
|
build: number | null;
|
|
|
|
/**Version Revision */
|
|
revision: number | null;
|
|
|
|
/**Version als string */
|
|
version: string;
|
|
|
|
/**Ist die aktuell verfügbare Version */
|
|
isCurrent: boolean;
|
|
|
|
/**
|
|
* Ist die Version verpflichtend?
|
|
* Muss installiert werden wenn die aktuell installierte Version älter ist
|
|
*/
|
|
isMandatory: boolean;
|
|
|
|
/**Titel des Releases */
|
|
releaseTitle: string;
|
|
|
|
/**Veröffentlichungsdatum */
|
|
releaseDate: Date | string;
|
|
|
|
/**Letztes Update */
|
|
lastUpdate: Date | string;
|
|
|
|
/**Wann erstellt */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für die Anzeige der Konversationen als Liste */
|
|
export class ConversationListItem extends SyncEntity {
|
|
/**Ersteller der Konversation (AppUserId) */
|
|
senderId: string;
|
|
|
|
/**Name des Senders */
|
|
senderName: string;
|
|
|
|
/**Vorname des Senders */
|
|
senderFirstName: string;
|
|
|
|
/**Nachname des Senders */
|
|
senderLastName: string;
|
|
|
|
/**Sender gesperrt */
|
|
senderLocked: boolean;
|
|
|
|
/**Sender blockiert */
|
|
senderBlocked: boolean;
|
|
|
|
/**Typ des Senders. DogOwner oder DogWalker oder Beides */
|
|
senderType: AppUserType;
|
|
|
|
senderTypeText: string;
|
|
|
|
/**Foto des Senders */
|
|
senderPhoto: string;
|
|
|
|
/**Ziel der Konversation (AppUserId) */
|
|
receiverId: string;
|
|
|
|
/**Empfänger Name */
|
|
receiverName: string;
|
|
|
|
/**Vorname des Empfängers */
|
|
receiverFirstName: string;
|
|
|
|
/**Nachname des Empfängers */
|
|
receiverLastName: string;
|
|
|
|
/**Empfänger gesperrt */
|
|
receiverLocked: boolean;
|
|
|
|
/**Empfänger blockiert */
|
|
receiverBlocked: boolean;
|
|
|
|
/**Typ des Empfängers. DogOwner oder DogWalker oder Beides */
|
|
receiverType: AppUserType;
|
|
|
|
receiverTypeText: string;
|
|
|
|
/**Foto des Empfängers */
|
|
receiverPhoto: string;
|
|
|
|
/**Wann wurde die letzte Nachricht gesendet? */
|
|
lastMessage: Date | string | null;
|
|
|
|
/**Anzahl der insgesamt gesendeten Nachrichten */
|
|
messageCount: number;
|
|
|
|
/**Wann wurde die Konversation erstellt */
|
|
created: Date | string;
|
|
}
|
|
|
|
/**Viewmodel für die Listenansicht von Gutschein-Kampagnen */
|
|
export class VoucherCampaignListItem extends SyncEntity {
|
|
/**Id des Kunden */
|
|
customerId: number;
|
|
|
|
/**Name des Kunden */
|
|
customerName: string;
|
|
|
|
/**Titel der Kampagne */
|
|
title: string;
|
|
|
|
/**Präfix der Kampagne */
|
|
prefix: string;
|
|
|
|
/**Startdatum der Kampagne */
|
|
startDate: Date | string | null;
|
|
|
|
/**Enddatum der Kampagne */
|
|
endDate: Date | string | null;
|
|
|
|
/**Typ der Kampagne */
|
|
campaignType: VoucherCampaignType;
|
|
|
|
campaignTypeText: string;
|
|
|
|
/**Status der Kampagne */
|
|
status: VoucherCampaignStatus;
|
|
|
|
statusText: string;
|
|
|
|
/**
|
|
* Anzahl der Gutscheine die erstellt werden sollen.
|
|
* 0 Wenn unbegrenzt
|
|
*/
|
|
numberOfVouchers: number;
|
|
|
|
/**Wie viele Gutscheine wurden bereits verwendet */
|
|
vouchersUsed: number;
|
|
|
|
/**Wie oft darf ein Gutschein pro User verwendet werden */
|
|
maxUsagePerUser: number;
|
|
|
|
/**Gesamt verfügbares Budget */
|
|
budget: number;
|
|
|
|
/**Aktuell verbrauchtes Budget */
|
|
budgetUsed: number;
|
|
|
|
/**Wert für einen Gutschein */
|
|
voucherAmmount: number;
|
|
|
|
/**Zahlungsart der Bestellung */
|
|
paymentType: PaymentType;
|
|
|
|
/**Zahlungsart der Bestellung - Text */
|
|
paymentTypeText: string;
|
|
|
|
/**Zahlungsstatus der Bestellung */
|
|
paymentStatus: PaymentStatus;
|
|
|
|
/**Zahlungsstatus der Bestellung - Text */
|
|
paymentStatusText: string;
|
|
|
|
/**Zahlungsdatum */
|
|
payedDate: Date | string | null;
|
|
|
|
/**Bild für die Kampagne - Allgemein */
|
|
image: string;
|
|
|
|
/**Link für die Kampagne - allgemein wenn nicht überschrieben */
|
|
url: string;
|
|
|
|
/**Name der Kampagne */
|
|
name: string;
|
|
|
|
/**Name - Inhalt */
|
|
nameLocalized: string;
|
|
|
|
/**Art der Geo-Einschränkung */
|
|
geoMode: GeoMode;
|
|
|
|
/**Art der Geo-Einschränkung - Text */
|
|
geoModeText: string;
|
|
|
|
/**Datum der Erstellung */
|
|
created: Date | string;
|
|
}
|
|
|
|
export class SubscriptionListItem extends SyncEntity {
|
|
/**Subscription Code - Produkt ID für Stores */
|
|
code: string;
|
|
|
|
/**Dauer des Abonnements */
|
|
length: SubscriptionLength;
|
|
|
|
lengthText: string;
|
|
|
|
/**Preis des Abonnements in Euro */
|
|
price: number;
|
|
|
|
/**Art des Abonnements - für welchen Benutzer-Typ? */
|
|
appMode: AppMode;
|
|
|
|
appModeText: string;
|
|
|
|
/**Name des Abonnements */
|
|
name: string;
|
|
|
|
/**Name - Inhalt */
|
|
nameLocalized: string;
|
|
|
|
/**Beschreibung des Abonnements */
|
|
description: string;
|
|
|
|
/**Beschreibung - Inhalt */
|
|
descriptionLocalized: string;
|
|
|
|
/**Ist das Abonnement aktiv? */
|
|
enabled: boolean;
|
|
|
|
/**Grace Period in Tagen */
|
|
gracePeriodInDays: number;
|
|
|
|
/**Ist das Abonnement ausgeblendet? */
|
|
hidden: boolean;
|
|
|
|
/**Optional: the Max registered date of the app user to see this subscription */
|
|
maxRegisteredDate: Date | string | null;
|
|
|
|
/**Anzahl der Abonnements insgesamt */
|
|
subscriptionCountTotal: number;
|
|
|
|
/**Anzahl der aktiven Abonnements */
|
|
subscriptionCountActive: number;
|
|
|
|
/**Anzahl der inaktiven Abonnements */
|
|
subscriptionCountInactive: number;
|
|
}
|
|
|
|
export class SubscriptionBookingListItem {
|
|
/**Id des Abonnements des App-Users */
|
|
id: number;
|
|
|
|
/**Id des App-Users */
|
|
appUserId: string;
|
|
|
|
/**Name des App-Users */
|
|
appUserName: string;
|
|
|
|
/**Optional - Foto des Benutzers */
|
|
appUserPhoto: string;
|
|
|
|
/**App user type */
|
|
appUserType: AppUserType;
|
|
|
|
appUserTypeText: string;
|
|
|
|
/**Id des Abonnements */
|
|
subscriptionId: string;
|
|
|
|
/**Code des Abonnements */
|
|
subscriptionCode: string;
|
|
|
|
/**Dauer des Abonnements */
|
|
subscriptionLength: SubscriptionLength;
|
|
|
|
lengthText: string;
|
|
|
|
/**Preis des Abonnements in Euro */
|
|
subscriptionPrice: number;
|
|
|
|
/**Art des Abonnements - für welchen Benutzer-Typ? */
|
|
subscriptionAppMode: AppMode;
|
|
|
|
appModeText: string;
|
|
|
|
/**Name des Abonnements */
|
|
subscriptionName: string;
|
|
|
|
/**Ist das Abonnement gültig? */
|
|
isValid: boolean;
|
|
|
|
/**Wann läuft das Abonnement ab? */
|
|
expirationDate: Date | string | null;
|
|
|
|
/**Wann wurde das Abonnement zuletzt verlängert? */
|
|
lastRenewalDate: Date | string | null;
|
|
|
|
/**Letzte Aktualisierung */
|
|
lastUpdate: Date | string | null;
|
|
|
|
/**Wurde das Abonnement manuell erstellt? */
|
|
manual: boolean;
|
|
|
|
/**Erstellt von? */
|
|
createdBy: string;
|
|
|
|
/**Wann wurde das Abonnement erstellt? */
|
|
created: Date | string;
|
|
} |