L'entità rappresenta un contenitore di risorse prenotatili, come tale categorizza ognuna di esse sotto un unico gruppo logico. Ad esempio l'entità BTF del tipo facility, raggruppa due risorse, Linea1 e Linea2 che ereditano le caratteristiche (domande e metadati) dell'insieme BTF.
Sotto viene riportato il DTO che descrive un entità (da notare che viene esteso il DTO di autorizzazione).
public class BookableEntityDTO extends AuthorizationDTO { @Schema(description = "The unique identifier of the resource") private String id; @Schema(description = "The name of th facility") private String name; @Schema(description = "The description for minimal information about the facility") private String description; @Schema(description = "The godiva domain path that identify the entity") private String path; @Schema(description = "Is the type of the entity that can be booked [facility, guesthouse, etc....]") private String type; @Schema(description = "the question that are associated to the entity used in booking phase") List<BookingQuestionDTO> bookingQuestions; @Schema(description = "are the informational metadata about the entity") List<MetadataDTO> metadata; }
Le bookingQuestions sono un templare di domande che verranno usate al momento della richiesta di booking, la loro struttura dati e' disponibile qui.
I metadati sono invece oggetti chiave/valore che descrivono delle caratteristiche a scopo informativo dell'entità' come ad esempio location, address, building e Icon. Quest' ultima chiave verra usata per la gestione delle icone delle entità'.