Required role: | Consumer |
library ConsumerApi;
import 'package:servicestack/servicestack.dart';
enum Parking
{
StreetParking,
ParkingGarageNearby,
}
enum PaymentOption
{
Visa,
MasterCard,
AmericanExpress,
Diners,
Vipps,
}
enum PriceMainDish
{
Value,
Medium,
High,
FineDining,
}
enum DayOfWeek
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
}
class OpenAtTimeDto implements IConvertible
{
DayOfWeek? weekDay;
int? hour;
int? minute;
OpenAtTimeDto({this.weekDay,this.hour,this.minute});
OpenAtTimeDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
weekDay = JsonConverters.fromJson(json['weekDay'],'DayOfWeek',context!);
hour = json['hour'];
minute = json['minute'];
return this;
}
Map<String, dynamic> toJson() => {
'weekDay': JsonConverters.toJson(weekDay,'DayOfWeek',context!),
'hour': hour,
'minute': minute
};
getTypeName() => "OpenAtTimeDto";
TypeContext? context = _ctx;
}
class ImageUrls implements IConvertible
{
String? preview;
String? small;
String? medium;
String? large;
ImageUrls({this.preview,this.small,this.medium,this.large});
ImageUrls.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
preview = json['preview'];
small = json['small'];
medium = json['medium'];
large = json['large'];
return this;
}
Map<String, dynamic> toJson() => {
'preview': preview,
'small': small,
'medium': medium,
'large': large
};
getTypeName() => "ImageUrls";
TypeContext? context = _ctx;
}
class OpeningHour implements IConvertible
{
int? openAtHour;
int? openAtMinute;
int? closeAtHour;
int? closeAtMinute;
OpeningHour({this.openAtHour,this.openAtMinute,this.closeAtHour,this.closeAtMinute});
OpeningHour.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
openAtHour = json['openAtHour'];
openAtMinute = json['openAtMinute'];
closeAtHour = json['closeAtHour'];
closeAtMinute = json['closeAtMinute'];
return this;
}
Map<String, dynamic> toJson() => {
'openAtHour': openAtHour,
'openAtMinute': openAtMinute,
'closeAtHour': closeAtHour,
'closeAtMinute': closeAtMinute
};
getTypeName() => "OpeningHour";
TypeContext? context = _ctx;
}
class WeeklyOpeningHours implements IConvertible
{
OpeningHour? monday;
OpeningHour? tuesday;
OpeningHour? wednesday;
OpeningHour? thursday;
OpeningHour? friday;
OpeningHour? saturday;
OpeningHour? sunday;
WeeklyOpeningHours({this.monday,this.tuesday,this.wednesday,this.thursday,this.friday,this.saturday,this.sunday});
WeeklyOpeningHours.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
monday = JsonConverters.fromJson(json['monday'],'OpeningHour',context!);
tuesday = JsonConverters.fromJson(json['tuesday'],'OpeningHour',context!);
wednesday = JsonConverters.fromJson(json['wednesday'],'OpeningHour',context!);
thursday = JsonConverters.fromJson(json['thursday'],'OpeningHour',context!);
friday = JsonConverters.fromJson(json['friday'],'OpeningHour',context!);
saturday = JsonConverters.fromJson(json['saturday'],'OpeningHour',context!);
sunday = JsonConverters.fromJson(json['sunday'],'OpeningHour',context!);
return this;
}
Map<String, dynamic> toJson() => {
'monday': JsonConverters.toJson(monday,'OpeningHour',context!),
'tuesday': JsonConverters.toJson(tuesday,'OpeningHour',context!),
'wednesday': JsonConverters.toJson(wednesday,'OpeningHour',context!),
'thursday': JsonConverters.toJson(thursday,'OpeningHour',context!),
'friday': JsonConverters.toJson(friday,'OpeningHour',context!),
'saturday': JsonConverters.toJson(saturday,'OpeningHour',context!),
'sunday': JsonConverters.toJson(sunday,'OpeningHour',context!)
};
getTypeName() => "WeeklyOpeningHours";
TypeContext? context = _ctx;
}
class OpeningHours implements IConvertible
{
WeeklyOpeningHours? weekly;
OpeningHours({this.weekly});
OpeningHours.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
weekly = JsonConverters.fromJson(json['weekly'],'WeeklyOpeningHours',context!);
return this;
}
Map<String, dynamic> toJson() => {
'weekly': JsonConverters.toJson(weekly,'WeeklyOpeningHours',context!)
};
getTypeName() => "OpeningHours";
TypeContext? context = _ctx;
}
enum PlaceType
{
Mall,
Regular,
}
class PriceMainDishApiDto implements IConvertible
{
String? title;
PriceMainDish? slug;
PriceMainDishApiDto({this.title,this.slug});
PriceMainDishApiDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
title = json['title'];
slug = JsonConverters.fromJson(json['slug'],'PriceMainDish',context!);
return this;
}
Map<String, dynamic> toJson() => {
'title': title,
'slug': JsonConverters.toJson(slug,'PriceMainDish',context!)
};
getTypeName() => "PriceMainDishApiDto";
TypeContext? context = _ctx;
}
class TimeZoneDto implements IConvertible
{
Duration? baseUtcOffset;
String? daylightName;
String? displayName;
String? id;
String? standardName;
bool? supportsDaylightSavingTime;
TimeZoneDto({this.baseUtcOffset,this.daylightName,this.displayName,this.id,this.standardName,this.supportsDaylightSavingTime});
TimeZoneDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
baseUtcOffset = JsonConverters.fromJson(json['baseUtcOffset'],'Duration',context!);
daylightName = json['daylightName'];
displayName = json['displayName'];
id = json['id'];
standardName = json['standardName'];
supportsDaylightSavingTime = json['supportsDaylightSavingTime'];
return this;
}
Map<String, dynamic> toJson() => {
'baseUtcOffset': JsonConverters.toJson(baseUtcOffset,'Duration',context!),
'daylightName': daylightName,
'displayName': displayName,
'id': id,
'standardName': standardName,
'supportsDaylightSavingTime': supportsDaylightSavingTime
};
getTypeName() => "TimeZoneDto";
TypeContext? context = _ctx;
}
class PlaceContact implements IConvertible
{
String? phone;
String? email;
String? website;
String? webShop;
PlaceContact({this.phone,this.email,this.website,this.webShop});
PlaceContact.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
phone = json['phone'];
email = json['email'];
website = json['website'];
webShop = json['webShop'];
return this;
}
Map<String, dynamic> toJson() => {
'phone': phone,
'email': email,
'website': website,
'webShop': webShop
};
getTypeName() => "PlaceContact";
TypeContext? context = _ctx;
}
class PlaceAddress implements IConvertible
{
String? street;
String? postalCode;
String? region;
String? countryCode;
PlaceAddress({this.street,this.postalCode,this.region,this.countryCode});
PlaceAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
street = json['street'];
postalCode = json['postalCode'];
region = json['region'];
countryCode = json['countryCode'];
return this;
}
Map<String, dynamic> toJson() => {
'street': street,
'postalCode': postalCode,
'region': region,
'countryCode': countryCode
};
getTypeName() => "PlaceAddress";
TypeContext? context = _ctx;
}
class CategoryTreeApiDto implements IConvertible
{
String? name;
String? slug;
String? absoluteSlug;
String? imageUrl;
String? allImageUrl;
String? iconImageUrl;
int? position;
List<CategoryTreeApiDto>? children = [];
CategoryTreeApiDto({this.name,this.slug,this.absoluteSlug,this.imageUrl,this.allImageUrl,this.iconImageUrl,this.position,this.children});
CategoryTreeApiDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
name = json['name'];
slug = json['slug'];
absoluteSlug = json['absoluteSlug'];
imageUrl = json['imageUrl'];
allImageUrl = json['allImageUrl'];
iconImageUrl = json['iconImageUrl'];
position = json['position'];
children = JsonConverters.fromJson(json['children'],'List<CategoryTreeApiDto>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'name': name,
'slug': slug,
'absoluteSlug': absoluteSlug,
'imageUrl': imageUrl,
'allImageUrl': allImageUrl,
'iconImageUrl': iconImageUrl,
'position': position,
'children': JsonConverters.toJson(children,'List<CategoryTreeApiDto>',context!)
};
getTypeName() => "CategoryTreeApiDto";
TypeContext? context = _ctx;
}
class WearPriceProfileEsDto implements IConvertible
{
String? slug;
String? label;
WearPriceProfileEsDto({this.slug,this.label});
WearPriceProfileEsDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
slug = json['slug'];
label = json['label'];
return this;
}
Map<String, dynamic> toJson() => {
'slug': slug,
'label': label
};
getTypeName() => "WearPriceProfileEsDto";
TypeContext? context = _ctx;
}
class BrandApiDto implements IConvertible
{
String? name;
BrandApiDto({this.name});
BrandApiDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
name = json['name'];
return this;
}
Map<String, dynamic> toJson() => {
'name': name
};
getTypeName() => "BrandApiDto";
TypeContext? context = _ctx;
}
class PlaceCustomBrandApiDto implements IConvertible
{
String? name;
PlaceCustomBrandApiDto({this.name});
PlaceCustomBrandApiDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
name = json['name'];
return this;
}
Map<String, dynamic> toJson() => {
'name': name
};
getTypeName() => "PlaceCustomBrandApiDto";
TypeContext? context = _ctx;
}
class PlaceSelectedBrandApiDto implements IConvertible
{
BrandApiDto? brand;
List<String>? categoryAbsoluteSlugs = [];
PlaceCustomBrandApiDto? placeCustomBrand;
PlaceSelectedBrandApiDto({this.brand,this.categoryAbsoluteSlugs,this.placeCustomBrand});
PlaceSelectedBrandApiDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
brand = JsonConverters.fromJson(json['brand'],'BrandApiDto',context!);
categoryAbsoluteSlugs = JsonConverters.fromJson(json['categoryAbsoluteSlugs'],'List<String>',context!);
placeCustomBrand = JsonConverters.fromJson(json['placeCustomBrand'],'PlaceCustomBrandApiDto',context!);
return this;
}
Map<String, dynamic> toJson() => {
'brand': JsonConverters.toJson(brand,'BrandApiDto',context!),
'categoryAbsoluteSlugs': JsonConverters.toJson(categoryAbsoluteSlugs,'List<String>',context!),
'placeCustomBrand': JsonConverters.toJson(placeCustomBrand,'PlaceCustomBrandApiDto',context!)
};
getTypeName() => "PlaceSelectedBrandApiDto";
TypeContext? context = _ctx;
}
class PlaceBasicApiDto implements IConvertible
{
int? id;
String? guid;
String? overview;
String? name;
double? longitude;
double? latitude;
bool? claimed;
String? organizationNumber;
String? countryCode;
OpeningHours? openingHours;
bool? wheelchairAccessible;
bool? wifi;
bool? outdoorSeating;
bool? saveFoodAndMoney;
PlaceType? placeType;
PriceMainDishApiDto? priceMainDish;
TimeZoneDto? timeZoneDto;
int? businessId;
PlaceContact? contact;
PlaceAddress? address;
List<CategoryTreeApiDto>? categories = [];
ImageUrls? logoUrl;
ImageUrls? imageUrl;
List<WearPriceProfileEsDto>? wearPriceProfiles = [];
List<PlaceSelectedBrandApiDto>? brands = [];
String? floor;
PlaceBasicApiDto({this.id,this.guid,this.overview,this.name,this.longitude,this.latitude,this.claimed,this.organizationNumber,this.countryCode,this.openingHours,this.wheelchairAccessible,this.wifi,this.outdoorSeating,this.saveFoodAndMoney,this.placeType,this.priceMainDish,this.timeZoneDto,this.businessId,this.contact,this.address,this.categories,this.logoUrl,this.imageUrl,this.wearPriceProfiles,this.brands,this.floor});
PlaceBasicApiDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
guid = json['guid'];
overview = json['overview'];
name = json['name'];
longitude = JsonConverters.toDouble(json['longitude']);
latitude = JsonConverters.toDouble(json['latitude']);
claimed = json['claimed'];
organizationNumber = json['organizationNumber'];
countryCode = json['countryCode'];
openingHours = JsonConverters.fromJson(json['openingHours'],'OpeningHours',context!);
wheelchairAccessible = json['wheelchairAccessible'];
wifi = json['wifi'];
outdoorSeating = json['outdoorSeating'];
saveFoodAndMoney = json['saveFoodAndMoney'];
placeType = JsonConverters.fromJson(json['placeType'],'PlaceType',context!);
priceMainDish = JsonConverters.fromJson(json['priceMainDish'],'PriceMainDishApiDto',context!);
timeZoneDto = JsonConverters.fromJson(json['timeZoneDto'],'TimeZoneDto',context!);
businessId = json['businessId'];
contact = JsonConverters.fromJson(json['contact'],'PlaceContact',context!);
address = JsonConverters.fromJson(json['address'],'PlaceAddress',context!);
categories = JsonConverters.fromJson(json['categories'],'List<CategoryTreeApiDto>',context!);
logoUrl = JsonConverters.fromJson(json['logoUrl'],'ImageUrls',context!);
imageUrl = JsonConverters.fromJson(json['imageUrl'],'ImageUrls',context!);
wearPriceProfiles = JsonConverters.fromJson(json['wearPriceProfiles'],'List<WearPriceProfileEsDto>',context!);
brands = JsonConverters.fromJson(json['brands'],'List<PlaceSelectedBrandApiDto>',context!);
floor = json['floor'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'guid': guid,
'overview': overview,
'name': name,
'longitude': longitude,
'latitude': latitude,
'claimed': claimed,
'organizationNumber': organizationNumber,
'countryCode': countryCode,
'openingHours': JsonConverters.toJson(openingHours,'OpeningHours',context!),
'wheelchairAccessible': wheelchairAccessible,
'wifi': wifi,
'outdoorSeating': outdoorSeating,
'saveFoodAndMoney': saveFoodAndMoney,
'placeType': JsonConverters.toJson(placeType,'PlaceType',context!),
'priceMainDish': JsonConverters.toJson(priceMainDish,'PriceMainDishApiDto',context!),
'timeZoneDto': JsonConverters.toJson(timeZoneDto,'TimeZoneDto',context!),
'businessId': businessId,
'contact': JsonConverters.toJson(contact,'PlaceContact',context!),
'address': JsonConverters.toJson(address,'PlaceAddress',context!),
'categories': JsonConverters.toJson(categories,'List<CategoryTreeApiDto>',context!),
'logoUrl': JsonConverters.toJson(logoUrl,'ImageUrls',context!),
'imageUrl': JsonConverters.toJson(imageUrl,'ImageUrls',context!),
'wearPriceProfiles': JsonConverters.toJson(wearPriceProfiles,'List<WearPriceProfileEsDto>',context!),
'brands': JsonConverters.toJson(brands,'List<PlaceSelectedBrandApiDto>',context!),
'floor': floor
};
getTypeName() => "PlaceBasicApiDto";
TypeContext? context = _ctx;
}
class AdMessageDetailsBase implements IConvertible
{
String? description;
List<String>? moreInformation = [];
AdMessageDetailsBase({this.description,this.moreInformation});
AdMessageDetailsBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
description = json['description'];
moreInformation = JsonConverters.fromJson(json['moreInformation'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'description': description,
'moreInformation': JsonConverters.toJson(moreInformation,'List<String>',context!)
};
getTypeName() => "AdMessageDetailsBase";
TypeContext? context = _ctx;
}
class AdMessageDetailsPercentageDiscountOnAllMerchandise extends AdMessageDetailsBase implements IConvertible
{
double? value;
AdMessageDetailsPercentageDiscountOnAllMerchandise({this.value});
AdMessageDetailsPercentageDiscountOnAllMerchandise.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
value = JsonConverters.toDouble(json['value']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'value': value
});
getTypeName() => "AdMessageDetailsPercentageDiscountOnAllMerchandise";
TypeContext? context = _ctx;
}
class AdMessageDetailsPercentageDiscountRangeOnAllMerchandise extends AdMessageDetailsBase implements IConvertible
{
double? start;
double? stop;
AdMessageDetailsPercentageDiscountRangeOnAllMerchandise({this.start,this.stop});
AdMessageDetailsPercentageDiscountRangeOnAllMerchandise.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
start = JsonConverters.toDouble(json['start']);
stop = JsonConverters.toDouble(json['stop']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'start': start,
'stop': stop
});
getTypeName() => "AdMessageDetailsPercentageDiscountRangeOnAllMerchandise";
TypeContext? context = _ctx;
}
class AdMessageDetailsPercentageDiscountOnSelectedMerchandise extends AdMessageDetailsBase implements IConvertible
{
double? value;
AdMessageDetailsPercentageDiscountOnSelectedMerchandise({this.value});
AdMessageDetailsPercentageDiscountOnSelectedMerchandise.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
value = JsonConverters.toDouble(json['value']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'value': value
});
getTypeName() => "AdMessageDetailsPercentageDiscountOnSelectedMerchandise";
TypeContext? context = _ctx;
}
class AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise extends AdMessageDetailsBase implements IConvertible
{
double? value;
AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise({this.value});
AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
value = JsonConverters.toDouble(json['value']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'value': value
});
getTypeName() => "AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise";
TypeContext? context = _ctx;
}
class AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise extends AdMessageDetailsBase implements IConvertible
{
double? start;
double? stop;
AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise({this.start,this.stop});
AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
start = JsonConverters.toDouble(json['start']);
stop = JsonConverters.toDouble(json['stop']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'start': start,
'stop': stop
});
getTypeName() => "AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise";
TypeContext? context = _ctx;
}
class AdMessageDetailsTotalAmountOverXgivesYdiscount extends AdMessageDetailsBase implements IConvertible
{
double? ifTotalAmountMoreThanX;
double? thenYouGetDiscountPercentageY;
AdMessageDetailsTotalAmountOverXgivesYdiscount({this.ifTotalAmountMoreThanX,this.thenYouGetDiscountPercentageY});
AdMessageDetailsTotalAmountOverXgivesYdiscount.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
ifTotalAmountMoreThanX = JsonConverters.toDouble(json['ifTotalAmountMoreThanX']);
thenYouGetDiscountPercentageY = JsonConverters.toDouble(json['thenYouGetDiscountPercentageY']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'ifTotalAmountMoreThanX': ifTotalAmountMoreThanX,
'thenYouGetDiscountPercentageY': thenYouGetDiscountPercentageY
});
getTypeName() => "AdMessageDetailsTotalAmountOverXgivesYdiscount";
TypeContext? context = _ctx;
}
class AdMessageDetailsXforYdiscount extends AdMessageDetailsBase implements IConvertible
{
int? ifYouBuyX;
int? thenYouGetY;
AdMessageDetailsXforYdiscount({this.ifYouBuyX,this.thenYouGetY});
AdMessageDetailsXforYdiscount.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
ifYouBuyX = json['ifYouBuyX'];
thenYouGetY = json['thenYouGetY'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'ifYouBuyX': ifYouBuyX,
'thenYouGetY': thenYouGetY
});
getTypeName() => "AdMessageDetailsXforYdiscount";
TypeContext? context = _ctx;
}
class AdMessageDetailsNewArrivals extends AdMessageDetailsBase implements IConvertible
{
AdMessageDetailsNewArrivals();
AdMessageDetailsNewArrivals.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "AdMessageDetailsNewArrivals";
TypeContext? context = _ctx;
}
class AdMessageDetailsFreetext extends AdMessageDetailsBase implements IConvertible
{
String? title;
AdMessageDetailsFreetext({this.title});
AdMessageDetailsFreetext.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
title = json['title'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'title': title
});
getTypeName() => "AdMessageDetailsFreetext";
TypeContext? context = _ctx;
}
class AdMessageDetailsTodaysBreakFastOffer extends AdMessageDetailsBase implements IConvertible
{
double? value;
AdMessageDetailsTodaysBreakFastOffer({this.value});
AdMessageDetailsTodaysBreakFastOffer.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
value = JsonConverters.toDouble(json['value']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'value': value
});
getTypeName() => "AdMessageDetailsTodaysBreakFastOffer";
TypeContext? context = _ctx;
}
class AdMessageDetailsTodaysLunchOffer extends AdMessageDetailsBase implements IConvertible
{
double? value;
AdMessageDetailsTodaysLunchOffer({this.value});
AdMessageDetailsTodaysLunchOffer.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
value = JsonConverters.toDouble(json['value']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'value': value
});
getTypeName() => "AdMessageDetailsTodaysLunchOffer";
TypeContext? context = _ctx;
}
class AdMessageDetailsTodaysDinnerOffer extends AdMessageDetailsBase implements IConvertible
{
double? value;
AdMessageDetailsTodaysDinnerOffer({this.value});
AdMessageDetailsTodaysDinnerOffer.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
value = JsonConverters.toDouble(json['value']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'value': value
});
getTypeName() => "AdMessageDetailsTodaysDinnerOffer";
TypeContext? context = _ctx;
}
class AdMessageDetailsSaveFoodAndMoney extends AdMessageDetailsBase implements IConvertible
{
double? value;
AdMessageDetailsSaveFoodAndMoney({this.value});
AdMessageDetailsSaveFoodAndMoney.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
value = JsonConverters.toDouble(json['value']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'value': value
});
getTypeName() => "AdMessageDetailsSaveFoodAndMoney";
TypeContext? context = _ctx;
}
class AdMessageDetailsPercentageOffYourFoodBill extends AdMessageDetailsBase implements IConvertible
{
double? percentage;
AdMessageDetailsPercentageOffYourFoodBill({this.percentage});
AdMessageDetailsPercentageOffYourFoodBill.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
percentage = JsonConverters.toDouble(json['percentage']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'percentage': percentage
});
getTypeName() => "AdMessageDetailsPercentageOffYourFoodBill";
TypeContext? context = _ctx;
}
class AdMessageDetailsHappyHour extends AdMessageDetailsBase implements IConvertible
{
AdMessageDetailsHappyHour();
AdMessageDetailsHappyHour.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "AdMessageDetailsHappyHour";
TypeContext? context = _ctx;
}
class AdMessageDetailsSomeFreeTablesLeftToday extends AdMessageDetailsBase implements IConvertible
{
AdMessageDetailsSomeFreeTablesLeftToday();
AdMessageDetailsSomeFreeTablesLeftToday.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "AdMessageDetailsSomeFreeTablesLeftToday";
TypeContext? context = _ctx;
}
class AdMessageDetailsTwoDishesForThePriceOfOne extends AdMessageDetailsBase implements IConvertible
{
AdMessageDetailsTwoDishesForThePriceOfOne();
AdMessageDetailsTwoDishesForThePriceOfOne.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "AdMessageDetailsTwoDishesForThePriceOfOne";
TypeContext? context = _ctx;
}
class AdMessageDetailsUnion implements IConvertible
{
AdMessageDetailsPercentageDiscountOnAllMerchandise? percentageOnAllMerchandise;
AdMessageDetailsPercentageDiscountRangeOnAllMerchandise? percentageRangeOnAllMerchandise;
AdMessageDetailsPercentageDiscountOnSelectedMerchandise? percentageOnSelectedMerchandise;
AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise? absoluteOnSelectedMerchandise;
AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise? absoluteRangeOnAllMerchandise;
AdMessageDetailsTotalAmountOverXgivesYdiscount? totalAmountOverXgivesYdiscount;
AdMessageDetailsXforYdiscount? xforY;
AdMessageDetailsNewArrivals? newArrivals;
AdMessageDetailsFreetext? freetext;
AdMessageDetailsTodaysBreakFastOffer? todaysBreakFastOffer;
AdMessageDetailsTodaysLunchOffer? todaysLunchOffer;
AdMessageDetailsTodaysDinnerOffer? todaysDinnerOffer;
AdMessageDetailsSaveFoodAndMoney? saveFoodAndMoney;
AdMessageDetailsPercentageOffYourFoodBill? percentageOfYourFoodBill;
AdMessageDetailsHappyHour? happyHour;
AdMessageDetailsSomeFreeTablesLeftToday? someFreeTablesLeftToday;
AdMessageDetailsTwoDishesForThePriceOfOne? twoDishesForThePriceOfOne;
AdMessageDetailsUnion({this.percentageOnAllMerchandise,this.percentageRangeOnAllMerchandise,this.percentageOnSelectedMerchandise,this.absoluteOnSelectedMerchandise,this.absoluteRangeOnAllMerchandise,this.totalAmountOverXgivesYdiscount,this.xforY,this.newArrivals,this.freetext,this.todaysBreakFastOffer,this.todaysLunchOffer,this.todaysDinnerOffer,this.saveFoodAndMoney,this.percentageOfYourFoodBill,this.happyHour,this.someFreeTablesLeftToday,this.twoDishesForThePriceOfOne});
AdMessageDetailsUnion.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
percentageOnAllMerchandise = JsonConverters.fromJson(json['percentageOnAllMerchandise'],'AdMessageDetailsPercentageDiscountOnAllMerchandise',context!);
percentageRangeOnAllMerchandise = JsonConverters.fromJson(json['percentageRangeOnAllMerchandise'],'AdMessageDetailsPercentageDiscountRangeOnAllMerchandise',context!);
percentageOnSelectedMerchandise = JsonConverters.fromJson(json['percentageOnSelectedMerchandise'],'AdMessageDetailsPercentageDiscountOnSelectedMerchandise',context!);
absoluteOnSelectedMerchandise = JsonConverters.fromJson(json['absoluteOnSelectedMerchandise'],'AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise',context!);
absoluteRangeOnAllMerchandise = JsonConverters.fromJson(json['absoluteRangeOnAllMerchandise'],'AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise',context!);
totalAmountOverXgivesYdiscount = JsonConverters.fromJson(json['totalAmountOverXgivesYdiscount'],'AdMessageDetailsTotalAmountOverXgivesYdiscount',context!);
xforY = JsonConverters.fromJson(json['xforY'],'AdMessageDetailsXforYdiscount',context!);
newArrivals = JsonConverters.fromJson(json['newArrivals'],'AdMessageDetailsNewArrivals',context!);
freetext = JsonConverters.fromJson(json['freetext'],'AdMessageDetailsFreetext',context!);
todaysBreakFastOffer = JsonConverters.fromJson(json['todaysBreakFastOffer'],'AdMessageDetailsTodaysBreakFastOffer',context!);
todaysLunchOffer = JsonConverters.fromJson(json['todaysLunchOffer'],'AdMessageDetailsTodaysLunchOffer',context!);
todaysDinnerOffer = JsonConverters.fromJson(json['todaysDinnerOffer'],'AdMessageDetailsTodaysDinnerOffer',context!);
saveFoodAndMoney = JsonConverters.fromJson(json['saveFoodAndMoney'],'AdMessageDetailsSaveFoodAndMoney',context!);
percentageOfYourFoodBill = JsonConverters.fromJson(json['percentageOfYourFoodBill'],'AdMessageDetailsPercentageOffYourFoodBill',context!);
happyHour = JsonConverters.fromJson(json['happyHour'],'AdMessageDetailsHappyHour',context!);
someFreeTablesLeftToday = JsonConverters.fromJson(json['someFreeTablesLeftToday'],'AdMessageDetailsSomeFreeTablesLeftToday',context!);
twoDishesForThePriceOfOne = JsonConverters.fromJson(json['twoDishesForThePriceOfOne'],'AdMessageDetailsTwoDishesForThePriceOfOne',context!);
return this;
}
Map<String, dynamic> toJson() => {
'percentageOnAllMerchandise': JsonConverters.toJson(percentageOnAllMerchandise,'AdMessageDetailsPercentageDiscountOnAllMerchandise',context!),
'percentageRangeOnAllMerchandise': JsonConverters.toJson(percentageRangeOnAllMerchandise,'AdMessageDetailsPercentageDiscountRangeOnAllMerchandise',context!),
'percentageOnSelectedMerchandise': JsonConverters.toJson(percentageOnSelectedMerchandise,'AdMessageDetailsPercentageDiscountOnSelectedMerchandise',context!),
'absoluteOnSelectedMerchandise': JsonConverters.toJson(absoluteOnSelectedMerchandise,'AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise',context!),
'absoluteRangeOnAllMerchandise': JsonConverters.toJson(absoluteRangeOnAllMerchandise,'AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise',context!),
'totalAmountOverXgivesYdiscount': JsonConverters.toJson(totalAmountOverXgivesYdiscount,'AdMessageDetailsTotalAmountOverXgivesYdiscount',context!),
'xforY': JsonConverters.toJson(xforY,'AdMessageDetailsXforYdiscount',context!),
'newArrivals': JsonConverters.toJson(newArrivals,'AdMessageDetailsNewArrivals',context!),
'freetext': JsonConverters.toJson(freetext,'AdMessageDetailsFreetext',context!),
'todaysBreakFastOffer': JsonConverters.toJson(todaysBreakFastOffer,'AdMessageDetailsTodaysBreakFastOffer',context!),
'todaysLunchOffer': JsonConverters.toJson(todaysLunchOffer,'AdMessageDetailsTodaysLunchOffer',context!),
'todaysDinnerOffer': JsonConverters.toJson(todaysDinnerOffer,'AdMessageDetailsTodaysDinnerOffer',context!),
'saveFoodAndMoney': JsonConverters.toJson(saveFoodAndMoney,'AdMessageDetailsSaveFoodAndMoney',context!),
'percentageOfYourFoodBill': JsonConverters.toJson(percentageOfYourFoodBill,'AdMessageDetailsPercentageOffYourFoodBill',context!),
'happyHour': JsonConverters.toJson(happyHour,'AdMessageDetailsHappyHour',context!),
'someFreeTablesLeftToday': JsonConverters.toJson(someFreeTablesLeftToday,'AdMessageDetailsSomeFreeTablesLeftToday',context!),
'twoDishesForThePriceOfOne': JsonConverters.toJson(twoDishesForThePriceOfOne,'AdMessageDetailsTwoDishesForThePriceOfOne',context!)
};
getTypeName() => "AdMessageDetailsUnion";
TypeContext? context = _ctx;
}
class AdMessageDto implements IConvertible
{
int? id;
String? guid;
String? title;
DateTime? startAt;
DateTime? stopAt;
DateTime? publishAt;
List<ImageUrls>? imageUrls = [];
PlaceBasicApiDto? place;
AdMessageDetailsUnion? detailsUnion;
int? starredCount;
AdMessageDto({this.id,this.guid,this.title,this.startAt,this.stopAt,this.publishAt,this.imageUrls,this.place,this.detailsUnion,this.starredCount});
AdMessageDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
guid = json['guid'];
title = json['title'];
startAt = JsonConverters.fromJson(json['startAt'],'DateTime',context!);
stopAt = JsonConverters.fromJson(json['stopAt'],'DateTime',context!);
publishAt = JsonConverters.fromJson(json['publishAt'],'DateTime',context!);
imageUrls = JsonConverters.fromJson(json['imageUrls'],'List<ImageUrls>',context!);
place = JsonConverters.fromJson(json['place'],'PlaceBasicApiDto',context!);
detailsUnion = JsonConverters.fromJson(json['detailsUnion'],'AdMessageDetailsUnion',context!);
starredCount = json['starredCount'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'guid': guid,
'title': title,
'startAt': JsonConverters.toJson(startAt,'DateTime',context!),
'stopAt': JsonConverters.toJson(stopAt,'DateTime',context!),
'publishAt': JsonConverters.toJson(publishAt,'DateTime',context!),
'imageUrls': JsonConverters.toJson(imageUrls,'List<ImageUrls>',context!),
'place': JsonConverters.toJson(place,'PlaceBasicApiDto',context!),
'detailsUnion': JsonConverters.toJson(detailsUnion,'AdMessageDetailsUnion',context!),
'starredCount': starredCount
};
getTypeName() => "AdMessageDto";
TypeContext? context = _ctx;
}
enum FeatureType
{
BarSpeciality,
BarType,
Cuisine,
SaveFoodAndMoney,
MealType,
Menu,
OutdoorSeating,
Parking,
PaymentOptions,
PriceMainDish,
SubCategories,
SubCategoriesAndBrands,
EatingSuitabilities,
TakeAway,
WearPriceProfile,
WheelChairAccessible,
Wifi,
WebShop,
Filtering,
}
TypeContext _ctx = TypeContext(library: 'ConsumerApi', types: <String, TypeInfo> {
'Parking': TypeInfo(TypeOf.Enum, enumValues:Parking.values),
'PaymentOption': TypeInfo(TypeOf.Enum, enumValues:PaymentOption.values),
'PriceMainDish': TypeInfo(TypeOf.Enum, enumValues:PriceMainDish.values),
'DayOfWeek': TypeInfo(TypeOf.Enum, enumValues:DayOfWeek.values),
'OpenAtTimeDto': TypeInfo(TypeOf.Class, create:() => OpenAtTimeDto()),
'ImageUrls': TypeInfo(TypeOf.Class, create:() => ImageUrls()),
'OpeningHour': TypeInfo(TypeOf.Class, create:() => OpeningHour()),
'WeeklyOpeningHours': TypeInfo(TypeOf.Class, create:() => WeeklyOpeningHours()),
'OpeningHours': TypeInfo(TypeOf.Class, create:() => OpeningHours()),
'PlaceType': TypeInfo(TypeOf.Enum, enumValues:PlaceType.values),
'PriceMainDishApiDto': TypeInfo(TypeOf.Class, create:() => PriceMainDishApiDto()),
'TimeZoneDto': TypeInfo(TypeOf.Class, create:() => TimeZoneDto()),
'PlaceContact': TypeInfo(TypeOf.Class, create:() => PlaceContact()),
'PlaceAddress': TypeInfo(TypeOf.Class, create:() => PlaceAddress()),
'CategoryTreeApiDto': TypeInfo(TypeOf.Class, create:() => CategoryTreeApiDto()),
'List<CategoryTreeApiDto>': TypeInfo(TypeOf.Class, create:() => <CategoryTreeApiDto>[]),
'WearPriceProfileEsDto': TypeInfo(TypeOf.Class, create:() => WearPriceProfileEsDto()),
'BrandApiDto': TypeInfo(TypeOf.Class, create:() => BrandApiDto()),
'PlaceCustomBrandApiDto': TypeInfo(TypeOf.Class, create:() => PlaceCustomBrandApiDto()),
'PlaceSelectedBrandApiDto': TypeInfo(TypeOf.Class, create:() => PlaceSelectedBrandApiDto()),
'PlaceBasicApiDto': TypeInfo(TypeOf.Class, create:() => PlaceBasicApiDto()),
'List<WearPriceProfileEsDto>': TypeInfo(TypeOf.Class, create:() => <WearPriceProfileEsDto>[]),
'List<PlaceSelectedBrandApiDto>': TypeInfo(TypeOf.Class, create:() => <PlaceSelectedBrandApiDto>[]),
'AdMessageDetailsBase': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsBase()),
'AdMessageDetailsPercentageDiscountOnAllMerchandise': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsPercentageDiscountOnAllMerchandise()),
'AdMessageDetailsPercentageDiscountRangeOnAllMerchandise': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsPercentageDiscountRangeOnAllMerchandise()),
'AdMessageDetailsPercentageDiscountOnSelectedMerchandise': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsPercentageDiscountOnSelectedMerchandise()),
'AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsAbsoluteDiscountOnSelectedMerchandise()),
'AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsAbsoluteDiscountRangeOnAllMerchandise()),
'AdMessageDetailsTotalAmountOverXgivesYdiscount': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsTotalAmountOverXgivesYdiscount()),
'AdMessageDetailsXforYdiscount': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsXforYdiscount()),
'AdMessageDetailsNewArrivals': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsNewArrivals()),
'AdMessageDetailsFreetext': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsFreetext()),
'AdMessageDetailsTodaysBreakFastOffer': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsTodaysBreakFastOffer()),
'AdMessageDetailsTodaysLunchOffer': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsTodaysLunchOffer()),
'AdMessageDetailsTodaysDinnerOffer': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsTodaysDinnerOffer()),
'AdMessageDetailsSaveFoodAndMoney': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsSaveFoodAndMoney()),
'AdMessageDetailsPercentageOffYourFoodBill': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsPercentageOffYourFoodBill()),
'AdMessageDetailsHappyHour': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsHappyHour()),
'AdMessageDetailsSomeFreeTablesLeftToday': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsSomeFreeTablesLeftToday()),
'AdMessageDetailsTwoDishesForThePriceOfOne': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsTwoDishesForThePriceOfOne()),
'AdMessageDetailsUnion': TypeInfo(TypeOf.Class, create:() => AdMessageDetailsUnion()),
'AdMessageDto': TypeInfo(TypeOf.Class, create:() => AdMessageDto()),
'List<ImageUrls>': TypeInfo(TypeOf.Class, create:() => <ImageUrls>[]),
'FeatureType': TypeInfo(TypeOf.Enum, enumValues:FeatureType.values),
});
Dart FindAdMessageRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/FindAdMessageRequest HTTP/1.1
Host: unstable-consumer-api.brovs.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
offset: 0,
size: 0,
resultAt: 0001-01-01,
filter:
{
term: String,
placeGuid: 00000000-0000-0000-0000-000000000000,
adMessageGuid: 00000000-0000-0000-0000-000000000000,
categoryAbsoluteSlugs:
[
String
],
barSpecialitySlugs:
[
String
],
barTypeSlugs:
[
String
],
brandNames:
[
String
],
cuisineSlugs:
[
String
],
mealTypeSlugs:
[
String
],
parking:
[
StreetParking
],
paymentOptions:
[
Visa
],
priceMainDishes:
[
Value
],
eatingSuitabilitySlugs:
[
String
],
takeAwaySlugs:
[
String
],
wearPriceProfileSlugs:
[
String
],
wheelChairAccessible: False,
wifi: False,
outdoorSeating: False,
saveFoodAndMoney: False,
openAt:
{
weekDay: Sunday,
hour: 0,
minute: 0
}
},
location:
{
longitude: 0,
latitude: 0,
searchRadiusInKm: 0
},
cacheVersion: 0
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { adMessages: [ { id: 0, title: String, startAt: 0001-01-01T00:00:00.0000000+00:00, stopAt: 0001-01-01T00:00:00.0000000+00:00, publishAt: 0001-01-01T00:00:00.0000000+00:00, imageUrls: [ { preview: String, small: String, medium: String, large: String } ], place: { id: 0, overview: String, name: String, longitude: 0, latitude: 0, claimed: False, organizationNumber: String, countryCode: String, openingHours: { weekly: { monday: { openAtHour: 0, openAtMinute: 0, closeAtHour: 0, closeAtMinute: 0 }, tuesday: { openAtHour: 0, openAtMinute: 0, closeAtHour: 0, closeAtMinute: 0 }, wednesday: { openAtHour: 0, openAtMinute: 0, closeAtHour: 0, closeAtMinute: 0 }, thursday: { openAtHour: 0, openAtMinute: 0, closeAtHour: 0, closeAtMinute: 0 }, friday: { openAtHour: 0, openAtMinute: 0, closeAtHour: 0, closeAtMinute: 0 }, saturday: { openAtHour: 0, openAtMinute: 0, closeAtHour: 0, closeAtMinute: 0 }, sunday: { openAtHour: 0, openAtMinute: 0, closeAtHour: 0, closeAtMinute: 0 } } }, wheelchairAccessible: False, wifi: False, outdoorSeating: False, saveFoodAndMoney: False, placeType: Mall, priceMainDish: { title: String, slug: Value }, timeZoneDto: { baseUtcOffset: PT0S, daylightName: String, displayName: String, id: String, standardName: String, supportsDaylightSavingTime: False }, businessId: 0, contact: { phone: String, email: String, website: String, webShop: String }, address: { street: String, postalCode: String, region: String, countryCode: String }, categories: [ { name: String, slug: String, absoluteSlug: String, imageUrl: String, allImageUrl: String, iconImageUrl: String, position: 0, children: [ { name: String, slug: String, absoluteSlug: String, imageUrl: String, allImageUrl: String, iconImageUrl: String, position: 0, children: [ { name: String, slug: String, absoluteSlug: String, imageUrl: String, allImageUrl: String, iconImageUrl: String, position: 0 } ] } ] } ], logoUrl: { preview: String, small: String, medium: String, large: String }, imageUrl: { preview: String, small: String, medium: String, large: String }, wearPriceProfiles: [ { slug: String, label: String } ], brands: [ { brand: { name: String }, categoryAbsoluteSlugs: [ String ], placeCustomBrand: { name: String } } ], floor: String }, detailsUnion: { percentageOnAllMerchandise: { value: 0, description: String, moreInformation: [ String ] }, percentageRangeOnAllMerchandise: { start: 0, stop: 0, description: String, moreInformation: [ String ] }, percentageOnSelectedMerchandise: { value: 0, description: String, moreInformation: [ String ] }, absoluteOnSelectedMerchandise: { value: 0, description: String, moreInformation: [ String ] }, absoluteRangeOnAllMerchandise: { start: 0, stop: 0, description: String, moreInformation: [ String ] }, totalAmountOverXgivesYdiscount: { ifTotalAmountMoreThanX: 0, thenYouGetDiscountPercentageY: 0, description: String, moreInformation: [ String ] }, xforY: { ifYouBuyX: 0, thenYouGetY: 0, description: String, moreInformation: [ String ] }, newArrivals: { description: String, moreInformation: [ String ] }, freetext: { title: String, description: String, moreInformation: [ String ] }, todaysBreakFastOffer: { value: 0, description: String, moreInformation: [ String ] }, todaysLunchOffer: { value: 0, description: String, moreInformation: [ String ] }, todaysDinnerOffer: { value: 0, description: String, moreInformation: [ String ] }, saveFoodAndMoney: { value: 0, description: String, moreInformation: [ String ] }, percentageOfYourFoodBill: { percentage: 0, description: String, moreInformation: [ String ] }, happyHour: { description: String, moreInformation: [ String ] }, someFreeTablesLeftToday: { description: String, moreInformation: [ String ] }, twoDishesForThePriceOfOne: { description: String, moreInformation: [ String ] } }, starredCount: 0 } ], adMessageCount: 0, adMessageSaveFoodAndMoneyCount: 0, resultAt: 0001-01-01, categoryFacetTrees: [ { name: String, slug: String, absoluteSlug: String, featureTypes: [ BarSpeciality ], type: Parent, count: 0, imageUrl: String, allImageUrl: String, iconImageUrl: String, position: 0, children: [ { name: String, slug: String, absoluteSlug: String, featureTypes: [ BarSpeciality ], type: Parent, count: 0, imageUrl: String, allImageUrl: String, iconImageUrl: String, position: 0, children: [ { name: String, slug: String, absoluteSlug: String, featureTypes: [ BarSpeciality ], type: Parent, count: 0, imageUrl: String, allImageUrl: String, iconImageUrl: String, position: 0 } ] } ] } ] }