/* tslint:disable */
/* eslint-disable */

export type ValueTypes = {
    ["AccountGenderEnum"]:AccountGenderEnum;
	["AccountModel"]: AliasType<{
	_id?:true,
	organisationId?:true,
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true,
	createdAt?:true,
	updatedAt?:true,
	r?:true,
	w?:true,
	d?:true,
	types?:true,
	organisationIds?:true,
	email?:true,
	userName?:true,
	firstName?:true,
	lastName?:true,
	profilePicture?:ValueTypes["ImageComponent"],
	phoneNumber?:true,
	gender?:true,
	birthDate?:true,
	getAge?:true,
	address?:ValueTypes["AddressComponent"],
	language?:true,
	settings?:ValueTypes["SettingsComponent"],
	securityCheck?:true,
	paymentInfo?:ValueTypes["AccountPaymentInfo"],
	payoutInfo?:ValueTypes["AccountPayoutInfo"],
	terms?:true,
	favLikes?:ValueTypes["FavoriteComponent"],
	getFavorites?:ValueTypes["FavoriteComponent"],
	getLiked?:ValueTypes["FavoriteComponent"]
		__typename?: true
}>;
	["AccountPaymentInfo"]: AliasType<{
	stripeInfo?:ValueTypes["StripeInfo"],
	paymentMethods?:ValueTypes["PaymentMethodDetail"],
	billingInfos?:ValueTypes["BillingAddressComponent"]
		__typename?: true
}>;
	["AccountPayoutInfo"]: AliasType<{
	stripeInfo?:ValueTypes["StripePayoutInfo"]
		__typename?: true
}>;
	["AccountTypeEnum"]:AccountTypeEnum;
	["AddInput"]: {
	ressourceId:string,
	ressourceType:ValueTypes["RessourceEnum"]
};
	["AddOnComponent"]: AliasType<{
	addOnId?:true,
	quantity?:true
		__typename?: true
}>;
	["AddPeopleToRoomInput"]: {
	roomId:string,
	accountIds:string[]
};
	["AddressComponent"]: AliasType<{
	number?:true,
	street?:true,
	streetBis?:true,
	floor?:true,
	box?:true,
	zip?:true,
	state?:true,
	city?:true,
	country?:true
		__typename?: true
}>;
	["AddressInput"]: {
	number?:string,
	street?:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	zip?:string,
	state?:string,
	city:string,
	country:string
};
	["AddressStrictComponent"]: AliasType<{
	number?:true,
	street?:true,
	zip?:true,
	city?:true,
	country?:true,
	streetBis?:true,
	floor?:true,
	box?:true,
	state?:true
		__typename?: true
}>;
	["AddressStrictInput"]: {
	number:string,
	street:string,
	zip:string,
	city:string,
	country:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	state?:string
};
	["AvailabilityComponent"]: AliasType<{
	dates?:ValueTypes["DateRangeComponent"],
	hours?:ValueTypes["HourComponent"],
	exceptions?:ValueTypes["DateExceptionComponent"],
	noWeekend?:true
		__typename?: true
}>;
	["AvailabilityInput"]: {
	dates:ValueTypes["DateRangeComponentInput"],
	hours?:ValueTypes["HoursInput"][],
	exceptions?:ValueTypes["DateExceptionComponentInput"][],
	noWeekend?:boolean
};
	["AvailableCurrency"]:AvailableCurrency;
	["AvailableTranslation"]:AvailableTranslation;
	["BillingAddressComponent"]: AliasType<{
	firstName?:true,
	lastName?:true,
	address?:ValueTypes["AddressStrictComponent"],
	email?:true,
	default?:true,
	customTags?:true,
	company?:true,
	vatNumber?:true,
	fiscalForm?:true,
	_id?:true
		__typename?: true
}>;
	["BillingAddressInput"]: {
	firstName:string,
	lastName:string,
	address:ValueTypes["AddressStrictInput"],
	email?:string,
	default?:boolean,
	customTags?:ValueTypes["JSONObject"],
	company?:string,
	vatNumber?:string,
	fiscalForm?:string
};
	["BookingEngineSchema"]: AliasType<{
	durationType?:true,
	startToEnd?:ValueTypes["DateRangeComponent"],
	slot?:ValueTypes["SlotComponent"],
	capacity?:true,
	comments?:true,
	status?:true,
	paths?:ValueTypes["EnginePathComponent"],
	ownerId?:true,
	dates?:ValueTypes["DateRangeComponent"],
	owner?:ValueTypes["AccountModel"],
	_id?:true,
	organisationId?:true,
	by?:ValueTypes["MetaBy"],
	permissions?:ValueTypes["MetaPermissions"],
	createdAt?:true,
	updatedAt?:true,
	tagsIds?:true,
	workspace?:ValueTypes["WorkspaceModel"],
	room?:ValueTypes["RoomModel"]
		__typename?: true
}>;
	["BookingNewInput"]: AliasType<{
	durationType?:true,
	startToEnd?:ValueTypes["DateRangeComponent"],
	slot?:ValueTypes["SlotComponent"],
	capacity?:true,
	comments?:true,
	ressourceModel?:true,
	ressourceId?:true,
	checkoutInfo?:ValueTypes["CheckoutEngineInput"]
		__typename?: true
}>;
	["BookingNewInputSchema"]: {
	durationType:ValueTypes["DurationTypeEnum"],
	startToEnd?:ValueTypes["DateRangeComponentInput"],
	slot?:ValueTypes["SlotComponentInput"],
	capacity?:number,
	comments?:string,
	ressourceModel:ValueTypes["BookingsRessourceEnum"],
	ressourceId:string,
	checkoutInfo?:ValueTypes["CheckoutEngineInputI"]
};
	["BookingSchema"]: AliasType<{
	durationType?:true,
	startToEnd?:ValueTypes["DateRangeComponent"],
	slot?:ValueTypes["SlotComponent"],
	capacity?:true,
	comments?:true,
	status?:true,
	paths?:ValueTypes["EnginePathComponent"],
	ownerId?:true,
	dates?:ValueTypes["DateRangeComponent"],
	_id?:true,
	organisationId?:true,
	by?:ValueTypes["MetaBy"],
	permissions?:ValueTypes["MetaPermissions"],
	createdAt?:true,
	updatedAt?:true,
	tagsIds?:true
		__typename?: true
}>;
	["BookingsRessourceEnum"]:BookingsRessourceEnum;
	["BuyerInfo"]: {
	firstName:string,
	lastName:string,
	email:string,
	company?:string,
	vatNumber?:string,
	address:ValueTypes["AddressInput"]
};
	["BuyerInfoComponent"]: AliasType<{
	firstName?:true,
	lastName?:true,
	email?:true,
	company?:true,
	vatNumber?:true,
	address?:ValueTypes["AddressComponent"]
		__typename?: true
}>;
	["cardBrandEnum"]:cardBrandEnum;
	["CardInfo"]: AliasType<{
	brand?:true,
	country?:true,
	exp_month?:true,
	exp_year?:true,
	last4?:true
		__typename?: true
}>;
	["cardTypeEnum"]:cardTypeEnum;
	["CategoryModel"]: AliasType<{
	_id?:true,
	organisationId?:true,
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true,
	createdAt?:true,
	updatedAt?:true,
	r?:true,
	w?:true,
	d?:true,
	title?:ValueTypes["TranslatableComponent"],
	teaser?:ValueTypes["TranslatableComponent"],
	cover?:ValueTypes["ImageComponent"],
	thumbnail?:ValueTypes["ImageComponent"],
	extraImages?:ValueTypes["ImageComponent"],
	content?:ValueTypes["TranslatableComponent"],
	seo?:ValueTypes["SEOField"],
	urls?:ValueTypes["TranslatableComponent"],
	ressourceType?:true,
	colorCode?:true
		__typename?: true
}>;
	["CheckoutEngineInput"]: AliasType<{
	contactInfo?:ValueTypes["BuyerInfoComponent"],
	billingInfo?:ValueTypes["BuyerInfoComponent"],
	token?:true
		__typename?: true
}>;
	["CheckoutEngineInputI"]: {
	contactInfo:ValueTypes["BuyerInfo"],
	billingInfo:ValueTypes["BuyerInfo"],
	token?:string
};
	["CheckoutInput"]: {
	contactInfo:ValueTypes["BuyerInfo"],
	billingInfo:ValueTypes["BuyerInfo"],
	token?:string
};
	["CountryCodesComponentEnum"]:CountryCodesComponentEnum;
	["CurrencyEnum"]:CurrencyEnum;
	["DateExceptionComponent"]: AliasType<{
	dates?:ValueTypes["DateRangeComponent"],
	hours?:ValueTypes["HourComponent"],
	allDay?:true
		__typename?: true
}>;
	["DateExceptionComponentInput"]: {
	dates:ValueTypes["DateRangeComponentInput"],
	hours?:ValueTypes["HoursInput"][],
	allDay?:boolean
};
	["DateRangeComponent"]: AliasType<{
	startDate?:true,
	endDate?:true
		__typename?: true
}>;
	["DateRangeComponentInput"]: {
	startDate:ValueTypes["DateTime"],
	endDate:ValueTypes["DateTime"]
};
	["DateTabType"]:DateTabType;
	/** The javascript `Date` as string. Type represents date and time as the ISO Date string. */
["DateTime"]:unknown;
	["DurationTypeEnum"]:DurationTypeEnum;
	["EditAccountInput"]: {
	userName?:string,
	firstName?:string,
	lastName?:string,
	profilePicture?:ValueTypes["ImageInput"],
	phoneNumber?:string,
	gender?:ValueTypes["AccountGenderEnum"],
	birthDate?:ValueTypes["DateTime"],
	address?:ValueTypes["AddressInput"],
	language?:ValueTypes["AvailableTranslation"],
	settings?:ValueTypes["SettingsInput"][]
};
	["EditMessageInput"]: {
	message:string
};
	["EditWorkspaceInput"]: {
	title?:string,
	teaser?:string,
	cover?:ValueTypes["ImageInput"],
	thumbnail?:ValueTypes["ImageInput"],
	extraImages?:ValueTypes["ImageInput"][],
	content?:string,
	seo?:ValueTypes["SEOSimpleInput"],
	urls?:string,
	workspaceType?:ValueTypes["WorkspaceTypeEnum"],
	pricingPerHour?:number,
	currency:ValueTypes["AvailableCurrency"],
	maxCapacity?:number,
	minStay?:number,
	maxStay?:number,
	availability?:ValueTypes["AvailabilityInput"],
	mainImages:ValueTypes["MainImage"],
	equipmentIds?:string[],
	featureIds?:string[],
	address?:ValueTypes["AddressStrictInput"]
};
	["EnginePathComponent"]: AliasType<{
	ressourceModel?:true,
	ressourceId?:true
		__typename?: true
}>;
	["FavoriteComponent"]: AliasType<{
	ressourceId?:true,
	ressourceType?:true,
	addedAt?:true,
	favorite?:true,
	liked?:true
		__typename?: true
}>;
	["FirebaseTokenResult"]: AliasType<{
	localId?:true,
	email?:true,
	displayName?:true,
	idToken?:true,
	registered?:true,
	refreshToken?:true,
	expiresIn?:true
		__typename?: true
}>;
	["GeolocAddressSearchInput"]: {
	formattedAddress:string,
	radius?:number
};
	["GeolocDistComponent"]: AliasType<{
	calculated?:true,
	location?:ValueTypes["LocComponent"]
		__typename?: true
}>;
	["GeolocSearchInput"]: {
	longitude:number,
	latitude:number,
	radius?:number
};
	["GetArgs"]: {
	limit:number,
	skip:number,
	sort?:string
};
	["HourComponent"]: AliasType<{
	from?:true,
	to?:true
		__typename?: true
}>;
	["HoursInput"]: {
	from:string,
	to:string
};
	["IEngineSchema"]:AliasType<{
		_id?:true,
	organisationId?:true,
	paths?:ValueTypes["EnginePathComponent"],
	by?:ValueTypes["MetaBy"],
	permissions?:ValueTypes["MetaPermissions"],
	createdAt?:true,
	updatedAt?:true,
	tagsIds?:true;
		['...on BookingEngineSchema']: ValueTypes["BookingEngineSchema"];
		['...on BookingSchema']: ValueTypes["BookingSchema"];
		['...on OrderEngineSchema']: ValueTypes["OrderEngineSchema"];
		__typename?: true
}>;
	["ImageComponent"]: AliasType<{
	title?:true,
	fileType?:true,
	large?:true,
	medium?:true,
	small?:true
		__typename?: true
}>;
	["ImageInput"]: {
	title?:string,
	fileType?:string,
	large:string,
	medium?:string,
	small?:string
};
	["InvoiceInfo"]: AliasType<{
	provider?:true,
	invoiceId?:true,
	invoiceNumber?:true
		__typename?: true
}>;
	["InvoicingProvider"]:InvoicingProvider;
	/** The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */
["JSONObject"]:unknown;
	["LineItemSchema"]: AliasType<{
	_id?:true,
	productRessource?:true,
	productId?:true,
	title?:true,
	price?:true,
	salesPrice?:true,
	quantity?:true,
	vatClassId?:true,
	parentId?:true,
	addOns?:ValueTypes["AddOnComponent"],
	localeInfo?:ValueTypes["LocaleInfo"],
	promoId?:true,
	finalPrice?:true,
	getProduct?:ValueTypes["ProductUnion"],
	getLinePrice?:true,
	getLineVatPrice?:true
		__typename?: true
}>;
	["LinkEmailInput"]: {
	email:string,
	password:string,
	idToken:string
};
	["ListEnum"]:ListEnum;
	["ListModel"]: AliasType<{
	_id?:true,
	organisationId?:true,
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true,
	createdAt?:true,
	updatedAt?:true,
	r?:true,
	w?:true,
	d?:true,
	title?:ValueTypes["TranslatableComponent"],
	teaser?:ValueTypes["TranslatableComponent"],
	cover?:ValueTypes["ImageComponent"],
	thumbnail?:ValueTypes["ImageComponent"],
	extraImages?:ValueTypes["ImageComponent"],
	content?:ValueTypes["TranslatableComponent"],
	seo?:ValueTypes["SEOField"],
	urls?:ValueTypes["TranslatableComponent"],
	ressourceType?:true,
	colorCode?:true
		__typename?: true
}>;
	["LocaleInfo"]: AliasType<{
	countryCode?:true,
	locale?:true
		__typename?: true
}>;
	["LocComponent"]: AliasType<{
	type?:true,
	coordinates?:true
		__typename?: true
}>;
	["LoginInput"]: {
	email:string,
	password:string
};
	["MainImage"]: {
	main?:ValueTypes["ImageInput"],
	one?:ValueTypes["ImageInput"],
	two?:ValueTypes["ImageInput"],
	three?:ValueTypes["ImageInput"],
	four?:ValueTypes["ImageInput"]
};
	["MainImageComponent"]: AliasType<{
	main?:ValueTypes["ImageComponent"],
	one?:ValueTypes["ImageComponent"],
	two?:ValueTypes["ImageComponent"],
	three?:ValueTypes["ImageComponent"],
	four?:ValueTypes["ImageComponent"]
		__typename?: true
}>;
	["MessageModel"]: AliasType<{
	_id?:true,
	organisationId?:true,
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true,
	createdAt?:true,
	updatedAt?:true,
	r?:true,
	w?:true,
	d?:true,
	roomId?:true,
	notified?:true,
	message?:true,
	edited?:true,
	deleted?:true,
	file?:ValueTypes["ImageComponent"],
	sentBy?:true,
	readBy?:ValueTypes["MessageReadBy"]
		__typename?: true
}>;
	["MessageReadBy"]: AliasType<{
	accountId?:true,
	readAt?:true
		__typename?: true
}>;
	["MetaBy"]: AliasType<{
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true
		__typename?: true
}>;
	["MetaPermissions"]: AliasType<{
	r?:true,
	w?:true,
	d?:true
		__typename?: true
}>;
	["ModelLoadersEnum"]:ModelLoadersEnum;
	["Mutation"]: AliasType<{
updateMe?: [{	input:ValueTypes["EditAccountInput"]},ValueTypes["AccountModel"]],
updateMeEmail?: [{	input:ValueTypes["NewEmailInput"]},ValueTypes["AccountModel"]],
updateMePassword?: [{	input:ValueTypes["NewPasswordInput"]},ValueTypes["AccountModel"]],
resetPassword?: [{	input:ValueTypes["ResetPasswordInput"]},ValueTypes["SimpleResult"]],
registerGuest?: [{	otherInfo:ValueTypes["EditAccountInput"],	input:ValueTypes["LinkEmailInput"]},ValueTypes["AccountModel"]],
register?: [{	input:ValueTypes["NewAccountInput"]},ValueTypes["AccountModel"]],
accountsBillingInfosAddOne?: [{	input:ValueTypes["BillingAddressInput"]},ValueTypes["BillingAddressComponent"]],
accountsBillingInfosEditOne?: [{	input:ValueTypes["BillingAddressInput"],	id:string},ValueTypes["BillingAddressComponent"]],
accountsBillingInfosDeleteOne?: [{	id:string},true],
accountsPaymentMethodsAddOne?: [{	input:ValueTypes["PaymentMethodInput"]},ValueTypes["PaymentMethodDetail"]],
accountsPaymentMethodsMarkasDefault?: [{	id:string},ValueTypes["PaymentMethodDetail"]],
accountsPaymentMethodsDeleteOne?: [{	id:string},true],
	accountsLinkWithStripe?:true,
	accountsRefreshInfoStripe?:ValueTypes["AccountModel"],
accountsFavoritesAddOne?: [{	input:ValueTypes["AddInput"]},ValueTypes["FavoriteComponent"]],
accountsFavoritesRemoveOne?: [{	input:ValueTypes["RemoveInput"]},ValueTypes["SuccessResponse"]],
workspacesAddOne?: [{	input:ValueTypes["NewWorkspaceInput"]},ValueTypes["WorkspaceModel"]],
workspacesEditOne?: [{	input:ValueTypes["EditWorkspaceInput"],	id:string},ValueTypes["WorkspaceModel"]],
workspacesDeleteOne?: [{	id:string},ValueTypes["WorkspaceModel"]],
finaliseCheckoutWithStripe?: [{	input:ValueTypes["CheckoutInput"]},ValueTypes["OrderEngineSchema"]],
	removeCurrentOrder?:ValueTypes["OrderEngineSchema"],
validateOrder?: [{	id:string},ValueTypes["OrderEngineSchema"]],
roomsCreateOne?: [{	input:ValueTypes["NewRoomInput"]},ValueTypes["RoomModel"]],
roomsAddPeople?: [{	input:ValueTypes["AddPeopleToRoomInput"]},ValueTypes["RoomModel"]],
roomsRemovePeople?: [{	input:ValueTypes["RemovePeopleFromRoomInput"]},ValueTypes["RoomModel"]],
roomsMarkAllMessageAsRead?: [{	roomId:string},ValueTypes["RoomModel"]],
reserveOneBooking?: [{	input:ValueTypes["BookingNewInputSchema"]},ValueTypes["OrderEngineSchema"]],
roomsAddOneMessage?: [{	input:ValueTypes["NewMessageInput"]},ValueTypes["MessageModel"]],
roomsEditOneMessage?: [{	input:ValueTypes["EditMessageInput"],	id:string},ValueTypes["MessageModel"]],
roomsMarkMessageAsRead?: [{	id:string},ValueTypes["MessageModel"]],
roomsDeleteOneMessage?: [{	id:string},ValueTypes["MessageModel"]]
		__typename?: true
}>;
	["NewAccountInput"]: {
	email:string,
	password:string,
	passwordConfirmation:string,
	userName?:string,
	firstName?:string,
	lastName?:string,
	profilePicture?:ValueTypes["ImageInput"],
	phoneNumber?:string,
	gender?:ValueTypes["AccountGenderEnum"],
	birthDate?:ValueTypes["DateTime"],
	address?:ValueTypes["AddressInput"],
	language?:ValueTypes["AvailableTranslation"],
	settings?:ValueTypes["SettingsInput"][],
	terms:boolean
};
	["NewEmailInput"]: {
	newEmail:string
};
	["NewMessageInput"]: {
	roomId:string,
	message:string,
	file?:ValueTypes["ImageInput"]
};
	["NewPasswordInput"]: {
	oldPassword:string,
	newPassword:string,
	newPasswordConfirmation:string
};
	["NewRoomInput"]: {
	accountIds:string[]
};
	["NewWorkspaceInput"]: {
	title?:string,
	teaser?:string,
	cover?:ValueTypes["ImageInput"],
	thumbnail?:ValueTypes["ImageInput"],
	extraImages?:ValueTypes["ImageInput"][],
	content?:string,
	seo?:ValueTypes["SEOSimpleInput"],
	urls?:string,
	workspaceType:ValueTypes["WorkspaceTypeEnum"],
	pricingPerHour:number,
	currency:ValueTypes["AvailableCurrency"],
	maxCapacity:number,
	minStay:number,
	maxStay?:number,
	availability:ValueTypes["AvailabilityInput"],
	mainImages:ValueTypes["MainImage"],
	equipmentIds:string[],
	featureIds:string[],
	address:ValueTypes["AddressStrictInput"]
};
	["OrderBusinessStatusEnum"]:OrderBusinessStatusEnum;
	["OrderEngineSchema"]: AliasType<{
	lines?:ValueTypes["LineItemSchema"],
	localeInfo?:ValueTypes["LocaleInfo"],
	currency?:true,
	vatExempt?:true,
	accountId?:true,
	contactInfo?:ValueTypes["BuyerInfoComponent"],
	billingInfo?:ValueTypes["BuyerInfoComponent"],
	promoId?:true,
	invoiceInfo?:ValueTypes["InvoiceInfo"],
	providerOrderItems?:ValueTypes["ProviderSchema"],
	orderName?:ValueTypes["TranslatableComponent"],
	orderStatus?:true,
	paymentIntent?:ValueTypes["PaymentIntentInfo"],
	paymentStatus?:true,
	paymentInfo?:ValueTypes["PaymentInfo"],
	subTotalPrice?:true,
	vatPrice?:true,
	finalPrice?:true,
	promo?:ValueTypes["PromoModel"],
	_id?:true,
	organisationId?:true,
	paths?:ValueTypes["EnginePathComponent"],
	by?:ValueTypes["MetaBy"],
	permissions?:ValueTypes["MetaPermissions"],
	createdAt?:true,
	updatedAt?:true,
	tagsIds?:true,
	getBookingInput?:ValueTypes["BookingNewInput"]
		__typename?: true
}>;
	["OrderStatusEnum"]:OrderStatusEnum;
	["PaymentInfo"]: AliasType<{
	provider?:true,
	transactionId?:true
		__typename?: true
}>;
	["PaymentIntentInfo"]: AliasType<{
	provider?:true,
	stripePaymentIntentData?:ValueTypes["StripePaymentIntentData"]
		__typename?: true
}>;
	["PaymentMethodDetail"]: AliasType<{
	_id?:true,
	sPayMethodId?:true,
	default?:true,
	nameOnCard?:true,
	type?:true,
	cardInfo?:ValueTypes["CardInfo"]
		__typename?: true
}>;
	["PaymentMethodInput"]: {
	sPayMethodId:string,
	nameOnCard:string,
	default?:boolean
};
	["PaymentProvider"]:PaymentProvider;
	["PaymentStatusEnum"]:PaymentStatusEnum;
	["PlaceComponent"]: AliasType<{
	placeId?:true,
	address?:ValueTypes["AddressComponent"],
	loc?:ValueTypes["LocComponent"],
	formattedAddress?:true
		__typename?: true
}>;
	["ProductRessourceEnum"]:ProductRessourceEnum;
	["ProductUnion"]: AliasType<{		["...on WorkspaceModel"] : ValueTypes["WorkspaceModel"]
		__typename?: true
}>;
	["PromoModel"]: AliasType<{
	_id?:true,
	organisationId?:true,
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true,
	createdAt?:true,
	updatedAt?:true,
	r?:true,
	w?:true,
	d?:true,
	code?:true,
	description?:ValueTypes["TranslatableComponent"],
	type?:true,
	value?:true,
	validity?:true,
	cummulable?:true,
	usageLimit?:true,
	usage?:true
		__typename?: true
}>;
	["PromoType"]:PromoType;
	["ProviderSchema"]: AliasType<{
	_id?:true,
	organisationId?:true,
	orderStatus?:true,
	lines?:ValueTypes["LineItemSchema"]
		__typename?: true
}>;
	["Query"]: AliasType<{
	me?:ValueTypes["AccountModel"],
login?: [{	refreshToken?:string,	creds?:ValueTypes["LoginInput"]},ValueTypes["FirebaseTokenResult"]],
magicLink?: [{	input:ValueTypes["ResetPasswordInput"]},ValueTypes["SimpleResult"]],
placesAutocomplete?: [{	session:string,	input:string,	language?:ValueTypes["AvailableTranslation"],	country?:ValueTypes["CountryCodesComponentEnum"][]},true],
placesGeocode?: [{	session:string,	placeId:string},true],
placesGeocodeFromAddress?: [{	address:string},true],
categoriesGetOne?: [{	id:string},ValueTypes["CategoryModel"]],
categoriesGetMany?: [{	search?:string,	ressourceType:ValueTypes["RessourceEnum"],	pagination?:ValueTypes["GetArgs"]},ValueTypes["CategoryModel"]],
categoriesGetCount?: [{	search?:string,	ressourceType:ValueTypes["RessourceEnum"],	pagination?:ValueTypes["GetArgs"]},true],
listsGetOne?: [{	id:string},ValueTypes["ListModel"]],
listsGetMany?: [{	search?:string,	ressourceType:ValueTypes["ListEnum"],	pagination?:ValueTypes["GetArgs"]},ValueTypes["ListModel"]],
listsGetCount?: [{	search?:string,	ressourceType:ValueTypes["ListEnum"],	pagination?:ValueTypes["GetArgs"]},true],
	accountsDashboardLinkStripe?:true,
workspacesGetOne?: [{	id:string},ValueTypes["WorkspaceModel"]],
workspacesGetMany?: [{	geoSearch?:ValueTypes["GeolocSearchInput"],	geoSearchWithAddress?:ValueTypes["GeolocAddressSearchInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"],	dateFrom?:ValueTypes["DateTime"],	dateTo?:ValueTypes["DateTime"],	hoursFrom?:string,	hoursTo?:string,	workspaceType?:ValueTypes["WorkspaceTypeEnum"],	workspaceTypes?:ValueTypes["WorkspaceTypeEnum"][],	priceMin?:number,	priceMax?:number,	maxCapacity?:number,	equipmentIds?:string[],	featureIds?:string[]},ValueTypes["WorkspaceModel"]],
workspacesGetCount?: [{	geoSearch?:ValueTypes["GeolocSearchInput"],	geoSearchWithAddress?:ValueTypes["GeolocAddressSearchInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"],	dateFrom?:ValueTypes["DateTime"],	dateTo?:ValueTypes["DateTime"],	hoursFrom?:string,	hoursTo?:string,	workspaceType?:ValueTypes["WorkspaceTypeEnum"],	workspaceTypes?:ValueTypes["WorkspaceTypeEnum"][],	priceMin?:number,	priceMax?:number,	maxCapacity?:number,	equipmentIds?:string[],	featureIds?:string[]},true],
workspacesSearchMany?: [{	geoSearch?:ValueTypes["GeolocSearchInput"],	geoSearchWithAddress?:ValueTypes["GeolocAddressSearchInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"],	dateFrom?:ValueTypes["DateTime"],	dateTo?:ValueTypes["DateTime"],	hoursFrom?:string,	hoursTo?:string,	workspaceType?:ValueTypes["WorkspaceTypeEnum"],	workspaceTypes?:ValueTypes["WorkspaceTypeEnum"][],	priceMin?:number,	priceMax?:number,	maxCapacity?:number,	equipmentIds?:string[],	featureIds?:string[]},ValueTypes["WorkspaceModel"]],
workspacesGetMine?: [{	geoSearch?:ValueTypes["GeolocSearchInput"],	geoSearchWithAddress?:ValueTypes["GeolocAddressSearchInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"],	dateFrom?:ValueTypes["DateTime"],	dateTo?:ValueTypes["DateTime"],	hoursFrom?:string,	hoursTo?:string,	workspaceType?:ValueTypes["WorkspaceTypeEnum"],	workspaceTypes?:ValueTypes["WorkspaceTypeEnum"][],	priceMin?:number,	priceMax?:number,	maxCapacity?:number,	equipmentIds?:string[],	featureIds?:string[]},ValueTypes["WorkspaceModel"]],
workspacesGetMineCount?: [{	geoSearch?:ValueTypes["GeolocSearchInput"],	geoSearchWithAddress?:ValueTypes["GeolocAddressSearchInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"],	dateFrom?:ValueTypes["DateTime"],	dateTo?:ValueTypes["DateTime"],	hoursFrom?:string,	hoursTo?:string,	workspaceType?:ValueTypes["WorkspaceTypeEnum"],	workspaceTypes?:ValueTypes["WorkspaceTypeEnum"][],	priceMin?:number,	priceMax?:number,	maxCapacity?:number,	equipmentIds?:string[],	featureIds?:string[]},true],
bookingsGetOne?: [{	id:string},ValueTypes["BookingEngineSchema"]],
bookingsGetMany?: [{	startDate?:ValueTypes["DateTime"],	endDate?:ValueTypes["DateTime"],	rangeType?:ValueTypes["RangeType"],	dateTabType?:ValueTypes["DateTabType"],	dateRange?:ValueTypes["DateRangeComponentInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"],	ressourceModel?:ValueTypes["BookingsRessourceEnum"],	ressourceId?:string,	status?:ValueTypes["StatusEnum"][]},ValueTypes["BookingEngineSchema"]],
bookingsGetCount?: [{	startDate?:ValueTypes["DateTime"],	endDate?:ValueTypes["DateTime"],	rangeType?:ValueTypes["RangeType"],	dateTabType?:ValueTypes["DateTabType"],	dateRange?:ValueTypes["DateRangeComponentInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"],	ressourceModel?:ValueTypes["BookingsRessourceEnum"],	ressourceId?:string,	status?:ValueTypes["StatusEnum"][]},true],
	myCurrentOrder?:ValueTypes["OrderEngineSchema"],
myOrdersGetOne?: [{	id:string},ValueTypes["OrderEngineSchema"]],
myOrdersGetMany?: [{	orderStatus?:ValueTypes["OrderStatusEnum"],	paymentStatus?:ValueTypes["PaymentStatusEnum"],	pagination?:ValueTypes["GetArgs"],	search?:string},ValueTypes["OrderEngineSchema"]],
myOrdersGetManyCount?: [{	orderStatus?:ValueTypes["OrderStatusEnum"],	paymentStatus?:ValueTypes["PaymentStatusEnum"],	pagination?:ValueTypes["GetArgs"],	search?:string},true],
roomsGetOne?: [{	id:string},ValueTypes["RoomModel"]],
roomsGetMany?: [{	pagination?:ValueTypes["GetArgs"]},ValueTypes["RoomModel"]],
roomsGetMessages?: [{	pagination?:ValueTypes["GetArgs"],	id:string},ValueTypes["MessageModel"]]
		__typename?: true
}>;
	["RangeType"]:RangeType;
	["RemoveInput"]: {
	ressourceId:string
};
	["RemovePeopleFromRoomInput"]: {
	roomId:string,
	accountIds:string[]
};
	["ResetPasswordInput"]: {
	email:string
};
	["RessourceEnum"]:RessourceEnum;
	["RoomModel"]: AliasType<{
	_id?:true,
	organisationId?:true,
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true,
	createdAt?:true,
	updatedAt?:true,
	r?:true,
	w?:true,
	d?:true,
	title?:true,
	stats?:ValueTypes["RoomsStats"],
	getAccounts?:ValueTypes["AccountModel"],
getMessages?: [{	pagination?:ValueTypes["GetArgs"]},ValueTypes["MessageModel"]],
	lastMessage?:true
		__typename?: true
}>;
	["RoomsStats"]: AliasType<{
	unreadCounts?:ValueTypes["UnreadCount"]
		__typename?: true
}>;
	["SEOField"]: AliasType<{
	title?:ValueTypes["TranslatableComponent"],
	description?:ValueTypes["TranslatableComponent"],
	keywords?:ValueTypes["TranslatableComponent"],
	thumbnail?:ValueTypes["ImageComponent"]
		__typename?: true
}>;
	["SEOSimpleField"]: AliasType<{
	title?:true,
	description?:true,
	keywords?:true,
	thumbnail?:ValueTypes["ImageComponent"]
		__typename?: true
}>;
	["SEOSimpleInput"]: {
	title:string,
	description:string,
	keywords?:string,
	thumbnail?:ValueTypes["ImageInput"]
};
	["SettingsComponent"]: AliasType<{
	type?:true,
	email?:true,
	pushNotifications?:true,
	sms?:true
		__typename?: true
}>;
	["SettingsInput"]: {
	type:ValueTypes["SettingsTypeEnum"],
	email?:boolean,
	pushNotifications?:boolean,
	sms?:boolean
};
	["SettingsTypeEnum"]:SettingsTypeEnum;
	["SimpleResult"]: AliasType<{
	message?:true
		__typename?: true
}>;
	["SlotComponent"]: AliasType<{
	startDate?:true,
	endDate?:true,
	startTime?:true,
	endTime?:true
		__typename?: true
}>;
	["SlotComponentInput"]: {
	startDate:ValueTypes["DateTime"],
	endDate:ValueTypes["DateTime"],
	startTime:string,
	endTime:string
};
	["StatusEnum"]:StatusEnum;
	["StripeInfo"]: AliasType<{
	customerId?:true
		__typename?: true
}>;
	["StripePaymentIntentData"]: AliasType<{
	id?:true,
	client_secret?:true,
	currency?:true,
	customer?:true,
	status?:true
		__typename?: true
}>;
	["StripePayoutInfo"]: AliasType<{
	accountId?:true,
	chargesEnabled?:true,
	payoutsEnabled?:true,
	detailsSubmitted?:true
		__typename?: true
}>;
	["SuccessResponse"]: AliasType<{
	success?:true
		__typename?: true
}>;
	["TranslatableComponent"]: AliasType<{
	en?:true,
	fr?:true,
	nl?:true,
	de?:true
		__typename?: true
}>;
	["UnreadCount"]: AliasType<{
	accountId?:true,
	count?:true
		__typename?: true
}>;
	["WorkspaceModel"]: AliasType<{
	_id?:true,
	organisationId?:true,
	createdBy?:true,
	updatedBy?:true,
	deletedBy?:true,
	createdAt?:true,
	updatedAt?:true,
	r?:true,
	w?:true,
	d?:true,
	title?:true,
	teaser?:true,
	cover?:ValueTypes["ImageComponent"],
	thumbnail?:ValueTypes["ImageComponent"],
	extraImages?:ValueTypes["ImageComponent"],
	content?:true,
	seo?:ValueTypes["SEOSimpleField"],
	urls?:true,
	place?:ValueTypes["PlaceComponent"],
	dist?:ValueTypes["GeolocDistComponent"],
getDistFromLocation?: [{	longitude:number,	latitude:number,	radius?:number},true],
	workspaceType?:true,
	pricingPerHour?:true,
	currency?:true,
	maxCapacity?:true,
	minStay?:true,
	maxStay?:true,
	availability?:ValueTypes["AvailabilityComponent"],
	mainImages?:ValueTypes["MainImageComponent"],
	equipmentIds?:true,
	featureIds?:true,
	address?:ValueTypes["AddressComponent"],
	finalPrice?:true,
	getEquipments?:ValueTypes["ListModel"],
	getFeatures?:ValueTypes["ListModel"],
getBookings?: [{	ressourceModel?:ValueTypes["BookingsRessourceEnum"],	ressourceId?:string,	status?:ValueTypes["StatusEnum"][],	startDate?:ValueTypes["DateTime"],	endDate?:ValueTypes["DateTime"],	rangeType?:ValueTypes["RangeType"],	dateTabType?:ValueTypes["DateTabType"],	dateRange?:ValueTypes["DateRangeComponentInput"],	_ids?:string[],	search?:string,	afterCreatedAt?:ValueTypes["DateTime"],	afterUpdatedAt?:ValueTypes["DateTime"],	pagination?:ValueTypes["GetArgs"]},ValueTypes["BookingSchema"]],
	getOwner?:ValueTypes["WorkspaceOwnerComponent"]
		__typename?: true
}>;
	["WorkspaceOwnerComponent"]: AliasType<{
	firstName?:true,
	lastName?:true
		__typename?: true
}>;
	["WorkspaceTypeEnum"]:WorkspaceTypeEnum
  }

