Defines a structure
concept model. A structure is a record-like type containing any number of properties. For more information, see Modeling Concepts.
This key and its child keys must be defined in a *.model.bxb
file. The file must be in the models/concepts
folder.
structure (Movie) {
description ("A movie")
property (title) {
type (MovieTitle)
min (Required)
max (One)
visibility (Private)
}
property (releaseDate) {
type (time.Date)
min (Required)
max (One)
visibility (Private)
}
property (genre) {
type (MovieGenre)
min (Optional)
max (Many)
visibility (Private)
}
property (posterUrl) {
type (core.Text)
visibility (Private)
}
property (backdropUrl) {
type (core.Text)
visibility (Private)
}
property (movieDetails) {
type (MovieDetails)
visibility (Private)
lazy-source (FetchMovieDetails)
}
}
compile-time-resolved-by optional | Declare an action that can be called to resolve partial instances returned by another action |
description optional | Adds text describing the structure, which is useful for documenting models |
equivalence optional | A structure equivalence policy joins equivalence constraints together to specify how the system should compare two instances of the same concept |
extends optional | You can extend a parent concept with a new child concept, which inherits all of the parent properties |
features optional | Marks a concept with special concept features for user preferences, privacy, or security |
named-consumer optional | Named consumers allow explicitly linking a concept to an action |
natural-order optional | Specifies how to sort instances of the concept |
property optional | Properties define a has-a relationship between concepts |
role-of optional | There are cases where you want to assign a specific role to a feature, but not extend the feature |
sort-orderings optional | Collection of named orderings defined for the structure concept |