/**
* Structures data as returned by the API and consumed by the structures page
*/
interface Address {
type: string,
// type: 'ADDRESS_PRACTICE' | 'ADDRESS_OTHER' | 'ADDRESS_HEAD_OFFICE' | 'ADDRESS_CONTACT' | 'ADDRESS_BILL',
latitude: number,
longitude: number,
streetAddress: string,
postalCode: string,
addressCity: string,
country: string
}
interface Article {
id: number,
date: string,
link: string,
title: string
}
interface Structure {
readonly id: number,
name: string,
logoId: string | null,
type: string | null,
website: string | null,
mapAddress: Address | null,
postalAddress: Address | null,
addresses: Array
,
phone: string | null,
mobilePhone: string | null,
email: string | null,
facebook: string | null,
twitter: string | null,
instagram: string | null,
youtube: string | null,
practices: Array,
parentId: number | null,
parentName: string | null,
parents: Array,
description: string | null,
imageId: string | null,
articles: Array
}
interface Coordinates {
latitude: number,
longitude: number
}
/**
* Items of the UiSearchAddress component
*/
interface UiSearchAddressItem {
text: string,
value: Coordinates,
disabled?: boolean
}
interface PublicEvent {
uuid: string,
organizationId: number | null,
name: string,
description: string | null,
url: string | null,
datetimeStart: Date,
datetimeEnd: Date,
address: Address | null,
roomName: string | null,
roomDescription: string | null,
roomCapacity: string | null,
roomFloorSize: string | null,
imageUrl: string | null,
thumbnailUrl: string | null,
categories: Array,
origin: string,
entityId: number
}
interface DateRange {
start: string,
end: string
}
interface DateRangePreset {
label: string,
range: DateRange
}
interface HydraCollection {
iri: string,
totalItems: number,
page: number | null,
previousPage: number | null,
nextPage: number | null,
firstPage: number | null,
lastPage: number | null
items: Array,
}