export type PartialObjects = {
    ["AccountGenderEnum"]:AccountGenderEnum,
	["AccountModel"]: {
		__typename?: "AccountModel";
			_id?:string,
			organisationId?:string,
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string,
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			r?:string[],
			w?:string[],
			d?:string[],
			types?:PartialObjects["AccountTypeEnum"][],
			organisationIds?:string[],
			email?:string,
			userName?:string,
			firstName?:string,
			lastName?:string,
			profilePicture?:PartialObjects["ImageComponent"],
			phoneNumber?:string,
			gender?:PartialObjects["AccountGenderEnum"],
			birthDate?:PartialObjects["DateTime"],
			getAge?:number,
			address?:PartialObjects["AddressComponent"],
			language?:PartialObjects["AvailableTranslation"],
			settings?:PartialObjects["SettingsComponent"][],
			securityCheck?:boolean,
			paymentInfo?:PartialObjects["AccountPaymentInfo"],
			payoutInfo?:PartialObjects["AccountPayoutInfo"],
			terms?:boolean,
			favLikes?:(PartialObjects["FavoriteComponent"] | undefined)[],
			getFavorites?:PartialObjects["FavoriteComponent"][],
			getLiked?:PartialObjects["FavoriteComponent"][]
	},
	["AccountPaymentInfo"]: {
		__typename?: "AccountPaymentInfo";
			stripeInfo?:PartialObjects["StripeInfo"],
			paymentMethods?:PartialObjects["PaymentMethodDetail"][],
			billingInfos?:PartialObjects["BillingAddressComponent"][]
	},
	["AccountPayoutInfo"]: {
		__typename?: "AccountPayoutInfo";
			stripeInfo?:PartialObjects["StripePayoutInfo"]
	},
	["AccountTypeEnum"]:AccountTypeEnum,
	["AddInput"]: {
	ressourceId:string,
	ressourceType:PartialObjects["RessourceEnum"]
},
	["AddOnComponent"]: {
		__typename?: "AddOnComponent";
			addOnId?:string,
			quantity?:number
	},
	["AddPeopleToRoomInput"]: {
	roomId:string,
	accountIds:string[]
},
	["AddressComponent"]: {
		__typename?: "AddressComponent";
			number?:string,
			street?:string,
			streetBis?:string,
			floor?:string,
			box?:string,
			zip?:string,
			state?:string,
			city?:string,
			country?:string
	},
	["AddressInput"]: {
	number?:string,
	street?:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	zip?:string,
	state?:string,
	city:string,
	country:string
},
	["AddressStrictComponent"]: {
		__typename?: "AddressStrictComponent";
			number?:string,
			street?:string,
			zip?:string,
			city?:string,
			country?:string,
			streetBis?:string,
			floor?:string,
			box?:string,
			state?:string
	},
	["AddressStrictInput"]: {
	number:string,
	street:string,
	zip:string,
	city:string,
	country:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	state?:string
},
	["AvailabilityComponent"]: {
		__typename?: "AvailabilityComponent";
			dates?:PartialObjects["DateRangeComponent"],
			hours?:PartialObjects["HourComponent"][],
			exceptions?:PartialObjects["DateExceptionComponent"][],
			noWeekend?:boolean
	},
	["AvailabilityInput"]: {
	dates:PartialObjects["DateRangeComponentInput"],
	hours?:PartialObjects["HoursInput"][],
	exceptions?:PartialObjects["DateExceptionComponentInput"][],
	noWeekend?:boolean
},
	["AvailableCurrency"]:AvailableCurrency,
	["AvailableTranslation"]:AvailableTranslation,
	["BillingAddressComponent"]: {
		__typename?: "BillingAddressComponent";
			firstName?:string,
			lastName?:string,
			address?:PartialObjects["AddressStrictComponent"],
			email?:string,
			default?:boolean,
			customTags?:PartialObjects["JSONObject"],
			company?:string,
			vatNumber?:string,
			fiscalForm?:string,
			_id?:string
	},
	["BillingAddressInput"]: {
	firstName:string,
	lastName:string,
	address:PartialObjects["AddressStrictInput"],
	email?:string,
	default?:boolean,
	customTags?:PartialObjects["JSONObject"],
	company?:string,
	vatNumber?:string,
	fiscalForm?:string
},
	["BookingEngineSchema"]: {
		__typename?: "BookingEngineSchema";
			durationType?:PartialObjects["DurationTypeEnum"],
			startToEnd?:PartialObjects["DateRangeComponent"],
			slot?:PartialObjects["SlotComponent"],
			capacity?:number,
			comments?:string,
			status?:PartialObjects["StatusEnum"],
			paths?:PartialObjects["EnginePathComponent"][],
			ownerId?:string,
			dates?:PartialObjects["DateRangeComponent"][],
			owner?:PartialObjects["AccountModel"],
			_id?:string,
			organisationId?:string,
			by?:PartialObjects["MetaBy"],
			permissions?:PartialObjects["MetaPermissions"],
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			tagsIds?:string[],
			workspace?:PartialObjects["WorkspaceModel"],
			room?:PartialObjects["RoomModel"]
	},
	["BookingNewInput"]: {
		__typename?: "BookingNewInput";
			durationType?:PartialObjects["DurationTypeEnum"],
			startToEnd?:PartialObjects["DateRangeComponent"],
			slot?:PartialObjects["SlotComponent"],
			capacity?:number,
			comments?:string,
			ressourceModel?:PartialObjects["BookingsRessourceEnum"],
			ressourceId?:string,
			checkoutInfo?:PartialObjects["CheckoutEngineInput"]
	},
	["BookingNewInputSchema"]: {
	durationType:PartialObjects["DurationTypeEnum"],
	startToEnd?:PartialObjects["DateRangeComponentInput"],
	slot?:PartialObjects["SlotComponentInput"],
	capacity?:number,
	comments?:string,
	ressourceModel:PartialObjects["BookingsRessourceEnum"],
	ressourceId:string,
	checkoutInfo?:PartialObjects["CheckoutEngineInputI"]
},
	["BookingSchema"]: {
		__typename?: "BookingSchema";
			durationType?:PartialObjects["DurationTypeEnum"],
			startToEnd?:PartialObjects["DateRangeComponent"],
			slot?:PartialObjects["SlotComponent"],
			capacity?:number,
			comments?:string,
			status?:PartialObjects["StatusEnum"],
			paths?:PartialObjects["EnginePathComponent"][],
			ownerId?:string,
			dates?:PartialObjects["DateRangeComponent"][],
			_id?:string,
			organisationId?:string,
			by?:PartialObjects["MetaBy"],
			permissions?:PartialObjects["MetaPermissions"],
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			tagsIds?:string[]
	},
	["BookingsRessourceEnum"]:BookingsRessourceEnum,
	["BuyerInfo"]: {
	firstName:string,
	lastName:string,
	email:string,
	company?:string,
	vatNumber?:string,
	address:PartialObjects["AddressInput"]
},
	["BuyerInfoComponent"]: {
		__typename?: "BuyerInfoComponent";
			firstName?:string,
			lastName?:string,
			email?:string,
			company?:string,
			vatNumber?:string,
			address?:PartialObjects["AddressComponent"]
	},
	["cardBrandEnum"]:cardBrandEnum,
	["CardInfo"]: {
		__typename?: "CardInfo";
			brand?:PartialObjects["cardBrandEnum"],
			country?:string,
			exp_month?:number,
			exp_year?:number,
			last4?:string
	},
	["cardTypeEnum"]:cardTypeEnum,
	["CategoryModel"]: {
		__typename?: "CategoryModel";
			_id?:string,
			organisationId?:string,
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string,
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			r?:string[],
			w?:string[],
			d?:string[],
			title?:PartialObjects["TranslatableComponent"],
			teaser?:PartialObjects["TranslatableComponent"],
			cover?:PartialObjects["ImageComponent"],
			thumbnail?:PartialObjects["ImageComponent"],
			extraImages?:PartialObjects["ImageComponent"][],
			content?:PartialObjects["TranslatableComponent"],
			seo?:PartialObjects["SEOField"],
			urls?:PartialObjects["TranslatableComponent"],
			ressourceType?:PartialObjects["RessourceEnum"],
			colorCode?:string
	},
	["CheckoutEngineInput"]: {
		__typename?: "CheckoutEngineInput";
			contactInfo?:PartialObjects["BuyerInfoComponent"],
			billingInfo?:PartialObjects["BuyerInfoComponent"],
			token?:string
	},
	["CheckoutEngineInputI"]: {
	contactInfo:PartialObjects["BuyerInfo"],
	billingInfo:PartialObjects["BuyerInfo"],
	token?:string
},
	["CheckoutInput"]: {
	contactInfo:PartialObjects["BuyerInfo"],
	billingInfo:PartialObjects["BuyerInfo"],
	token?:string
},
	["CountryCodesComponentEnum"]:CountryCodesComponentEnum,
	["CurrencyEnum"]:CurrencyEnum,
	["DateExceptionComponent"]: {
		__typename?: "DateExceptionComponent";
			dates?:PartialObjects["DateRangeComponent"],
			hours?:PartialObjects["HourComponent"][],
			allDay?:boolean
	},
	["DateExceptionComponentInput"]: {
	dates:PartialObjects["DateRangeComponentInput"],
	hours?:PartialObjects["HoursInput"][],
	allDay?:boolean
},
	["DateRangeComponent"]: {
		__typename?: "DateRangeComponent";
			startDate?:PartialObjects["DateTime"],
			endDate?:PartialObjects["DateTime"]
	},
	["DateRangeComponentInput"]: {
	startDate:PartialObjects["DateTime"],
	endDate:PartialObjects["DateTime"]
},
	["DateTabType"]:DateTabType,
	/** The javascript `Date` as string. Type represents date and time as the ISO Date string. */
["DateTime"]:any,
	["DurationTypeEnum"]:DurationTypeEnum,
	["EditAccountInput"]: {
	userName?:string,
	firstName?:string,
	lastName?:string,
	profilePicture?:PartialObjects["ImageInput"],
	phoneNumber?:string,
	gender?:PartialObjects["AccountGenderEnum"],
	birthDate?:PartialObjects["DateTime"],
	address?:PartialObjects["AddressInput"],
	language?:PartialObjects["AvailableTranslation"],
	settings?:PartialObjects["SettingsInput"][]
},
	["EditMessageInput"]: {
	message:string
},
	["EditWorkspaceInput"]: {
	title?:string,
	teaser?:string,
	cover?:PartialObjects["ImageInput"],
	thumbnail?:PartialObjects["ImageInput"],
	extraImages?:PartialObjects["ImageInput"][],
	content?:string,
	seo?:PartialObjects["SEOSimpleInput"],
	urls?:string,
	workspaceType?:PartialObjects["WorkspaceTypeEnum"],
	pricingPerHour?:number,
	currency:PartialObjects["AvailableCurrency"],
	maxCapacity?:number,
	minStay?:number,
	maxStay?:number,
	availability?:PartialObjects["AvailabilityInput"],
	mainImages:PartialObjects["MainImage"],
	equipmentIds?:string[],
	featureIds?:string[],
	address?:PartialObjects["AddressStrictInput"]
},
	["EnginePathComponent"]: {
		__typename?: "EnginePathComponent";
			ressourceModel?:PartialObjects["ModelLoadersEnum"],
			ressourceId?:string
	},
	["FavoriteComponent"]: {
		__typename?: "FavoriteComponent";
			ressourceId?:string,
			ressourceType?:PartialObjects["RessourceEnum"],
			addedAt?:PartialObjects["DateTime"],
			favorite?:boolean,
			liked?:boolean
	},
	["FirebaseTokenResult"]: {
		__typename?: "FirebaseTokenResult";
			localId?:string,
			email?:string,
			displayName?:string,
			idToken?:string,
			registered?:boolean,
			refreshToken?:string,
			expiresIn?:string
	},
	["GeolocAddressSearchInput"]: {
	formattedAddress:string,
	radius?:number
},
	["GeolocDistComponent"]: {
		__typename?: "GeolocDistComponent";
			calculated?:number,
			location?:PartialObjects["LocComponent"]
	},
	["GeolocSearchInput"]: {
	longitude:number,
	latitude:number,
	radius?:number
},
	["GetArgs"]: {
	limit:number,
	skip:number,
	sort?:string
},
	["HourComponent"]: {
		__typename?: "HourComponent";
			from?:string,
			to?:string
	},
	["HoursInput"]: {
	from:string,
	to:string
},
	["IEngineSchema"]:{
		_id?:string;
	organisationId?:string;
	paths?:PartialObjects["EnginePathComponent"][];
	by?:PartialObjects["MetaBy"];
	permissions?:PartialObjects["MetaPermissions"];
	createdAt?:PartialObjects["DateTime"];
	updatedAt?:PartialObjects["DateTime"];
	tagsIds?:string[]
} & (PartialObjects["BookingEngineSchema"] | PartialObjects["BookingSchema"] | PartialObjects["OrderEngineSchema"]),
	["ImageComponent"]: {
		__typename?: "ImageComponent";
			title?:string,
			fileType?:string,
			large?:string,
			medium?:string,
			small?:string
	},
	["ImageInput"]: {
	title?:string,
	fileType?:string,
	large:string,
	medium?:string,
	small?:string
},
	["InvoiceInfo"]: {
		__typename?: "InvoiceInfo";
			provider?:PartialObjects["InvoicingProvider"],
			invoiceId?:string,
			invoiceNumber?:number
	},
	["InvoicingProvider"]:InvoicingProvider,
	/** The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */
["JSONObject"]:any,
	["LineItemSchema"]: {
		__typename?: "LineItemSchema";
			_id?:string,
			productRessource?:PartialObjects["ProductRessourceEnum"],
			productId?:string,
			title?:string,
			price?:number,
			salesPrice?:number,
			quantity?:number,
			vatClassId?:string,
			parentId?:string,
			addOns?:PartialObjects["AddOnComponent"][],
			localeInfo?:PartialObjects["LocaleInfo"],
			promoId?:string,
			finalPrice?:number,
			getProduct?:PartialObjects["ProductUnion"],
			getLinePrice?:number,
			getLineVatPrice?:number
	},
	["LinkEmailInput"]: {
	email:string,
	password:string,
	idToken:string
},
	["ListEnum"]:ListEnum,
	["ListModel"]: {
		__typename?: "ListModel";
			_id?:string,
			organisationId?:string,
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string,
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			r?:string[],
			w?:string[],
			d?:string[],
			title?:PartialObjects["TranslatableComponent"],
			teaser?:PartialObjects["TranslatableComponent"],
			cover?:PartialObjects["ImageComponent"],
			thumbnail?:PartialObjects["ImageComponent"],
			extraImages?:PartialObjects["ImageComponent"][],
			content?:PartialObjects["TranslatableComponent"],
			seo?:PartialObjects["SEOField"],
			urls?:PartialObjects["TranslatableComponent"],
			ressourceType?:PartialObjects["ListEnum"],
			colorCode?:string
	},
	["LocaleInfo"]: {
		__typename?: "LocaleInfo";
			countryCode?:string,
			locale?:PartialObjects["AvailableTranslation"]
	},
	["LocComponent"]: {
		__typename?: "LocComponent";
			type?:string,
			coordinates?:number[]
	},
	["LoginInput"]: {
	email:string,
	password:string
},
	["MainImage"]: {
	main?:PartialObjects["ImageInput"],
	one?:PartialObjects["ImageInput"],
	two?:PartialObjects["ImageInput"],
	three?:PartialObjects["ImageInput"],
	four?:PartialObjects["ImageInput"]
},
	["MainImageComponent"]: {
		__typename?: "MainImageComponent";
			main?:PartialObjects["ImageComponent"],
			one?:PartialObjects["ImageComponent"],
			two?:PartialObjects["ImageComponent"],
			three?:PartialObjects["ImageComponent"],
			four?:PartialObjects["ImageComponent"]
	},
	["MessageModel"]: {
		__typename?: "MessageModel";
			_id?:string,
			organisationId?:string,
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string,
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			r?:string[],
			w?:string[],
			d?:string[],
			roomId?:string,
			notified?:boolean,
			message?:string,
			edited?:boolean,
			deleted?:boolean,
			file?:PartialObjects["ImageComponent"],
			sentBy?:string,
			readBy?:PartialObjects["MessageReadBy"][]
	},
	["MessageReadBy"]: {
		__typename?: "MessageReadBy";
			accountId?:string,
			readAt?:PartialObjects["DateTime"]
	},
	["MetaBy"]: {
		__typename?: "MetaBy";
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string
	},
	["MetaPermissions"]: {
		__typename?: "MetaPermissions";
			r?:string[],
			w?:string[],
			d?:string[]
	},
	["ModelLoadersEnum"]:ModelLoadersEnum,
	["Mutation"]: {
		__typename?: "Mutation";
			updateMe?:PartialObjects["AccountModel"],
			updateMeEmail?:PartialObjects["AccountModel"],
			updateMePassword?:PartialObjects["AccountModel"],
			resetPassword?:PartialObjects["SimpleResult"],
			registerGuest?:PartialObjects["AccountModel"],
			register?:PartialObjects["AccountModel"],
			accountsBillingInfosAddOne?:PartialObjects["BillingAddressComponent"],
			accountsBillingInfosEditOne?:PartialObjects["BillingAddressComponent"],
			accountsBillingInfosDeleteOne?:string,
			accountsPaymentMethodsAddOne?:PartialObjects["PaymentMethodDetail"],
			accountsPaymentMethodsMarkasDefault?:PartialObjects["PaymentMethodDetail"],
			accountsPaymentMethodsDeleteOne?:string,
			accountsLinkWithStripe?:string,
			accountsRefreshInfoStripe?:PartialObjects["AccountModel"],
			accountsFavoritesAddOne?:PartialObjects["FavoriteComponent"],
			accountsFavoritesRemoveOne?:PartialObjects["SuccessResponse"],
			workspacesAddOne?:PartialObjects["WorkspaceModel"],
			workspacesEditOne?:PartialObjects["WorkspaceModel"],
			workspacesDeleteOne?:PartialObjects["WorkspaceModel"],
			finaliseCheckoutWithStripe?:PartialObjects["OrderEngineSchema"],
			removeCurrentOrder?:PartialObjects["OrderEngineSchema"],
			validateOrder?:PartialObjects["OrderEngineSchema"],
			roomsCreateOne?:PartialObjects["RoomModel"],
			roomsAddPeople?:PartialObjects["RoomModel"],
			roomsRemovePeople?:PartialObjects["RoomModel"],
			roomsMarkAllMessageAsRead?:PartialObjects["RoomModel"],
			reserveOneBooking?:PartialObjects["OrderEngineSchema"],
			roomsAddOneMessage?:PartialObjects["MessageModel"],
			roomsEditOneMessage?:PartialObjects["MessageModel"],
			roomsMarkMessageAsRead?:PartialObjects["MessageModel"],
			roomsDeleteOneMessage?:PartialObjects["MessageModel"]
	},
	["NewAccountInput"]: {
	email:string,
	password:string,
	passwordConfirmation:string,
	userName?:string,
	firstName?:string,
	lastName?:string,
	profilePicture?:PartialObjects["ImageInput"],
	phoneNumber?:string,
	gender?:PartialObjects["AccountGenderEnum"],
	birthDate?:PartialObjects["DateTime"],
	address?:PartialObjects["AddressInput"],
	language?:PartialObjects["AvailableTranslation"],
	settings?:PartialObjects["SettingsInput"][],
	terms:boolean
},
	["NewEmailInput"]: {
	newEmail:string
},
	["NewMessageInput"]: {
	roomId:string,
	message:string,
	file?:PartialObjects["ImageInput"]
},
	["NewPasswordInput"]: {
	oldPassword:string,
	newPassword:string,
	newPasswordConfirmation:string
},
	["NewRoomInput"]: {
	accountIds:string[]
},
	["NewWorkspaceInput"]: {
	title?:string,
	teaser?:string,
	cover?:PartialObjects["ImageInput"],
	thumbnail?:PartialObjects["ImageInput"],
	extraImages?:PartialObjects["ImageInput"][],
	content?:string,
	seo?:PartialObjects["SEOSimpleInput"],
	urls?:string,
	workspaceType:PartialObjects["WorkspaceTypeEnum"],
	pricingPerHour:number,
	currency:PartialObjects["AvailableCurrency"],
	maxCapacity:number,
	minStay:number,
	maxStay?:number,
	availability:PartialObjects["AvailabilityInput"],
	mainImages:PartialObjects["MainImage"],
	equipmentIds:string[],
	featureIds:string[],
	address:PartialObjects["AddressStrictInput"]
},
	["OrderBusinessStatusEnum"]:OrderBusinessStatusEnum,
	["OrderEngineSchema"]: {
		__typename?: "OrderEngineSchema";
			lines?:PartialObjects["LineItemSchema"][],
			localeInfo?:PartialObjects["LocaleInfo"],
			currency?:PartialObjects["CurrencyEnum"],
			vatExempt?:boolean,
			accountId?:string,
			contactInfo?:PartialObjects["BuyerInfoComponent"],
			billingInfo?:PartialObjects["BuyerInfoComponent"],
			promoId?:string,
			invoiceInfo?:PartialObjects["InvoiceInfo"],
			providerOrderItems?:PartialObjects["ProviderSchema"][],
			orderName?:PartialObjects["TranslatableComponent"],
			orderStatus?:PartialObjects["OrderStatusEnum"],
			paymentIntent?:PartialObjects["PaymentIntentInfo"],
			paymentStatus?:PartialObjects["PaymentStatusEnum"],
			paymentInfo?:PartialObjects["PaymentInfo"],
			subTotalPrice?:number,
			vatPrice?:number,
			finalPrice?:number,
			promo?:PartialObjects["PromoModel"],
			_id?:string,
			organisationId?:string,
			paths?:PartialObjects["EnginePathComponent"][],
			by?:PartialObjects["MetaBy"],
			permissions?:PartialObjects["MetaPermissions"],
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			tagsIds?:string[],
			getBookingInput?:PartialObjects["BookingNewInput"]
	},
	["OrderStatusEnum"]:OrderStatusEnum,
	["PaymentInfo"]: {
		__typename?: "PaymentInfo";
			provider?:PartialObjects["PaymentProvider"],
			transactionId?:string
	},
	["PaymentIntentInfo"]: {
		__typename?: "PaymentIntentInfo";
			provider?:PartialObjects["PaymentProvider"],
			stripePaymentIntentData?:PartialObjects["StripePaymentIntentData"]
	},
	["PaymentMethodDetail"]: {
		__typename?: "PaymentMethodDetail";
			_id?:string,
			sPayMethodId?:string,
			default?:boolean,
			nameOnCard?:string,
			type?:PartialObjects["cardTypeEnum"],
			cardInfo?:PartialObjects["CardInfo"]
	},
	["PaymentMethodInput"]: {
	sPayMethodId:string,
	nameOnCard:string,
	default?:boolean
},
	["PaymentProvider"]:PaymentProvider,
	["PaymentStatusEnum"]:PaymentStatusEnum,
	["PlaceComponent"]: {
		__typename?: "PlaceComponent";
			placeId?:string,
			address?:PartialObjects["AddressComponent"],
			loc?:PartialObjects["LocComponent"],
			formattedAddress?:string
	},
	["ProductRessourceEnum"]:ProductRessourceEnum,
	["ProductUnion"]: PartialObjects["WorkspaceModel"],
	["PromoModel"]: {
		__typename?: "PromoModel";
			_id?:string,
			organisationId?:string,
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string,
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			r?:string[],
			w?:string[],
			d?:string[],
			code?:string,
			description?:PartialObjects["TranslatableComponent"],
			type?:PartialObjects["PromoType"],
			value?:number,
			validity?:PartialObjects["DateTime"],
			cummulable?:boolean,
			usageLimit?:number,
			usage?:number
	},
	["PromoType"]:PromoType,
	["ProviderSchema"]: {
		__typename?: "ProviderSchema";
			_id?:string,
			organisationId?:string,
			orderStatus?:PartialObjects["OrderBusinessStatusEnum"],
			lines?:PartialObjects["LineItemSchema"][]
	},
	["Query"]: {
		__typename?: "Query";
			me?:PartialObjects["AccountModel"],
			login?:PartialObjects["FirebaseTokenResult"],
			magicLink?:PartialObjects["SimpleResult"],
			placesAutocomplete?:PartialObjects["JSONObject"][],
			placesGeocode?:PartialObjects["JSONObject"],
			placesGeocodeFromAddress?:PartialObjects["JSONObject"],
			categoriesGetOne?:PartialObjects["CategoryModel"],
			categoriesGetMany?:PartialObjects["CategoryModel"][],
			categoriesGetCount?:number,
			listsGetOne?:PartialObjects["ListModel"],
			listsGetMany?:PartialObjects["ListModel"][],
			listsGetCount?:number,
			accountsDashboardLinkStripe?:string,
			workspacesGetOne?:PartialObjects["WorkspaceModel"],
			workspacesGetMany?:PartialObjects["WorkspaceModel"][],
			workspacesGetCount?:number,
			workspacesSearchMany?:PartialObjects["WorkspaceModel"][],
			workspacesGetMine?:PartialObjects["WorkspaceModel"][],
			workspacesGetMineCount?:number,
			bookingsGetOne?:PartialObjects["BookingEngineSchema"],
			bookingsGetMany?:PartialObjects["BookingEngineSchema"][],
			bookingsGetCount?:number,
			myCurrentOrder?:PartialObjects["OrderEngineSchema"],
			myOrdersGetOne?:PartialObjects["OrderEngineSchema"],
			myOrdersGetMany?:PartialObjects["OrderEngineSchema"][],
			myOrdersGetManyCount?:number,
			roomsGetOne?:PartialObjects["RoomModel"],
			roomsGetMany?:PartialObjects["RoomModel"][],
			roomsGetMessages?:PartialObjects["MessageModel"][]
	},
	["RangeType"]:RangeType,
	["RemoveInput"]: {
	ressourceId:string
},
	["RemovePeopleFromRoomInput"]: {
	roomId:string,
	accountIds:string[]
},
	["ResetPasswordInput"]: {
	email:string
},
	["RessourceEnum"]:RessourceEnum,
	["RoomModel"]: {
		__typename?: "RoomModel";
			_id?:string,
			organisationId?:string,
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string,
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			r?:string[],
			w?:string[],
			d?:string[],
			title?:string,
			stats?:PartialObjects["RoomsStats"],
			getAccounts?:PartialObjects["AccountModel"][],
			getMessages?:PartialObjects["MessageModel"][],
			lastMessage?:PartialObjects["DateTime"]
	},
	["RoomsStats"]: {
		__typename?: "RoomsStats";
			unreadCounts?:PartialObjects["UnreadCount"][]
	},
	["SEOField"]: {
		__typename?: "SEOField";
			title?:PartialObjects["TranslatableComponent"],
			description?:PartialObjects["TranslatableComponent"],
			keywords?:PartialObjects["TranslatableComponent"],
			thumbnail?:PartialObjects["ImageComponent"]
	},
	["SEOSimpleField"]: {
		__typename?: "SEOSimpleField";
			title?:string,
			description?:string,
			keywords?:string,
			thumbnail?:PartialObjects["ImageComponent"]
	},
	["SEOSimpleInput"]: {
	title:string,
	description:string,
	keywords?:string,
	thumbnail?:PartialObjects["ImageInput"]
},
	["SettingsComponent"]: {
		__typename?: "SettingsComponent";
			type?:PartialObjects["SettingsTypeEnum"],
			email?:boolean,
			pushNotifications?:boolean,
			sms?:boolean
	},
	["SettingsInput"]: {
	type:PartialObjects["SettingsTypeEnum"],
	email?:boolean,
	pushNotifications?:boolean,
	sms?:boolean
},
	["SettingsTypeEnum"]:SettingsTypeEnum,
	["SimpleResult"]: {
		__typename?: "SimpleResult";
			message?:string
	},
	["SlotComponent"]: {
		__typename?: "SlotComponent";
			startDate?:PartialObjects["DateTime"],
			endDate?:PartialObjects["DateTime"],
			startTime?:string,
			endTime?:string
	},
	["SlotComponentInput"]: {
	startDate:PartialObjects["DateTime"],
	endDate:PartialObjects["DateTime"],
	startTime:string,
	endTime:string
},
	["StatusEnum"]:StatusEnum,
	["StripeInfo"]: {
		__typename?: "StripeInfo";
			customerId?:string
	},
	["StripePaymentIntentData"]: {
		__typename?: "StripePaymentIntentData";
			id?:string,
			client_secret?:string,
			currency?:string,
			customer?:string,
			status?:string
	},
	["StripePayoutInfo"]: {
		__typename?: "StripePayoutInfo";
			accountId?:string,
			chargesEnabled?:boolean,
			payoutsEnabled?:boolean,
			detailsSubmitted?:boolean
	},
	["SuccessResponse"]: {
		__typename?: "SuccessResponse";
			success?:boolean
	},
	["TranslatableComponent"]: {
		__typename?: "TranslatableComponent";
			en?:string,
			fr?:string,
			nl?:string,
			de?:string
	},
	["UnreadCount"]: {
		__typename?: "UnreadCount";
			accountId?:string,
			count?:number
	},
	["WorkspaceModel"]: {
		__typename?: "WorkspaceModel";
			_id?:string,
			organisationId?:string,
			createdBy?:string,
			updatedBy?:string,
			deletedBy?:string,
			createdAt?:PartialObjects["DateTime"],
			updatedAt?:PartialObjects["DateTime"],
			r?:string[],
			w?:string[],
			d?:string[],
			title?:string,
			teaser?:string,
			cover?:PartialObjects["ImageComponent"],
			thumbnail?:PartialObjects["ImageComponent"],
			extraImages?:PartialObjects["ImageComponent"][],
			content?:string,
			seo?:PartialObjects["SEOSimpleField"],
			urls?:string,
			place?:PartialObjects["PlaceComponent"],
			dist?:PartialObjects["GeolocDistComponent"],
			getDistFromLocation?:number,
			workspaceType?:PartialObjects["WorkspaceTypeEnum"],
			pricingPerHour?:number,
			currency?:PartialObjects["AvailableCurrency"],
			maxCapacity?:number,
			minStay?:number,
			maxStay?:number,
			availability?:PartialObjects["AvailabilityComponent"],
			mainImages?:PartialObjects["MainImageComponent"],
			equipmentIds?:string[],
			featureIds?:string[],
			address?:PartialObjects["AddressComponent"],
			finalPrice?:number,
			getEquipments?:(PartialObjects["ListModel"] | undefined)[],
			getFeatures?:(PartialObjects["ListModel"] | undefined)[],
			getBookings?:(PartialObjects["BookingSchema"] | undefined)[],
			getOwner?:PartialObjects["WorkspaceOwnerComponent"]
	},
	["WorkspaceOwnerComponent"]: {
		__typename?: "WorkspaceOwnerComponent";
			firstName?:string,
			lastName?:string
	},
	["WorkspaceTypeEnum"]:WorkspaceTypeEnum
  }

export enum AccountGenderEnum {
	m = "m",
	f = "f",
	other = "other"
}

export type AccountModel = {
	__typename?: "AccountModel",
	_id:string,
	organisationId?:string,
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string,
	createdAt:DateTime,
	updatedAt:DateTime,
	r:string[],
	w:string[],
	d:string[],
	types:AccountTypeEnum[],
	organisationIds?:string[],
	email:string,
	userName?:string,
	firstName?:string,
	lastName?:string,
	profilePicture?:ImageComponent,
	phoneNumber?:string,
	gender?:AccountGenderEnum,
	birthDate?:DateTime,
	getAge?:number,
	address?:AddressComponent,
	language?:AvailableTranslation,
	settings?:SettingsComponent[],
	securityCheck:boolean,
	paymentInfo?:AccountPaymentInfo,
	payoutInfo?:AccountPayoutInfo,
	terms:boolean,
	favLikes?:(FavoriteComponent | undefined)[],
	getFavorites:FavoriteComponent[],
	getLiked:FavoriteComponent[]
}

export type AccountPaymentInfo = {
	__typename?: "AccountPaymentInfo",
	stripeInfo?:StripeInfo,
	paymentMethods?:PaymentMethodDetail[],
	billingInfos?:BillingAddressComponent[]
}

export type AccountPayoutInfo = {
	__typename?: "AccountPayoutInfo",
	stripeInfo?:StripePayoutInfo
}

export enum AccountTypeEnum {
	admin = "admin",
	user = "user",
	pro = "pro",
	public = "public",
	organisationOwner = "organisationOwner",
	storeManager = "storeManager"
}

export type AddInput = {
		ressourceId:string,
	ressourceType:RessourceEnum
}

export type AddOnComponent = {
	__typename?: "AddOnComponent",
	addOnId:string,
	quantity:number
}

export type AddPeopleToRoomInput = {
		roomId:string,
	accountIds:string[]
}

export type AddressComponent = {
	__typename?: "AddressComponent",
	number?:string,
	street?:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	zip?:string,
	state?:string,
	city:string,
	country:string
}

export type AddressInput = {
		number?:string,
	street?:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	zip?:string,
	state?:string,
	city:string,
	country:string
}

export type AddressStrictComponent = {
	__typename?: "AddressStrictComponent",
	number:string,
	street:string,
	zip:string,
	city:string,
	country:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	state?:string
}

export type AddressStrictInput = {
		number:string,
	street:string,
	zip:string,
	city:string,
	country:string,
	streetBis?:string,
	floor?:string,
	box?:string,
	state?:string
}

export type AvailabilityComponent = {
	__typename?: "AvailabilityComponent",
	dates:DateRangeComponent,
	hours?:HourComponent[],
	exceptions?:DateExceptionComponent[],
	noWeekend?:boolean
}

export type AvailabilityInput = {
		dates:DateRangeComponentInput,
	hours?:HoursInput[],
	exceptions?:DateExceptionComponentInput[],
	noWeekend?:boolean
}

export enum AvailableCurrency {
	eur = "eur",
	usd = "usd"
}

export enum AvailableTranslation {
	en = "en",
	fr = "fr",
	nl = "nl",
	de = "de"
}

export type BillingAddressComponent = {
	__typename?: "BillingAddressComponent",
	firstName:string,
	lastName:string,
	address:AddressStrictComponent,
	email?:string,
	default?:boolean,
	customTags?:JSONObject,
	company?:string,
	vatNumber?:string,
	fiscalForm?:string,
	_id:string
}

export type BillingAddressInput = {
		firstName:string,
	lastName:string,
	address:AddressStrictInput,
	email?:string,
	default?:boolean,
	customTags?:JSONObject,
	company?:string,
	vatNumber?:string,
	fiscalForm?:string
}

export type BookingEngineSchema = {
	__typename?: "BookingEngineSchema",
	durationType:DurationTypeEnum,
	startToEnd?:DateRangeComponent,
	slot?:SlotComponent,
	capacity?:number,
	comments?:string,
	status:StatusEnum,
	paths?:EnginePathComponent[],
	ownerId:string,
	dates:DateRangeComponent[],
	owner:AccountModel,
	_id:string,
	organisationId?:string,
	by?:MetaBy,
	permissions?:MetaPermissions,
	createdAt:DateTime,
	updatedAt:DateTime,
	tagsIds?:string[],
	workspace?:WorkspaceModel,
	room?:RoomModel
}

export type BookingNewInput = {
	__typename?: "BookingNewInput",
	durationType:DurationTypeEnum,
	startToEnd?:DateRangeComponent,
	slot?:SlotComponent,
	capacity?:number,
	comments?:string,
	ressourceModel:BookingsRessourceEnum,
	ressourceId:string,
	checkoutInfo?:CheckoutEngineInput
}

export type BookingNewInputSchema = {
		durationType:DurationTypeEnum,
	startToEnd?:DateRangeComponentInput,
	slot?:SlotComponentInput,
	capacity?:number,
	comments?:string,
	ressourceModel:BookingsRessourceEnum,
	ressourceId:string,
	checkoutInfo?:CheckoutEngineInputI
}

export type BookingSchema = {
	__typename?: "BookingSchema",
	durationType:DurationTypeEnum,
	startToEnd?:DateRangeComponent,
	slot?:SlotComponent,
	capacity:number,
	comments?:string,
	status:StatusEnum,
	paths?:EnginePathComponent[],
	ownerId:string,
	dates:DateRangeComponent[],
	_id:string,
	organisationId?:string,
	by?:MetaBy,
	permissions?:MetaPermissions,
	createdAt:DateTime,
	updatedAt:DateTime,
	tagsIds?:string[]
}

export enum BookingsRessourceEnum {
	workspaces = "workspaces"
}

export type BuyerInfo = {
		firstName:string,
	lastName:string,
	email:string,
	company?:string,
	vatNumber?:string,
	address:AddressInput
}

export type BuyerInfoComponent = {
	__typename?: "BuyerInfoComponent",
	firstName:string,
	lastName:string,
	email:string,
	company?:string,
	vatNumber?:string,
	address:AddressComponent
}

export enum cardBrandEnum {
	amex = "amex",
	diners = "diners",
	discover = "discover",
	jcb = "jcb",
	mastercard = "mastercard",
	unionpay = "unionpay",
	visa = "visa",
	unknown = "unknown"
}

export type CardInfo = {
	__typename?: "CardInfo",
	brand:cardBrandEnum,
	country:string,
	exp_month:number,
	exp_year:number,
	last4:string
}

export enum cardTypeEnum {
	alipay = "alipay",
	au_becs_debit = "au_becs_debit",
	bacs_debit = "bacs_debit",
	bancontact = "bancontact",
	card = "card",
	eps = "eps",
	fpx = "fpx",
	giropay = "giropay",
	ideal = "ideal",
	p24 = "p24",
	sepa_debit = "sepa_debit",
	sofort = "sofort"
}

export type CategoryModel = {
	__typename?: "CategoryModel",
	_id:string,
	organisationId?:string,
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string,
	createdAt:DateTime,
	updatedAt:DateTime,
	r:string[],
	w:string[],
	d:string[],
	title:TranslatableComponent,
	teaser?:TranslatableComponent,
	cover?:ImageComponent,
	thumbnail?:ImageComponent,
	extraImages?:ImageComponent[],
	content?:TranslatableComponent,
	seo?:SEOField,
	urls?:TranslatableComponent,
	ressourceType:RessourceEnum,
	colorCode?:string
}

export type CheckoutEngineInput = {
	__typename?: "CheckoutEngineInput",
	contactInfo:BuyerInfoComponent,
	billingInfo:BuyerInfoComponent,
	token?:string
}

export type CheckoutEngineInputI = {
		contactInfo:BuyerInfo,
	billingInfo:BuyerInfo,
	token?:string
}

export type CheckoutInput = {
		contactInfo:BuyerInfo,
	billingInfo:BuyerInfo,
	token?:string
}

export enum CountryCodesComponentEnum {
	AF = "AF",
	AX = "AX",
	AL = "AL",
	DZ = "DZ",
	AS = "AS",
	AD = "AD",
	AO = "AO",
	AI = "AI",
	AQ = "AQ",
	AG = "AG",
	AR = "AR",
	AM = "AM",
	AW = "AW",
	AU = "AU",
	AT = "AT",
	AZ = "AZ",
	BS = "BS",
	BH = "BH",
	BD = "BD",
	BB = "BB",
	BY = "BY",
	BE = "BE",
	BZ = "BZ",
	BJ = "BJ",
	BM = "BM",
	BT = "BT",
	BO = "BO",
	BA = "BA",
	BW = "BW",
	BV = "BV",
	BR = "BR",
	IO = "IO",
	BN = "BN",
	BG = "BG",
	BF = "BF",
	BI = "BI",
	KH = "KH",
	CM = "CM",
	CA = "CA",
	CV = "CV",
	KY = "KY",
	CF = "CF",
	TD = "TD",
	CL = "CL",
	CN = "CN",
	CX = "CX",
	CC = "CC",
	CO = "CO",
	KM = "KM",
	CG = "CG",
	CD = "CD",
	CK = "CK",
	CR = "CR",
	CI = "CI",
	HR = "HR",
	CU = "CU",
	CY = "CY",
	CZ = "CZ",
	DK = "DK",
	DJ = "DJ",
	DM = "DM",
	DO = "DO",
	EC = "EC",
	EG = "EG",
	SV = "SV",
	GQ = "GQ",
	ER = "ER",
	EE = "EE",
	ET = "ET",
	FK = "FK",
	FO = "FO",
	FJ = "FJ",
	FI = "FI",
	FR = "FR",
	GF = "GF",
	PF = "PF",
	TF = "TF",
	GA = "GA",
	GM = "GM",
	GE = "GE",
	DE = "DE",
	GH = "GH",
	GI = "GI",
	GR = "GR",
	GL = "GL",
	GD = "GD",
	GP = "GP",
	GU = "GU",
	GT = "GT",
	GG = "GG",
	GN = "GN",
	GW = "GW",
	GY = "GY",
	HT = "HT",
	HM = "HM",
	VA = "VA",
	HN = "HN",
	HK = "HK",
	HU = "HU",
	IS = "IS",
	IN = "IN",
	ID = "ID",
	IR = "IR",
	IQ = "IQ",
	IE = "IE",
	IM = "IM",
	IL = "IL",
	IT = "IT",
	JM = "JM",
	JP = "JP",
	JE = "JE",
	JO = "JO",
	KZ = "KZ",
	KE = "KE",
	KI = "KI",
	KR = "KR",
	KW = "KW",
	KG = "KG",
	LA = "LA",
	LV = "LV",
	LB = "LB",
	LS = "LS",
	LR = "LR",
	LY = "LY",
	LI = "LI",
	LT = "LT",
	LU = "LU",
	MO = "MO",
	MK = "MK",
	MG = "MG",
	MW = "MW",
	MY = "MY",
	MV = "MV",
	ML = "ML",
	MT = "MT",
	MH = "MH",
	MQ = "MQ",
	MR = "MR",
	MU = "MU",
	YT = "YT",
	MX = "MX",
	FM = "FM",
	MD = "MD",
	MC = "MC",
	MN = "MN",
	ME = "ME",
	MS = "MS",
	MA = "MA",
	MZ = "MZ",
	MM = "MM",
	NA = "NA",
	NR = "NR",
	NP = "NP",
	NL = "NL",
	AN = "AN",
	NC = "NC",
	NZ = "NZ",
	NI = "NI",
	NE = "NE",
	NG = "NG",
	NU = "NU",
	NF = "NF",
	MP = "MP",
	NO = "NO",
	OM = "OM",
	PK = "PK",
	PW = "PW",
	PS = "PS",
	PA = "PA",
	PG = "PG",
	PY = "PY",
	PE = "PE",
	PH = "PH",
	PN = "PN",
	PL = "PL",
	PT = "PT",
	PR = "PR",
	QA = "QA",
	RE = "RE",
	RO = "RO",
	RU = "RU",
	RW = "RW",
	BL = "BL",
	SH = "SH",
	KN = "KN",
	LC = "LC",
	MF = "MF",
	PM = "PM",
	VC = "VC",
	WS = "WS",
	SM = "SM",
	ST = "ST",
	SA = "SA",
	SN = "SN",
	RS = "RS",
	SC = "SC",
	SL = "SL",
	SG = "SG",
	SK = "SK",
	SI = "SI",
	SB = "SB",
	SO = "SO",
	ZA = "ZA",
	GS = "GS",
	ES = "ES",
	LK = "LK",
	SD = "SD",
	SR = "SR",
	SJ = "SJ",
	SZ = "SZ",
	SE = "SE",
	CH = "CH",
	SY = "SY",
	TW = "TW",
	TJ = "TJ",
	TZ = "TZ",
	TH = "TH",
	TL = "TL",
	TG = "TG",
	TK = "TK",
	TO = "TO",
	TT = "TT",
	TN = "TN",
	TR = "TR",
	TM = "TM",
	TC = "TC",
	TV = "TV",
	UG = "UG",
	UA = "UA",
	AE = "AE",
	GB = "GB",
	US = "US",
	UM = "UM",
	UY = "UY",
	UZ = "UZ",
	VU = "VU",
	VE = "VE",
	VN = "VN",
	VG = "VG",
	VI = "VI",
	WF = "WF",
	EH = "EH",
	YE = "YE",
	ZM = "ZM",
	ZW = "ZW",
	XK = "XK",
	KP = "KP",
	SS = "SS",
	SX = "SX",
	BQ = "BQ",
	CW = "CW"
}

export enum CurrencyEnum {
	eur = "eur",
	usd = "usd"
}

export type DateExceptionComponent = {
	__typename?: "DateExceptionComponent",
	dates:DateRangeComponent,
	hours?:HourComponent[],
	allDay?:boolean
}

export type DateExceptionComponentInput = {
		dates:DateRangeComponentInput,
	hours?:HoursInput[],
	allDay?:boolean
}

export type DateRangeComponent = {
	__typename?: "DateRangeComponent",
	startDate:DateTime,
	endDate:DateTime
}

export type DateRangeComponentInput = {
		startDate:DateTime,
	endDate:DateTime
}

export enum DateTabType {
	today = "today",
	tomorrow = "tomorrow",
	upcomming = "upcomming",
	past = "past"
}

/** The javascript `Date` as string. Type represents date and time as the ISO Date string. */
export type DateTime = any

export enum DurationTypeEnum {
	startToEnd = "startToEnd",
	slot = "slot"
}

export type EditAccountInput = {
		userName?:string,
	firstName?:string,
	lastName?:string,
	profilePicture?:ImageInput,
	phoneNumber?:string,
	gender?:AccountGenderEnum,
	birthDate?:DateTime,
	address?:AddressInput,
	language?:AvailableTranslation,
	settings?:SettingsInput[]
}

export type EditMessageInput = {
		message:string
}

export type EditWorkspaceInput = {
		title?:string,
	teaser?:string,
	cover?:ImageInput,
	thumbnail?:ImageInput,
	extraImages?:ImageInput[],
	content?:string,
	seo?:SEOSimpleInput,
	urls?:string,
	workspaceType?:WorkspaceTypeEnum,
	pricingPerHour?:number,
	currency:AvailableCurrency,
	maxCapacity?:number,
	minStay?:number,
	maxStay?:number,
	availability?:AvailabilityInput,
	mainImages:MainImage,
	equipmentIds?:string[],
	featureIds?:string[],
	address?:AddressStrictInput
}

export type EnginePathComponent = {
	__typename?: "EnginePathComponent",
	ressourceModel:ModelLoadersEnum,
	ressourceId:string
}

export type FavoriteComponent = {
	__typename?: "FavoriteComponent",
	ressourceId:string,
	ressourceType:RessourceEnum,
	addedAt:DateTime,
	favorite?:boolean,
	liked?:boolean
}

export type FirebaseTokenResult = {
	__typename?: "FirebaseTokenResult",
	localId:string,
	email?:string,
	displayName?:string,
	idToken:string,
	registered?:boolean,
	refreshToken:string,
	expiresIn:string
}

export type GeolocAddressSearchInput = {
		formattedAddress:string,
	radius?:number
}

export type GeolocDistComponent = {
	__typename?: "GeolocDistComponent",
	calculated?:number,
	location?:LocComponent
}

export type GeolocSearchInput = {
		longitude:number,
	latitude:number,
	radius?:number
}

export type GetArgs = {
		limit:number,
	skip:number,
	sort?:string
}

export type HourComponent = {
	__typename?: "HourComponent",
	from:string,
	to:string
}

export type HoursInput = {
		from:string,
	to:string
}

export type IEngineSchema = {
	__interface:{
			_id:string,
	organisationId?:string,
	paths?:EnginePathComponent[],
	by?:MetaBy,
	permissions?:MetaPermissions,
	createdAt:DateTime,
	updatedAt:DateTime,
	tagsIds?:string[]
	};
	__resolve:{
		['...on BookingEngineSchema']: BookingEngineSchema;
		['...on BookingSchema']: BookingSchema;
		['...on OrderEngineSchema']: OrderEngineSchema;
	}
}

export type ImageComponent = {
	__typename?: "ImageComponent",
	title?:string,
	fileType?:string,
	large:string,
	medium?:string,
	small?:string
}

export type ImageInput = {
		title?:string,
	fileType?:string,
	large:string,
	medium?:string,
	small?:string
}

export type InvoiceInfo = {
	__typename?: "InvoiceInfo",
	provider:InvoicingProvider,
	invoiceId:string,
	invoiceNumber:number
}

export enum InvoicingProvider {
	directInvoice = "directInvoice"
}

/** The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */
export type JSONObject = any

export type LineItemSchema = {
	__typename?: "LineItemSchema",
	_id:string,
	productRessource:ProductRessourceEnum,
	productId:string,
	title:string,
	price:number,
	salesPrice:number,
	quantity:number,
	vatClassId:string,
	parentId?:string,
	addOns?:AddOnComponent[],
	localeInfo?:LocaleInfo,
	promoId?:string,
	finalPrice?:number,
	getProduct?:ProductUnion,
	getLinePrice:number,
	getLineVatPrice:number
}

export type LinkEmailInput = {
		email:string,
	password:string,
	idToken:string
}

export enum ListEnum {
	equipment = "equipment",
	feature = "feature"
}

export type ListModel = {
	__typename?: "ListModel",
	_id:string,
	organisationId?:string,
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string,
	createdAt:DateTime,
	updatedAt:DateTime,
	r:string[],
	w:string[],
	d:string[],
	title:TranslatableComponent,
	teaser?:TranslatableComponent,
	cover?:ImageComponent,
	thumbnail?:ImageComponent,
	extraImages?:ImageComponent[],
	content?:TranslatableComponent,
	seo?:SEOField,
	urls?:TranslatableComponent,
	ressourceType:ListEnum,
	colorCode?:string
}

export type LocaleInfo = {
	__typename?: "LocaleInfo",
	countryCode?:string,
	locale?:AvailableTranslation
}

export type LocComponent = {
	__typename?: "LocComponent",
	type:string,
	coordinates:number[]
}

export type LoginInput = {
		email:string,
	password:string
}

export type MainImage = {
		main?:ImageInput,
	one?:ImageInput,
	two?:ImageInput,
	three?:ImageInput,
	four?:ImageInput
}

export type MainImageComponent = {
	__typename?: "MainImageComponent",
	main?:ImageComponent,
	one?:ImageComponent,
	two?:ImageComponent,
	three?:ImageComponent,
	four?:ImageComponent
}

export type MessageModel = {
	__typename?: "MessageModel",
	_id:string,
	organisationId?:string,
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string,
	createdAt:DateTime,
	updatedAt:DateTime,
	r:string[],
	w:string[],
	d:string[],
	roomId:string,
	notified?:boolean,
	message:string,
	edited:boolean,
	deleted:boolean,
	file?:ImageComponent,
	sentBy:string,
	readBy:MessageReadBy[]
}

export type MessageReadBy = {
	__typename?: "MessageReadBy",
	accountId:string,
	readAt:DateTime
}

export type MetaBy = {
	__typename?: "MetaBy",
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string
}

export type MetaPermissions = {
	__typename?: "MetaPermissions",
	r:string[],
	w:string[],
	d:string[]
}

export enum ModelLoadersEnum {
	streams = "streams",
	accounts = "accounts",
	workspaces = "workspaces",
	bookings = "bookings"
}

export type Mutation = {
	__typename?: "Mutation",
	updateMe:AccountModel,
	updateMeEmail:AccountModel,
	updateMePassword:AccountModel,
	resetPassword:SimpleResult,
	registerGuest:AccountModel,
	register:AccountModel,
	accountsBillingInfosAddOne:BillingAddressComponent,
	accountsBillingInfosEditOne:BillingAddressComponent,
	accountsBillingInfosDeleteOne:string,
	accountsPaymentMethodsAddOne:PaymentMethodDetail,
	accountsPaymentMethodsMarkasDefault:PaymentMethodDetail,
	accountsPaymentMethodsDeleteOne:string,
	accountsLinkWithStripe:string,
	accountsRefreshInfoStripe:AccountModel,
	accountsFavoritesAddOne:FavoriteComponent,
	accountsFavoritesRemoveOne:SuccessResponse,
	workspacesAddOne:WorkspaceModel,
	workspacesEditOne:WorkspaceModel,
	workspacesDeleteOne:WorkspaceModel,
	finaliseCheckoutWithStripe:OrderEngineSchema,
	removeCurrentOrder:OrderEngineSchema,
	validateOrder:OrderEngineSchema,
	roomsCreateOne:RoomModel,
	roomsAddPeople:RoomModel,
	roomsRemovePeople:RoomModel,
	roomsMarkAllMessageAsRead:RoomModel,
	reserveOneBooking:OrderEngineSchema,
	roomsAddOneMessage:MessageModel,
	roomsEditOneMessage:MessageModel,
	roomsMarkMessageAsRead:MessageModel,
	roomsDeleteOneMessage:MessageModel
}

export type NewAccountInput = {
		email:string,
	password:string,
	passwordConfirmation:string,
	userName?:string,
	firstName?:string,
	lastName?:string,
	profilePicture?:ImageInput,
	phoneNumber?:string,
	gender?:AccountGenderEnum,
	birthDate?:DateTime,
	address?:AddressInput,
	language?:AvailableTranslation,
	settings?:SettingsInput[],
	terms:boolean
}

export type NewEmailInput = {
		newEmail:string
}

export type NewMessageInput = {
		roomId:string,
	message:string,
	file?:ImageInput
}

export type NewPasswordInput = {
		oldPassword:string,
	newPassword:string,
	newPasswordConfirmation:string
}

export type NewRoomInput = {
		accountIds:string[]
}

export type NewWorkspaceInput = {
		title?:string,
	teaser?:string,
	cover?:ImageInput,
	thumbnail?:ImageInput,
	extraImages?:ImageInput[],
	content?:string,
	seo?:SEOSimpleInput,
	urls?:string,
	workspaceType:WorkspaceTypeEnum,
	pricingPerHour:number,
	currency:AvailableCurrency,
	maxCapacity:number,
	minStay:number,
	maxStay?:number,
	availability:AvailabilityInput,
	mainImages:MainImage,
	equipmentIds:string[],
	featureIds:string[],
	address:AddressStrictInput
}

export enum OrderBusinessStatusEnum {
	processing = "processing",
	shipped = "shipped",
	completed = "completed",
	canceled = "canceled",
	refund = "refund"
}

export type OrderEngineSchema = {
	__typename?: "OrderEngineSchema",
	lines:LineItemSchema[],
	localeInfo:LocaleInfo,
	currency:CurrencyEnum,
	vatExempt:boolean,
	accountId:string,
	contactInfo?:BuyerInfoComponent,
	billingInfo?:BuyerInfoComponent,
	promoId?:string,
	invoiceInfo?:InvoiceInfo,
	providerOrderItems?:ProviderSchema[],
	orderName?:TranslatableComponent,
	orderStatus:OrderStatusEnum,
	paymentIntent:PaymentIntentInfo,
	paymentStatus?:PaymentStatusEnum,
	paymentInfo?:PaymentInfo,
	subTotalPrice:number,
	vatPrice:number,
	finalPrice:number,
	promo?:PromoModel,
	_id:string,
	organisationId?:string,
	paths?:EnginePathComponent[],
	by?:MetaBy,
	permissions?:MetaPermissions,
	createdAt:DateTime,
	updatedAt:DateTime,
	tagsIds?:string[],
	getBookingInput?:BookingNewInput
}

export enum OrderStatusEnum {
	draft = "draft",
	processing = "processing",
	shipped = "shipped",
	completed = "completed",
	canceled = "canceled",
	refund = "refund"
}

export type PaymentInfo = {
	__typename?: "PaymentInfo",
	provider:PaymentProvider,
	transactionId:string
}

export type PaymentIntentInfo = {
	__typename?: "PaymentIntentInfo",
	provider:PaymentProvider,
	stripePaymentIntentData:StripePaymentIntentData
}

export type PaymentMethodDetail = {
	__typename?: "PaymentMethodDetail",
	_id:string,
	sPayMethodId:string,
	default:boolean,
	nameOnCard:string,
	type:cardTypeEnum,
	cardInfo?:CardInfo
}

export type PaymentMethodInput = {
		sPayMethodId:string,
	nameOnCard:string,
	default?:boolean
}

export enum PaymentProvider {
	free = "free",
	stripe = "stripe",
	bancontact = "bancontact",
	bankWire = "bankWire"
}

export enum PaymentStatusEnum {
	pending = "pending",
	actionNeeded = "actionNeeded",
	paid = "paid",
	free = "free"
}

export type PlaceComponent = {
	__typename?: "PlaceComponent",
	placeId:string,
	address?:AddressComponent,
	loc:LocComponent,
	formattedAddress:string
}

export enum ProductRessourceEnum {
	workspaces = "workspaces"
}

export type ProductUnion = {
	__union:WorkspaceModel;
	__resolve:{
		['...on WorkspaceModel']: WorkspaceModel;
	}
}

export type PromoModel = {
	__typename?: "PromoModel",
	_id:string,
	organisationId?:string,
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string,
	createdAt:DateTime,
	updatedAt:DateTime,
	r:string[],
	w:string[],
	d:string[],
	code:string,
	description?:TranslatableComponent,
	type:PromoType,
	value:number,
	validity?:DateTime,
	cummulable:boolean,
	usageLimit?:number,
	usage:number
}

export enum PromoType {
	fixed = "fixed",
	percentage = "percentage"
}

export type ProviderSchema = {
	__typename?: "ProviderSchema",
	_id:string,
	organisationId:string,
	orderStatus:OrderBusinessStatusEnum,
	lines:LineItemSchema[]
}

export type Query = {
	__typename?: "Query",
	me:AccountModel,
	login:FirebaseTokenResult,
	magicLink:SimpleResult,
	placesAutocomplete:JSONObject[],
	placesGeocode:JSONObject,
	placesGeocodeFromAddress:JSONObject,
	categoriesGetOne:CategoryModel,
	categoriesGetMany:CategoryModel[],
	categoriesGetCount:number,
	listsGetOne:ListModel,
	listsGetMany:ListModel[],
	listsGetCount:number,
	accountsDashboardLinkStripe:string,
	workspacesGetOne:WorkspaceModel,
	workspacesGetMany:WorkspaceModel[],
	workspacesGetCount:number,
	workspacesSearchMany:WorkspaceModel[],
	workspacesGetMine:WorkspaceModel[],
	workspacesGetMineCount:number,
	bookingsGetOne:BookingEngineSchema,
	bookingsGetMany:BookingEngineSchema[],
	bookingsGetCount:number,
	myCurrentOrder:OrderEngineSchema,
	myOrdersGetOne:OrderEngineSchema,
	myOrdersGetMany:OrderEngineSchema[],
	myOrdersGetManyCount:number,
	roomsGetOne:RoomModel,
	roomsGetMany:RoomModel[],
	roomsGetMessages:MessageModel[]
}

export enum RangeType {
	strict = "strict",
	intersect = "intersect",
	intersectLarge = "intersectLarge",
	included = "included"
}

export type RemoveInput = {
		ressourceId:string
}

export type RemovePeopleFromRoomInput = {
		roomId:string,
	accountIds:string[]
}

export type ResetPasswordInput = {
		email:string
}

export enum RessourceEnum {
	workspaces = "workspaces"
}

export type RoomModel = {
	__typename?: "RoomModel",
	_id:string,
	organisationId?:string,
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string,
	createdAt:DateTime,
	updatedAt:DateTime,
	r:string[],
	w:string[],
	d:string[],
	title?:string,
	stats:RoomsStats,
	getAccounts?:AccountModel[],
	getMessages?:MessageModel[],
	lastMessage?:DateTime
}

export type RoomsStats = {
	__typename?: "RoomsStats",
	unreadCounts:UnreadCount[]
}

export type SEOField = {
	__typename?: "SEOField",
	title:TranslatableComponent,
	description:TranslatableComponent,
	keywords?:TranslatableComponent,
	thumbnail?:ImageComponent
}

export type SEOSimpleField = {
	__typename?: "SEOSimpleField",
	title:string,
	description:string,
	keywords?:string,
	thumbnail?:ImageComponent
}

export type SEOSimpleInput = {
		title:string,
	description:string,
	keywords?:string,
	thumbnail?:ImageInput
}

export type SettingsComponent = {
	__typename?: "SettingsComponent",
	type:SettingsTypeEnum,
	email?:boolean,
	pushNotifications?:boolean,
	sms?:boolean
}

export type SettingsInput = {
		type:SettingsTypeEnum,
	email?:boolean,
	pushNotifications?:boolean,
	sms?:boolean
}

export enum SettingsTypeEnum {
	notifications = "notifications",
	promotions = "promotions",
	reminders = "reminders"
}

export type SimpleResult = {
	__typename?: "SimpleResult",
	message:string
}

export type SlotComponent = {
	__typename?: "SlotComponent",
	startDate:DateTime,
	endDate:DateTime,
	startTime:string,
	endTime:string
}

export type SlotComponentInput = {
		startDate:DateTime,
	endDate:DateTime,
	startTime:string,
	endTime:string
}

export enum StatusEnum {
	draft = "draft",
	processing = "processing",
	validated = "validated",
	cancelled = "cancelled",
	expired = "expired"
}

export type StripeInfo = {
	__typename?: "StripeInfo",
	customerId:string
}

export type StripePaymentIntentData = {
	__typename?: "StripePaymentIntentData",
	id:string,
	client_secret?:string,
	currency:string,
	customer:string,
	status:string
}

export type StripePayoutInfo = {
	__typename?: "StripePayoutInfo",
	accountId:string,
	chargesEnabled:boolean,
	payoutsEnabled:boolean,
	detailsSubmitted:boolean
}

export type SuccessResponse = {
	__typename?: "SuccessResponse",
	success:boolean
}

export type TranslatableComponent = {
	__typename?: "TranslatableComponent",
	en?:string,
	fr:string,
	nl?:string,
	de?:string
}

export type UnreadCount = {
	__typename?: "UnreadCount",
	accountId:string,
	count:number
}

export type WorkspaceModel = {
	__typename?: "WorkspaceModel",
	_id:string,
	organisationId?:string,
	createdBy?:string,
	updatedBy?:string,
	deletedBy?:string,
	createdAt:DateTime,
	updatedAt:DateTime,
	r:string[],
	w:string[],
	d:string[],
	title?:string,
	teaser?:string,
	cover?:ImageComponent,
	thumbnail?:ImageComponent,
	extraImages?:ImageComponent[],
	content?:string,
	seo?:SEOSimpleField,
	urls?:string,
	place:PlaceComponent,
	dist?:GeolocDistComponent,
	getDistFromLocation?:number,
	workspaceType:WorkspaceTypeEnum,
	pricingPerHour:number,
	currency:AvailableCurrency,
	maxCapacity:number,
	minStay:number,
	maxStay?:number,
	availability:AvailabilityComponent,
	mainImages:MainImageComponent,
	equipmentIds:string[],
	featureIds:string[],
	address:AddressComponent,
	finalPrice:number,
	getEquipments?:(ListModel | undefined)[],
	getFeatures?:(ListModel | undefined)[],
	getBookings?:(BookingSchema | undefined)[],
	getOwner?:WorkspaceOwnerComponent
}

export type WorkspaceOwnerComponent = {
	__typename?: "WorkspaceOwnerComponent",
	firstName?:string,
	lastName?:string
}

export enum WorkspaceTypeEnum {
	meeting = "meeting",
	individual = "individual",
	open = "open"
}

export const AllTypesProps: Record<string,any> = {
	AccountGenderEnum: "enum",
	AccountTypeEnum: "enum",
	AddInput:{
		ressourceId:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		ressourceType:{
			type:"RessourceEnum",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	AddPeopleToRoomInput:{
		roomId:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		accountIds:{
			type:"String",
			array:true,
			arrayRequired:true,
			required:true
		}
	},
	AddressInput:{
		number:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		street:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		streetBis:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		floor:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		box:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		zip:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		state:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		city:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		country:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	AddressStrictInput:{
		number:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		street:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		zip:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		city:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		country:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		streetBis:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		floor:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		box:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		state:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	AvailabilityInput:{
		dates:{
			type:"DateRangeComponentInput",
			array:false,
			arrayRequired:false,
			required:true
		},
		hours:{
			type:"HoursInput",
			array:true,
			arrayRequired:false,
			required:true
		},
		exceptions:{
			type:"DateExceptionComponentInput",
			array:true,
			arrayRequired:false,
			required:true
		},
		noWeekend:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	AvailableCurrency: "enum",
	AvailableTranslation: "enum",
	BillingAddressInput:{
		firstName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		lastName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		address:{
			type:"AddressStrictInput",
			array:false,
			arrayRequired:false,
			required:true
		},
		email:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		default:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:false
		},
		customTags:{
			type:"JSONObject",
			array:false,
			arrayRequired:false,
			required:false
		},
		company:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		vatNumber:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		fiscalForm:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	BookingNewInputSchema:{
		durationType:{
			type:"DurationTypeEnum",
			array:false,
			arrayRequired:false,
			required:true
		},
		startToEnd:{
			type:"DateRangeComponentInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		slot:{
			type:"SlotComponentInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		capacity:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		},
		comments:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		ressourceModel:{
			type:"BookingsRessourceEnum",
			array:false,
			arrayRequired:false,
			required:true
		},
		ressourceId:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		checkoutInfo:{
			type:"CheckoutEngineInputI",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	BookingsRessourceEnum: "enum",
	BuyerInfo:{
		firstName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		lastName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		email:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		company:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		vatNumber:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		address:{
			type:"AddressInput",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	cardBrandEnum: "enum",
	cardTypeEnum: "enum",
	CheckoutEngineInputI:{
		contactInfo:{
			type:"BuyerInfo",
			array:false,
			arrayRequired:false,
			required:true
		},
		billingInfo:{
			type:"BuyerInfo",
			array:false,
			arrayRequired:false,
			required:true
		},
		token:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	CheckoutInput:{
		contactInfo:{
			type:"BuyerInfo",
			array:false,
			arrayRequired:false,
			required:true
		},
		billingInfo:{
			type:"BuyerInfo",
			array:false,
			arrayRequired:false,
			required:true
		},
		token:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	CountryCodesComponentEnum: "enum",
	CurrencyEnum: "enum",
	DateExceptionComponentInput:{
		dates:{
			type:"DateRangeComponentInput",
			array:false,
			arrayRequired:false,
			required:true
		},
		hours:{
			type:"HoursInput",
			array:true,
			arrayRequired:false,
			required:true
		},
		allDay:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	DateRangeComponentInput:{
		startDate:{
			type:"DateTime",
			array:false,
			arrayRequired:false,
			required:true
		},
		endDate:{
			type:"DateTime",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	DateTabType: "enum",
	DateTime: "String",
	DurationTypeEnum: "enum",
	EditAccountInput:{
		userName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		firstName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		lastName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		profilePicture:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		phoneNumber:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		gender:{
			type:"AccountGenderEnum",
			array:false,
			arrayRequired:false,
			required:false
		},
		birthDate:{
			type:"DateTime",
			array:false,
			arrayRequired:false,
			required:false
		},
		address:{
			type:"AddressInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		language:{
			type:"AvailableTranslation",
			array:false,
			arrayRequired:false,
			required:false
		},
		settings:{
			type:"SettingsInput",
			array:true,
			arrayRequired:false,
			required:true
		}
	},
	EditMessageInput:{
		message:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	EditWorkspaceInput:{
		title:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		teaser:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		cover:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		thumbnail:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		extraImages:{
			type:"ImageInput",
			array:true,
			arrayRequired:false,
			required:true
		},
		content:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		seo:{
			type:"SEOSimpleInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		urls:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		workspaceType:{
			type:"WorkspaceTypeEnum",
			array:false,
			arrayRequired:false,
			required:false
		},
		pricingPerHour:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		},
		currency:{
			type:"AvailableCurrency",
			array:false,
			arrayRequired:false,
			required:true
		},
		maxCapacity:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		},
		minStay:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		},
		maxStay:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		},
		availability:{
			type:"AvailabilityInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		mainImages:{
			type:"MainImage",
			array:false,
			arrayRequired:false,
			required:true
		},
		equipmentIds:{
			type:"String",
			array:true,
			arrayRequired:false,
			required:true
		},
		featureIds:{
			type:"String",
			array:true,
			arrayRequired:false,
			required:true
		},
		address:{
			type:"AddressStrictInput",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	GeolocAddressSearchInput:{
		formattedAddress:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		radius:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	GeolocSearchInput:{
		longitude:{
			type:"Float",
			array:false,
			arrayRequired:false,
			required:true
		},
		latitude:{
			type:"Float",
			array:false,
			arrayRequired:false,
			required:true
		},
		radius:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	GetArgs:{
		limit:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:true
		},
		skip:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:true
		},
		sort:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	HoursInput:{
		from:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		to:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	ImageInput:{
		title:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		fileType:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		large:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		medium:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		small:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	InvoicingProvider: "enum",
	JSONObject: "String",
	LinkEmailInput:{
		email:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		password:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		idToken:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	ListEnum: "enum",
	LoginInput:{
		email:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		password:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	MainImage:{
		main:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		one:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		two:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		three:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		four:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	ModelLoadersEnum: "enum",
	Mutation:{
		updateMe:{
			input:{
				type:"EditAccountInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		updateMeEmail:{
			input:{
				type:"NewEmailInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		updateMePassword:{
			input:{
				type:"NewPasswordInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		resetPassword:{
			input:{
				type:"ResetPasswordInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		registerGuest:{
			otherInfo:{
				type:"EditAccountInput",
				array:false,
				arrayRequired:false,
				required:true
			},
			input:{
				type:"LinkEmailInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		register:{
			input:{
				type:"NewAccountInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsBillingInfosAddOne:{
			input:{
				type:"BillingAddressInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsBillingInfosEditOne:{
			input:{
				type:"BillingAddressInput",
				array:false,
				arrayRequired:false,
				required:true
			},
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsBillingInfosDeleteOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsPaymentMethodsAddOne:{
			input:{
				type:"PaymentMethodInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsPaymentMethodsMarkasDefault:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsPaymentMethodsDeleteOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsFavoritesAddOne:{
			input:{
				type:"AddInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		accountsFavoritesRemoveOne:{
			input:{
				type:"RemoveInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		workspacesAddOne:{
			input:{
				type:"NewWorkspaceInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		workspacesEditOne:{
			input:{
				type:"EditWorkspaceInput",
				array:false,
				arrayRequired:false,
				required:true
			},
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		workspacesDeleteOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		finaliseCheckoutWithStripe:{
			input:{
				type:"CheckoutInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		validateOrder:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsCreateOne:{
			input:{
				type:"NewRoomInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsAddPeople:{
			input:{
				type:"AddPeopleToRoomInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsRemovePeople:{
			input:{
				type:"RemovePeopleFromRoomInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsMarkAllMessageAsRead:{
			roomId:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		reserveOneBooking:{
			input:{
				type:"BookingNewInputSchema",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsAddOneMessage:{
			input:{
				type:"NewMessageInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsEditOneMessage:{
			input:{
				type:"EditMessageInput",
				array:false,
				arrayRequired:false,
				required:true
			},
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsMarkMessageAsRead:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsDeleteOneMessage:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		}
	},
	NewAccountInput:{
		email:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		password:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		passwordConfirmation:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		userName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		firstName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		lastName:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		profilePicture:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		phoneNumber:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		gender:{
			type:"AccountGenderEnum",
			array:false,
			arrayRequired:false,
			required:false
		},
		birthDate:{
			type:"DateTime",
			array:false,
			arrayRequired:false,
			required:false
		},
		address:{
			type:"AddressInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		language:{
			type:"AvailableTranslation",
			array:false,
			arrayRequired:false,
			required:false
		},
		settings:{
			type:"SettingsInput",
			array:true,
			arrayRequired:false,
			required:true
		},
		terms:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	NewEmailInput:{
		newEmail:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	NewMessageInput:{
		roomId:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		message:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		file:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	NewPasswordInput:{
		oldPassword:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		newPassword:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		newPasswordConfirmation:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	NewRoomInput:{
		accountIds:{
			type:"String",
			array:true,
			arrayRequired:true,
			required:true
		}
	},
	NewWorkspaceInput:{
		title:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		teaser:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		cover:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		thumbnail:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		extraImages:{
			type:"ImageInput",
			array:true,
			arrayRequired:false,
			required:true
		},
		content:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		seo:{
			type:"SEOSimpleInput",
			array:false,
			arrayRequired:false,
			required:false
		},
		urls:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		workspaceType:{
			type:"WorkspaceTypeEnum",
			array:false,
			arrayRequired:false,
			required:true
		},
		pricingPerHour:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:true
		},
		currency:{
			type:"AvailableCurrency",
			array:false,
			arrayRequired:false,
			required:true
		},
		maxCapacity:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:true
		},
		minStay:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:true
		},
		maxStay:{
			type:"Int",
			array:false,
			arrayRequired:false,
			required:false
		},
		availability:{
			type:"AvailabilityInput",
			array:false,
			arrayRequired:false,
			required:true
		},
		mainImages:{
			type:"MainImage",
			array:false,
			arrayRequired:false,
			required:true
		},
		equipmentIds:{
			type:"String",
			array:true,
			arrayRequired:true,
			required:true
		},
		featureIds:{
			type:"String",
			array:true,
			arrayRequired:true,
			required:true
		},
		address:{
			type:"AddressStrictInput",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	OrderBusinessStatusEnum: "enum",
	OrderStatusEnum: "enum",
	PaymentMethodInput:{
		sPayMethodId:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		nameOnCard:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		default:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	PaymentProvider: "enum",
	PaymentStatusEnum: "enum",
	ProductRessourceEnum: "enum",
	PromoType: "enum",
	Query:{
		login:{
			refreshToken:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			creds:{
				type:"LoginInput",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		magicLink:{
			input:{
				type:"ResetPasswordInput",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		placesAutocomplete:{
			session:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			},
			input:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			},
			language:{
				type:"AvailableTranslation",
				array:false,
				arrayRequired:false,
				required:false
			},
			country:{
				type:"CountryCodesComponentEnum",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		placesGeocode:{
			session:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			},
			placeId:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		placesGeocodeFromAddress:{
			address:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		categoriesGetOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		categoriesGetMany:{
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceType:{
				type:"RessourceEnum",
				array:false,
				arrayRequired:false,
				required:true
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		categoriesGetCount:{
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceType:{
				type:"RessourceEnum",
				array:false,
				arrayRequired:false,
				required:true
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		listsGetOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		listsGetMany:{
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceType:{
				type:"ListEnum",
				array:false,
				arrayRequired:false,
				required:true
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		listsGetCount:{
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceType:{
				type:"ListEnum",
				array:false,
				arrayRequired:false,
				required:true
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		workspacesGetOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		workspacesGetMany:{
			geoSearch:{
				type:"GeolocSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			geoSearchWithAddress:{
				type:"GeolocAddressSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateFrom:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTo:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursFrom:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursTo:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceType:{
				type:"WorkspaceTypeEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceTypes:{
				type:"WorkspaceTypeEnum",
				array:true,
				arrayRequired:false,
				required:true
			},
			priceMin:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			priceMax:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			maxCapacity:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			equipmentIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			featureIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		workspacesGetCount:{
			geoSearch:{
				type:"GeolocSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			geoSearchWithAddress:{
				type:"GeolocAddressSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateFrom:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTo:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursFrom:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursTo:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceType:{
				type:"WorkspaceTypeEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceTypes:{
				type:"WorkspaceTypeEnum",
				array:true,
				arrayRequired:false,
				required:true
			},
			priceMin:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			priceMax:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			maxCapacity:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			equipmentIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			featureIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		workspacesSearchMany:{
			geoSearch:{
				type:"GeolocSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			geoSearchWithAddress:{
				type:"GeolocAddressSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateFrom:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTo:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursFrom:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursTo:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceType:{
				type:"WorkspaceTypeEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceTypes:{
				type:"WorkspaceTypeEnum",
				array:true,
				arrayRequired:false,
				required:true
			},
			priceMin:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			priceMax:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			maxCapacity:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			equipmentIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			featureIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		workspacesGetMine:{
			geoSearch:{
				type:"GeolocSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			geoSearchWithAddress:{
				type:"GeolocAddressSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateFrom:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTo:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursFrom:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursTo:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceType:{
				type:"WorkspaceTypeEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceTypes:{
				type:"WorkspaceTypeEnum",
				array:true,
				arrayRequired:false,
				required:true
			},
			priceMin:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			priceMax:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			maxCapacity:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			equipmentIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			featureIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		workspacesGetMineCount:{
			geoSearch:{
				type:"GeolocSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			geoSearchWithAddress:{
				type:"GeolocAddressSearchInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateFrom:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTo:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursFrom:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			hoursTo:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceType:{
				type:"WorkspaceTypeEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			workspaceTypes:{
				type:"WorkspaceTypeEnum",
				array:true,
				arrayRequired:false,
				required:true
			},
			priceMin:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			priceMax:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			maxCapacity:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			},
			equipmentIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			featureIds:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		bookingsGetOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		bookingsGetMany:{
			startDate:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			endDate:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			rangeType:{
				type:"RangeType",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTabType:{
				type:"DateTabType",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateRange:{
				type:"DateRangeComponentInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceModel:{
				type:"BookingsRessourceEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceId:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			status:{
				type:"StatusEnum",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		bookingsGetCount:{
			startDate:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			endDate:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			rangeType:{
				type:"RangeType",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTabType:{
				type:"DateTabType",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateRange:{
				type:"DateRangeComponentInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceModel:{
				type:"BookingsRessourceEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceId:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			status:{
				type:"StatusEnum",
				array:true,
				arrayRequired:false,
				required:true
			}
		},
		myOrdersGetOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		myOrdersGetMany:{
			orderStatus:{
				type:"OrderStatusEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			paymentStatus:{
				type:"PaymentStatusEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		myOrdersGetManyCount:{
			orderStatus:{
				type:"OrderStatusEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			paymentStatus:{
				type:"PaymentStatusEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		roomsGetOne:{
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		},
		roomsGetMany:{
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		roomsGetMessages:{
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			},
			id:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:true
			}
		}
	},
	RangeType: "enum",
	RemoveInput:{
		ressourceId:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	RemovePeopleFromRoomInput:{
		roomId:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		accountIds:{
			type:"String",
			array:true,
			arrayRequired:true,
			required:true
		}
	},
	ResetPasswordInput:{
		email:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	RessourceEnum: "enum",
	RoomModel:{
		getMessages:{
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			}
		}
	},
	SEOSimpleInput:{
		title:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		description:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		keywords:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:false
		},
		thumbnail:{
			type:"ImageInput",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	SettingsInput:{
		type:{
			type:"SettingsTypeEnum",
			array:false,
			arrayRequired:false,
			required:true
		},
		email:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:false
		},
		pushNotifications:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:false
		},
		sms:{
			type:"Boolean",
			array:false,
			arrayRequired:false,
			required:false
		}
	},
	SettingsTypeEnum: "enum",
	SlotComponentInput:{
		startDate:{
			type:"DateTime",
			array:false,
			arrayRequired:false,
			required:true
		},
		endDate:{
			type:"DateTime",
			array:false,
			arrayRequired:false,
			required:true
		},
		startTime:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		},
		endTime:{
			type:"String",
			array:false,
			arrayRequired:false,
			required:true
		}
	},
	StatusEnum: "enum",
	WorkspaceModel:{
		getDistFromLocation:{
			longitude:{
				type:"Float",
				array:false,
				arrayRequired:false,
				required:true
			},
			latitude:{
				type:"Float",
				array:false,
				arrayRequired:false,
				required:true
			},
			radius:{
				type:"Int",
				array:false,
				arrayRequired:false,
				required:false
			}
		},
		getBookings:{
			ressourceModel:{
				type:"BookingsRessourceEnum",
				array:false,
				arrayRequired:false,
				required:false
			},
			ressourceId:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			status:{
				type:"StatusEnum",
				array:true,
				arrayRequired:false,
				required:true
			},
			startDate:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			endDate:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			rangeType:{
				type:"RangeType",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateTabType:{
				type:"DateTabType",
				array:false,
				arrayRequired:false,
				required:false
			},
			dateRange:{
				type:"DateRangeComponentInput",
				array:false,
				arrayRequired:false,
				required:false
			},
			_ids:{
				type:"String",
				array:true,
				arrayRequired:false,
				required:true
			},
			search:{
				type:"String",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterCreatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			afterUpdatedAt:{
				type:"DateTime",
				array:false,
				arrayRequired:false,
				required:false
			},
			pagination:{
				type:"GetArgs",
				array:false,
				arrayRequired:false,
				required:false
			}
		}
	},
	WorkspaceTypeEnum: "enum"
}

export const ReturnTypes: Record<string,any> = {
	AccountModel:{
		_id:"ID",
		organisationId:"ID",
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		r:"String",
		w:"String",
		d:"String",
		types:"AccountTypeEnum",
		organisationIds:"String",
		email:"String",
		userName:"String",
		firstName:"String",
		lastName:"String",
		profilePicture:"ImageComponent",
		phoneNumber:"String",
		gender:"AccountGenderEnum",
		birthDate:"DateTime",
		getAge:"Int",
		address:"AddressComponent",
		language:"AvailableTranslation",
		settings:"SettingsComponent",
		securityCheck:"Boolean",
		paymentInfo:"AccountPaymentInfo",
		payoutInfo:"AccountPayoutInfo",
		terms:"Boolean",
		favLikes:"FavoriteComponent",
		getFavorites:"FavoriteComponent",
		getLiked:"FavoriteComponent"
	},
	AccountPaymentInfo:{
		stripeInfo:"StripeInfo",
		paymentMethods:"PaymentMethodDetail",
		billingInfos:"BillingAddressComponent"
	},
	AccountPayoutInfo:{
		stripeInfo:"StripePayoutInfo"
	},
	AddOnComponent:{
		addOnId:"String",
		quantity:"Float"
	},
	AddressComponent:{
		number:"String",
		street:"String",
		streetBis:"String",
		floor:"String",
		box:"String",
		zip:"String",
		state:"String",
		city:"String",
		country:"String"
	},
	AddressStrictComponent:{
		number:"String",
		street:"String",
		zip:"String",
		city:"String",
		country:"String",
		streetBis:"String",
		floor:"String",
		box:"String",
		state:"String"
	},
	AvailabilityComponent:{
		dates:"DateRangeComponent",
		hours:"HourComponent",
		exceptions:"DateExceptionComponent",
		noWeekend:"Boolean"
	},
	BillingAddressComponent:{
		firstName:"String",
		lastName:"String",
		address:"AddressStrictComponent",
		email:"String",
		default:"Boolean",
		customTags:"JSONObject",
		company:"String",
		vatNumber:"String",
		fiscalForm:"String",
		_id:"String"
	},
	BookingEngineSchema:{
		durationType:"DurationTypeEnum",
		startToEnd:"DateRangeComponent",
		slot:"SlotComponent",
		capacity:"Int",
		comments:"String",
		status:"StatusEnum",
		paths:"EnginePathComponent",
		ownerId:"String",
		dates:"DateRangeComponent",
		owner:"AccountModel",
		_id:"ID",
		organisationId:"ID",
		by:"MetaBy",
		permissions:"MetaPermissions",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		tagsIds:"String",
		workspace:"WorkspaceModel",
		room:"RoomModel"
	},
	BookingNewInput:{
		durationType:"DurationTypeEnum",
		startToEnd:"DateRangeComponent",
		slot:"SlotComponent",
		capacity:"Int",
		comments:"String",
		ressourceModel:"BookingsRessourceEnum",
		ressourceId:"String",
		checkoutInfo:"CheckoutEngineInput"
	},
	BookingSchema:{
		durationType:"DurationTypeEnum",
		startToEnd:"DateRangeComponent",
		slot:"SlotComponent",
		capacity:"Int",
		comments:"String",
		status:"StatusEnum",
		paths:"EnginePathComponent",
		ownerId:"String",
		dates:"DateRangeComponent",
		_id:"ID",
		organisationId:"ID",
		by:"MetaBy",
		permissions:"MetaPermissions",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		tagsIds:"String"
	},
	BuyerInfoComponent:{
		firstName:"String",
		lastName:"String",
		email:"String",
		company:"String",
		vatNumber:"String",
		address:"AddressComponent"
	},
	CardInfo:{
		brand:"cardBrandEnum",
		country:"String",
		exp_month:"Int",
		exp_year:"Int",
		last4:"String"
	},
	CategoryModel:{
		_id:"ID",
		organisationId:"ID",
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		r:"String",
		w:"String",
		d:"String",
		title:"TranslatableComponent",
		teaser:"TranslatableComponent",
		cover:"ImageComponent",
		thumbnail:"ImageComponent",
		extraImages:"ImageComponent",
		content:"TranslatableComponent",
		seo:"SEOField",
		urls:"TranslatableComponent",
		ressourceType:"RessourceEnum",
		colorCode:"String"
	},
	CheckoutEngineInput:{
		contactInfo:"BuyerInfoComponent",
		billingInfo:"BuyerInfoComponent",
		token:"String"
	},
	DateExceptionComponent:{
		dates:"DateRangeComponent",
		hours:"HourComponent",
		allDay:"Boolean"
	},
	DateRangeComponent:{
		startDate:"DateTime",
		endDate:"DateTime"
	},
	EnginePathComponent:{
		ressourceModel:"ModelLoadersEnum",
		ressourceId:"String"
	},
	FavoriteComponent:{
		ressourceId:"String",
		ressourceType:"RessourceEnum",
		addedAt:"DateTime",
		favorite:"Boolean",
		liked:"Boolean"
	},
	FirebaseTokenResult:{
		localId:"String",
		email:"String",
		displayName:"String",
		idToken:"String",
		registered:"Boolean",
		refreshToken:"String",
		expiresIn:"String"
	},
	GeolocDistComponent:{
		calculated:"Float",
		location:"LocComponent"
	},
	HourComponent:{
		from:"String",
		to:"String"
	},
	IEngineSchema:{
		"...on BookingEngineSchema": "BookingEngineSchema",
		"...on BookingSchema": "BookingSchema",
		"...on OrderEngineSchema": "OrderEngineSchema",
		_id:"ID",
		organisationId:"ID",
		paths:"EnginePathComponent",
		by:"MetaBy",
		permissions:"MetaPermissions",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		tagsIds:"String"
	},
	ImageComponent:{
		title:"String",
		fileType:"String",
		large:"String",
		medium:"String",
		small:"String"
	},
	InvoiceInfo:{
		provider:"InvoicingProvider",
		invoiceId:"String",
		invoiceNumber:"Float"
	},
	LineItemSchema:{
		_id:"String",
		productRessource:"ProductRessourceEnum",
		productId:"String",
		title:"String",
		price:"Float",
		salesPrice:"Float",
		quantity:"Float",
		vatClassId:"String",
		parentId:"String",
		addOns:"AddOnComponent",
		localeInfo:"LocaleInfo",
		promoId:"String",
		finalPrice:"Float",
		getProduct:"ProductUnion",
		getLinePrice:"Float",
		getLineVatPrice:"Float"
	},
	ListModel:{
		_id:"ID",
		organisationId:"ID",
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		r:"String",
		w:"String",
		d:"String",
		title:"TranslatableComponent",
		teaser:"TranslatableComponent",
		cover:"ImageComponent",
		thumbnail:"ImageComponent",
		extraImages:"ImageComponent",
		content:"TranslatableComponent",
		seo:"SEOField",
		urls:"TranslatableComponent",
		ressourceType:"ListEnum",
		colorCode:"String"
	},
	LocaleInfo:{
		countryCode:"String",
		locale:"AvailableTranslation"
	},
	LocComponent:{
		type:"String",
		coordinates:"Float"
	},
	MainImageComponent:{
		main:"ImageComponent",
		one:"ImageComponent",
		two:"ImageComponent",
		three:"ImageComponent",
		four:"ImageComponent"
	},
	MessageModel:{
		_id:"ID",
		organisationId:"ID",
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		r:"String",
		w:"String",
		d:"String",
		roomId:"String",
		notified:"Boolean",
		message:"String",
		edited:"Boolean",
		deleted:"Boolean",
		file:"ImageComponent",
		sentBy:"String",
		readBy:"MessageReadBy"
	},
	MessageReadBy:{
		accountId:"String",
		readAt:"DateTime"
	},
	MetaBy:{
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID"
	},
	MetaPermissions:{
		r:"String",
		w:"String",
		d:"String"
	},
	Mutation:{
		updateMe:"AccountModel",
		updateMeEmail:"AccountModel",
		updateMePassword:"AccountModel",
		resetPassword:"SimpleResult",
		registerGuest:"AccountModel",
		register:"AccountModel",
		accountsBillingInfosAddOne:"BillingAddressComponent",
		accountsBillingInfosEditOne:"BillingAddressComponent",
		accountsBillingInfosDeleteOne:"String",
		accountsPaymentMethodsAddOne:"PaymentMethodDetail",
		accountsPaymentMethodsMarkasDefault:"PaymentMethodDetail",
		accountsPaymentMethodsDeleteOne:"String",
		accountsLinkWithStripe:"String",
		accountsRefreshInfoStripe:"AccountModel",
		accountsFavoritesAddOne:"FavoriteComponent",
		accountsFavoritesRemoveOne:"SuccessResponse",
		workspacesAddOne:"WorkspaceModel",
		workspacesEditOne:"WorkspaceModel",
		workspacesDeleteOne:"WorkspaceModel",
		finaliseCheckoutWithStripe:"OrderEngineSchema",
		removeCurrentOrder:"OrderEngineSchema",
		validateOrder:"OrderEngineSchema",
		roomsCreateOne:"RoomModel",
		roomsAddPeople:"RoomModel",
		roomsRemovePeople:"RoomModel",
		roomsMarkAllMessageAsRead:"RoomModel",
		reserveOneBooking:"OrderEngineSchema",
		roomsAddOneMessage:"MessageModel",
		roomsEditOneMessage:"MessageModel",
		roomsMarkMessageAsRead:"MessageModel",
		roomsDeleteOneMessage:"MessageModel"
	},
	OrderEngineSchema:{
		lines:"LineItemSchema",
		localeInfo:"LocaleInfo",
		currency:"CurrencyEnum",
		vatExempt:"Boolean",
		accountId:"String",
		contactInfo:"BuyerInfoComponent",
		billingInfo:"BuyerInfoComponent",
		promoId:"ID",
		invoiceInfo:"InvoiceInfo",
		providerOrderItems:"ProviderSchema",
		orderName:"TranslatableComponent",
		orderStatus:"OrderStatusEnum",
		paymentIntent:"PaymentIntentInfo",
		paymentStatus:"PaymentStatusEnum",
		paymentInfo:"PaymentInfo",
		subTotalPrice:"Float",
		vatPrice:"Float",
		finalPrice:"Float",
		promo:"PromoModel",
		_id:"ID",
		organisationId:"ID",
		paths:"EnginePathComponent",
		by:"MetaBy",
		permissions:"MetaPermissions",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		tagsIds:"String",
		getBookingInput:"BookingNewInput"
	},
	PaymentInfo:{
		provider:"PaymentProvider",
		transactionId:"String"
	},
	PaymentIntentInfo:{
		provider:"PaymentProvider",
		stripePaymentIntentData:"StripePaymentIntentData"
	},
	PaymentMethodDetail:{
		_id:"String",
		sPayMethodId:"String",
		default:"Boolean",
		nameOnCard:"String",
		type:"cardTypeEnum",
		cardInfo:"CardInfo"
	},
	PlaceComponent:{
		placeId:"String",
		address:"AddressComponent",
		loc:"LocComponent",
		formattedAddress:"String"
	},
	ProductUnion:{
		"...on WorkspaceModel":"WorkspaceModel"
	},
	PromoModel:{
		_id:"ID",
		organisationId:"ID",
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		r:"String",
		w:"String",
		d:"String",
		code:"String",
		description:"TranslatableComponent",
		type:"PromoType",
		value:"Float",
		validity:"DateTime",
		cummulable:"Boolean",
		usageLimit:"Float",
		usage:"Float"
	},
	ProviderSchema:{
		_id:"String",
		organisationId:"String",
		orderStatus:"OrderBusinessStatusEnum",
		lines:"LineItemSchema"
	},
	Query:{
		me:"AccountModel",
		login:"FirebaseTokenResult",
		magicLink:"SimpleResult",
		placesAutocomplete:"JSONObject",
		placesGeocode:"JSONObject",
		placesGeocodeFromAddress:"JSONObject",
		categoriesGetOne:"CategoryModel",
		categoriesGetMany:"CategoryModel",
		categoriesGetCount:"Float",
		listsGetOne:"ListModel",
		listsGetMany:"ListModel",
		listsGetCount:"Float",
		accountsDashboardLinkStripe:"String",
		workspacesGetOne:"WorkspaceModel",
		workspacesGetMany:"WorkspaceModel",
		workspacesGetCount:"Float",
		workspacesSearchMany:"WorkspaceModel",
		workspacesGetMine:"WorkspaceModel",
		workspacesGetMineCount:"Float",
		bookingsGetOne:"BookingEngineSchema",
		bookingsGetMany:"BookingEngineSchema",
		bookingsGetCount:"Float",
		myCurrentOrder:"OrderEngineSchema",
		myOrdersGetOne:"OrderEngineSchema",
		myOrdersGetMany:"OrderEngineSchema",
		myOrdersGetManyCount:"Float",
		roomsGetOne:"RoomModel",
		roomsGetMany:"RoomModel",
		roomsGetMessages:"MessageModel"
	},
	RoomModel:{
		_id:"ID",
		organisationId:"ID",
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		r:"String",
		w:"String",
		d:"String",
		title:"String",
		stats:"RoomsStats",
		getAccounts:"AccountModel",
		getMessages:"MessageModel",
		lastMessage:"DateTime"
	},
	RoomsStats:{
		unreadCounts:"UnreadCount"
	},
	SEOField:{
		title:"TranslatableComponent",
		description:"TranslatableComponent",
		keywords:"TranslatableComponent",
		thumbnail:"ImageComponent"
	},
	SEOSimpleField:{
		title:"String",
		description:"String",
		keywords:"String",
		thumbnail:"ImageComponent"
	},
	SettingsComponent:{
		type:"SettingsTypeEnum",
		email:"Boolean",
		pushNotifications:"Boolean",
		sms:"Boolean"
	},
	SimpleResult:{
		message:"String"
	},
	SlotComponent:{
		startDate:"DateTime",
		endDate:"DateTime",
		startTime:"String",
		endTime:"String"
	},
	StripeInfo:{
		customerId:"String"
	},
	StripePaymentIntentData:{
		id:"String",
		client_secret:"String",
		currency:"String",
		customer:"String",
		status:"String"
	},
	StripePayoutInfo:{
		accountId:"String",
		chargesEnabled:"Boolean",
		payoutsEnabled:"Boolean",
		detailsSubmitted:"Boolean"
	},
	SuccessResponse:{
		success:"Boolean"
	},
	TranslatableComponent:{
		en:"String",
		fr:"String",
		nl:"String",
		de:"String"
	},
	UnreadCount:{
		accountId:"String",
		count:"Float"
	},
	WorkspaceModel:{
		_id:"ID",
		organisationId:"ID",
		createdBy:"ID",
		updatedBy:"ID",
		deletedBy:"ID",
		createdAt:"DateTime",
		updatedAt:"DateTime",
		r:"String",
		w:"String",
		d:"String",
		title:"String",
		teaser:"String",
		cover:"ImageComponent",
		thumbnail:"ImageComponent",
		extraImages:"ImageComponent",
		content:"String",
		seo:"SEOSimpleField",
		urls:"String",
		place:"PlaceComponent",
		dist:"GeolocDistComponent",
		getDistFromLocation:"Float",
		workspaceType:"WorkspaceTypeEnum",
		pricingPerHour:"Int",
		currency:"AvailableCurrency",
		maxCapacity:"Int",
		minStay:"Int",
		maxStay:"Int",
		availability:"AvailabilityComponent",
		mainImages:"MainImageComponent",
		equipmentIds:"String",
		featureIds:"String",
		address:"AddressComponent",
		finalPrice:"Float",
		getEquipments:"ListModel",
		getFeatures:"ListModel",
		getBookings:"BookingSchema",
		getOwner:"WorkspaceOwnerComponent"
	},
	WorkspaceOwnerComponent:{
		firstName:"String",
		lastName:"String"
	}
}

export class GraphQLError extends Error {
    constructor(public response: GraphQLResponse) {
      super("");
      console.error(response);
    }
    toString() {
      return "GraphQL Response Error";
    }
  }


type Func<P extends any[], R> = (...args: P) => R;
type AnyFunc = Func<any, any>;

type WithTypeNameValue<T> = T & {
  __typename?: true;
};

type AliasType<T> = WithTypeNameValue<T> & {
  __alias?: Record<string, WithTypeNameValue<T>>;
};

type NotUndefined<T> = T extends undefined ? never : T;

export type ResolverType<F> = NotUndefined<F extends [infer ARGS, any] ? ARGS : undefined>;

export type ArgsType<F extends AnyFunc> = F extends Func<infer P, any> ? P : never;

interface GraphQLResponse {
  data?: Record<string, any>;
  errors?: Array<{
    message: string;
  }>;
}
export type MapInterface<SRC, DST> = SRC extends {
  __interface: infer INTERFACE;
  __resolve: infer IMPLEMENTORS;
}
  ? ObjectToUnion<
      Omit<
        {
          [Key in keyof Omit<DST, keyof INTERFACE | '__typename'>]: Key extends keyof IMPLEMENTORS
            ? MapType<IMPLEMENTORS[Key], DST[Key]> &
                Omit<
                  {
                    [Key in keyof Omit<
                      DST,
                      keyof IMPLEMENTORS | '__typename'
                    >]: Key extends keyof INTERFACE
                      ? LastMapTypeSRCResolver<INTERFACE[Key], DST[Key]>
                      : never;
                  },
                  keyof IMPLEMENTORS
                > &
                (DST extends { __typename: any }
                  ? MapType<IMPLEMENTORS[Key], { __typename: true }>
                  : {})
            : never;
        },
        keyof INTERFACE | '__typename'
      >
    >
  : never;

export type ValueToUnion<T> = T extends {
  __typename: infer R;
}
  ? {
      [P in keyof Omit<T, '__typename'>]: T[P] & {
        __typename: R;
      };
    }
  : T;

export type ObjectToUnion<T> = {
  [P in keyof T]: T[P];
}[keyof T];

type Anify<T> = { [P in keyof T]?: any };


type LastMapTypeSRCResolver<SRC, DST> = SRC extends undefined
  ? undefined
  : SRC extends Array<infer AR>
  ? LastMapTypeSRCResolver<AR, DST>[]
  : SRC extends { __interface: any; __resolve: any }
  ? MapInterface<SRC, DST>
  : SRC extends { __union: any; __resolve: infer RESOLVE }
  ? ObjectToUnion<MapType<RESOLVE, ValueToUnion<DST>>>
  : DST extends boolean
  ? SRC
  : MapType<SRC, DST>;

type MapType<SRC extends Anify<DST>, DST> = DST extends boolean
  ? SRC
  : DST extends {
      __alias: any;
    }
  ? {
      [A in keyof DST["__alias"]]: Required<SRC> extends Anify<
        DST["__alias"][A]
      >
        ? MapType<Required<SRC>, DST["__alias"][A]>
        : never;
    } &
      {
        [Key in keyof Omit<DST, "__alias">]: DST[Key] extends [
          any,
          infer PAYLOAD
        ]
          ? LastMapTypeSRCResolver<SRC[Key], PAYLOAD>
          : LastMapTypeSRCResolver<SRC[Key], DST[Key]>;
      }
  : {
      [Key in keyof DST]: DST[Key] extends [any, infer PAYLOAD]
        ? LastMapTypeSRCResolver<SRC[Key], PAYLOAD>
        : LastMapTypeSRCResolver<SRC[Key], DST[Key]>;
    };

type OperationToGraphQL<V, T> = <Z extends V>(o: Z | V, variables?: Record<string, any>) => Promise<MapType<T, Z>>;

type CastToGraphQL<V, T> = (
  resultOfYourQuery: any
) => <Z extends V>(o: Z | V) => MapType<T, Z>;

type fetchOptions = ArgsType<typeof fetch>;

export type SelectionFunction<V> = <T>(t: T | V) => T;
type FetchFunction = (query: string, variables?: Record<string, any>) => any;



export const ZeusSelect = <T>() => ((t: any) => t) as SelectionFunction<T>;
export const ScalarResolver = (scalar: string, value: any) => {
  switch (scalar) {
    case 'String':
      return  `"${value.replace(/"/g, '\\\"')}"`;
    case 'Int':
      return `${value}`;
    case 'Float':
      return `${value}`;
    case 'Boolean':
      return `${value}`;
    case 'ID':
      return `"${value}"`;
    case 'enum':
      return `${value}`;
    case 'scalar':
      return `${value}`;
    default:
      return false;
  }
};

export const TypesPropsResolver = ({
  value,
  type,
  name,
  key,
  blockArrays
}: {
  value: any;
  type: string;
  name: string;
  key?: string;
  blockArrays?: boolean;
}): string => {
  if (value === null) {
    return `null`;
  }
  let resolvedValue = AllTypesProps[type][name];
  if (key) {
    resolvedValue = resolvedValue[key];
  }
  if (!resolvedValue) {
    throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`)
  }
  const typeResolved = resolvedValue.type;
  const isArray: boolean = resolvedValue.array;
  if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) {
    const isRequired = resolvedValue.required ? '!' : ''
    return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${typeResolved}${isRequired}`;
  }
  if (isArray && !blockArrays) {
    return `[${value
      .map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true }))
      .join(',')}]`;
  }
  const reslovedScalar = ScalarResolver(typeResolved, value);
  if (!reslovedScalar) {
    const resolvedType = AllTypesProps[typeResolved];
    if (typeof resolvedType === 'object') {
      const argsKeys = Object.keys(resolvedType);
      return `{${argsKeys
        .filter((ak) => value[ak] !== undefined)
        .map(
          (ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`
        )}}`;
    }
    return ScalarResolver(AllTypesProps[typeResolved], value) as string;
  }
  return reslovedScalar;
};

const isArrayFunction = (
  parent: string[],
  a: any[]
) => {
  const [values, r] = a;
  const [mainKey, key, ...keys] = parent;
  const keyValues = Object.keys(values);

  if (!keys.length) {
      return keyValues.length > 0
        ? `(${keyValues
            .map(
              (v) =>
                `${v}:${TypesPropsResolver({
                  value: values[v],
                  type: mainKey,
                  name: key,
                  key: v
                })}`
            )
            .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}`
        : traverseToSeekArrays(parent, r);
    }

  const [typeResolverKey] = keys.splice(keys.length - 1, 1);
  let valueToResolve = ReturnTypes[mainKey][key];
  for (const k of keys) {
    valueToResolve = ReturnTypes[valueToResolve][k];
  }

  const argumentString =
    keyValues.length > 0
      ? `(${keyValues
          .map(
            (v) =>
              `${v}:${TypesPropsResolver({
                value: values[v],
                type: valueToResolve,
                name: typeResolverKey,
                key: v
              })}`
          )
          .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}`
      : traverseToSeekArrays(parent, r);
  return argumentString;
};

const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) =>
  typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`;

const objectToTree = (o: { [x: string]: boolean | string }): string =>
  `{${Object.keys(o).map((k) => `${resolveKV(k, o[k])}`).join(' ')}}`;

const traverseToSeekArrays = (parent: string[], a?: any): string => {
  if (!a) return '';
  if (Object.keys(a).length === 0) {
    return '';
  }
  let b: Record<string, any> = {};
  if (Array.isArray(a)) {
    return isArrayFunction([...parent], a);
  } else {
    if (typeof a === 'object') {
      Object.keys(a).map((k) => {
        if (k === '__alias') {
          Object.keys(a[k]).map((aliasKey) => {
            const aliasOperations = a[k][aliasKey];
            const aliasOperationName = Object.keys(aliasOperations)[0];
            const aliasOperation = aliasOperations[aliasOperationName];
            b[
              `${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}`
            ] = traverseToSeekArrays([...parent, aliasOperationName], aliasOperation);
          });
        } else {
          b[k] = traverseToSeekArrays([...parent, k], a[k]);
        }
      });
    } else {
      return '';
    }
  }
  return objectToTree(b);
};

const buildQuery = (type: string, a?: Record<any, any>) => traverseToSeekArrays([type], a);

const inspectVariables = (query: string) => {
  const regex = /\$\b\w*ZEUS_VAR\w*\b[!]?/g;
  let result;
  const AllVariables = [];
  while ((result = regex.exec(query))) {
    AllVariables.push(result[0]);
  }
  if (!AllVariables.length) {
    return query;
  }
  let filteredQuery = query;
  AllVariables.forEach((variable) => {
    filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]);
  });
  return `(${AllVariables.map((a) => a.split('__ZEUS_VAR__'))
    .map(([variableName, variableType]) => `${variableName}:${variableType}`)
    .join(', ')})${filteredQuery}`;
};

const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string) => (o: Record<any, any>) =>
  `${t.toLowerCase()}${inspectVariables(buildQuery(tName, o))}`;
  
const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => (
  o: Record<any, any>,
  variables?: Record<string, any>,
) => fn(queryConstruct(t, tName)(o), variables);

const seekForAliases = (o: any) => {
  if (typeof o === 'object' && o) {
    const keys = Object.keys(o);
    if (keys.length < 1) {
      return;
    }
    keys.forEach((k) => {
      const value = o[k];
      if (k.indexOf('__alias__') !== -1) {
        const [operation, alias] = k.split('__alias__');
        o[alias] = {
          [operation]: value
        };
        delete o[k];
      } else {
        if (Array.isArray(value)) {
          value.forEach(seekForAliases);
        } else {
          if (typeof value === 'object') {
            seekForAliases(value);
          }
        }
      }
    });
  }
};

export const $ = (t: TemplateStringsArray): any => `ZEUS_VAR$${t.join('')}`;


const handleFetchResponse = (
  response: Parameters<Extract<Parameters<ReturnType<typeof fetch>['then']>[0], Function>>[0]
): Promise<GraphQLResponse> => {
  if (!response.ok) {
    return new Promise((resolve, reject) => {
      response.text().then(text => {
        try { reject(JSON.parse(text)); }
        catch (err) { reject(text); }
      }).catch(reject);
    });
  }
  return response.json();
};

const apiFetch = (options: fetchOptions) => (query: string, variables: Record<string, any> = {}) => {
    let fetchFunction = fetch;
    let queryString = query;
    let fetchOptions = options[1] || {};
    if (fetchOptions.method && fetchOptions.method === 'GET') {
      queryString = encodeURIComponent(query);
      return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions)
        .then(handleFetchResponse)
        .then((response: GraphQLResponse) => {
          if (response.errors) {
            throw new GraphQLError(response);
          }
          seekForAliases(response.data);
          return response.data;
        });
    }
    return fetchFunction(`${options[0]}`, {
      body: JSON.stringify({ query: queryString, variables }),
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      ...fetchOptions
    })
      .then(handleFetchResponse)
      .then((response: GraphQLResponse) => {
        if (response.errors) {
          throw new GraphQLError(response);
        }
        seekForAliases(response.data);
        return response.data;
      });
  };
  


export const Thunder = (fn: FetchFunction) => ({
  query: ((o: any, variables) =>
    fullChainConstruct(fn)('query', 'Query')(o, variables).then(
      (response: any) => response
    )) as OperationToGraphQL<ValueTypes["Query"],Query>,
mutation: ((o: any, variables) =>
    fullChainConstruct(fn)('mutation', 'Mutation')(o, variables).then(
      (response: any) => response
    )) as OperationToGraphQL<ValueTypes["Mutation"],Mutation>
});

export const Chain = (...options: fetchOptions) => ({
  query: ((o: any, variables) =>
    fullChainConstruct(apiFetch(options))('query', 'Query')(o, variables).then(
      (response: any) => response
    )) as OperationToGraphQL<ValueTypes["Query"],Query>,
mutation: ((o: any, variables) =>
    fullChainConstruct(apiFetch(options))('mutation', 'Mutation')(o, variables).then(
      (response: any) => response
    )) as OperationToGraphQL<ValueTypes["Mutation"],Mutation>
});
export const Zeus = {
  query: (o:ValueTypes["Query"]) => queryConstruct('query', 'Query')(o),
mutation: (o:ValueTypes["Mutation"]) => queryConstruct('mutation', 'Mutation')(o)
};
export const Cast = {
  query: ((o: any) => (b: any) => o) as CastToGraphQL<
  ValueTypes["Query"],
  Query
>,
mutation: ((o: any) => (b: any) => o) as CastToGraphQL<
  ValueTypes["Mutation"],
  Mutation
>
};
export const Selectors = {
  query: ZeusSelect<ValueTypes["Query"]>(),
mutation: ZeusSelect<ValueTypes["Mutation"]>()
};
  

export const Gql = Chain('https://dev-api.work-in-flex.com/app')