feat: add ES annotations

This commit is contained in:
Benjamin Jöckel
2019-05-10 11:47:06 +02:00
parent 55b5248660
commit 9c424b0f96
41 changed files with 263 additions and 2 deletions

View File

@@ -29,3 +29,21 @@ To generate a documentation for the routes use the following command.
```shell ```shell
node --require ts-node/register src/cli.ts routes PATH/TO/ROUTES.md node --require ts-node/register src/cli.ts routes PATH/TO/ROUTES.md
``` ```
### Annotations
Annotations are used to add additional informations to fields, which are used to autogenerate mappings from the core objects.
External dependencies can not be covered by the annotations. Documentation about some of the annotations can be found in: [typedoc](https://typedoc.org/guides/doccomments/)
| annotation | description | parameters |
|-------------------|-------------------------------------------|---------------|
| `@aggregatable` | used for generating of aggregations of the field if the core schema is used to put data into a database/key-value store | |
| `@float` | number field is interpreted as float | |
| `@indexable` | marks the type as indexable if the core schema is used to put data into a database/key-value store| |
| `@integer` | number field is interpreted as integer | |
| `@keyword` | string field is interpreted as keyword | |
| `@sortable` | field is sortable if the core schema is used to put data into a database/key-value store | sort method to be used: ducet, price, distance |
| `@text` | string field is interpreted as text | |
| `@validatable` | marks the type as validatable if the core schema is used to put data into a database/key-value store | |

View File

@@ -54,22 +54,29 @@ export enum SCThingType {
export interface SCThingWithoutReferences { export interface SCThingWithoutReferences {
/** /**
* Alternate names of the thing * Alternate names of the thing
*
* @keyword
*/ */
alternateNames?: string[]; alternateNames?: string[];
/** /**
* Description of the thing * Description of the thing
* *
* @minLength 1 * @minLength 1
* @text
*/ */
description?: string; description?: string;
/** /**
* URL of an image of the thing * URL of an image of the thing
*
* @keyword
*/ */
image?: string; image?: string;
/** /**
* Name of the thing * Name of the thing
* *
* @minLength 1 * @minLength 1
* @sortable ducet
* @text
*/ */
name: string; name: string;
/** /**
@@ -80,6 +87,9 @@ export interface SCThingWithoutReferences {
translations?: SCTranslations<SCThingTranslatableProperties>; translations?: SCTranslations<SCThingTranslatableProperties>;
/** /**
* Type of the thing * Type of the thing
*
* @sortable ducet
* @aggregatable
*/ */
type: SCThingType; type: SCThingType;
/** /**
@@ -143,6 +153,8 @@ export interface SCThingRemoteOrigin extends SCThingOrigin {
/** /**
* Name of the origin * Name of the origin
*
* @text
*/ */
name: string; name: string;
@@ -200,10 +212,14 @@ export interface SCThingUserOrigin extends SCThingOrigin {
export interface SCThingTranslatableProperties { export interface SCThingTranslatableProperties {
/** /**
* Translation of the description of the thing * Translation of the description of the thing
*
* @text
*/ */
description?: string; description?: string;
/** /**
* Translation of the name of the thing * Translation of the name of the thing
*
* @text
*/ */
name?: string; name?: string;
/** /**
@@ -218,6 +234,8 @@ export interface SCThingTranslatableProperties {
export interface SCThingTranslatablePropertyOrigin { export interface SCThingTranslatablePropertyOrigin {
/** /**
* Translation of the name of the origin * Translation of the name of the origin
*
* @text
*/ */
name: string; name: string;
} }

View File

@@ -43,6 +43,7 @@ export class SCThingTranslator {
private metaClasses: typeof SCClasses; private metaClasses: typeof SCClasses;
/** /**
*
* @constructor * @constructor
* @example * @example
* // returns translator instance for german * // returns translator instance for german

View File

@@ -28,12 +28,16 @@ export interface SCAcademicDegreeWithoutReferences
/** /**
* The achievable academic degree with academic field specification * The achievable academic degree with academic field specification
* (eg. Master of Science) * (eg. Master of Science)
*
* @keyword
*/ */
academicDegreewithField: string; academicDegreewithField: string;
/** /**
* The achievable academic degree with academic field specification * The achievable academic degree with academic field specification
* shorted (eg. M.Sc.). * shorted (eg. M.Sc.).
*
* @keyword
*/ */
academicDegreewithFieldShort: string; academicDegreewithFieldShort: string;
} }

View File

@@ -23,6 +23,9 @@ export interface SCAcademicTermWithoutReferences
extends SCThingWithoutReferences { extends SCThingWithoutReferences {
/** /**
* Short name of the academic term, using the given pattern * Short name of the academic term, using the given pattern
*
* @aggregatable
* @keyword
*/ */
acronym: string; acronym: string;

View File

@@ -42,6 +42,9 @@ export interface SCCreativeWorkWithoutReferences
/** /**
* Keywords of the creative work * Keywords of the creative work
*
* @aggregatable
* @keyword
*/ */
keywords?: string[]; keywords?: string[];
@@ -79,6 +82,8 @@ export interface SCCreativeWorkTranslatableProperties
extends SCThingTranslatableProperties, SCThingThatCanBeOfferedTranslatableProperties { extends SCThingTranslatableProperties, SCThingThatCanBeOfferedTranslatableProperties {
/** /**
* Translation of the keywords of the creative work * Translation of the keywords of the creative work
*
* @keyword
*/ */
keywords?: string[]; keywords?: string[];
} }

View File

@@ -28,6 +28,8 @@ export interface SCEventWithoutReferences
* Maximum number of participants of the event * Maximum number of participants of the event
* *
* A maximum number of people that can participate in the event. * A maximum number of people that can participate in the event.
*
* @integer
*/ */
maximumParticipants?: number; maximumParticipants?: number;
@@ -35,6 +37,8 @@ export interface SCEventWithoutReferences
* Remaining attendee capacity of the event * Remaining attendee capacity of the event
* *
* This number represents the remaining open spots. * This number represents the remaining open spots.
*
* @integer
*/ */
remainingAttendeeCapacity?: number; remainingAttendeeCapacity?: number;
} }

View File

@@ -37,7 +37,9 @@ export interface SCPlaceWithoutReferences
/** /**
* Opening hours of the place * Opening hours of the place
*
* @see http://wiki.openstreetmap.org/wiki/Key:opening_hours/specification * @see http://wiki.openstreetmap.org/wiki/Key:opening_hours/specification
* @keyword
*/ */
openingHours?: string; openingHours?: string;

View File

@@ -25,6 +25,9 @@ import {SCISO8601Date} from '../types/Time';
export interface SCPriceGroup { export interface SCPriceGroup {
/** /**
* Default price of the thing * Default price of the thing
*
* @sortable price
* @float
*/ */
default: number; default: number;
} }
@@ -36,16 +39,25 @@ export interface SCAcademicPriceGroup
extends SCPriceGroup { extends SCPriceGroup {
/** /**
* Price for employees * Price for employees
*
* @sortable price
* @float
*/ */
employee?: number; employee?: number;
/** /**
* Price for guests * Price for guests
*
* @sortable price
* @float
*/ */
guest?: number; guest?: number;
/** /**
* Price for students * Price for students
*
* @sortable price
* @float
*/ */
student?: number; student?: number;
} }
@@ -115,6 +127,8 @@ export interface SCThingThatCanBeOfferedTranslatableProperties
extends SCThingTranslatableProperties { extends SCThingTranslatableProperties {
/** /**
* Availability of an offer * Availability of an offer
*
* @keyword
*/ */
'offers[].availability'?: string; 'offers[].availability'?: string;
} }

View File

@@ -20,12 +20,15 @@ import {SCMap} from '../types/Map';
* A thing without references with categories * A thing without references with categories
* *
* !!! BEWARE !!! * !!! BEWARE !!!
* `T` should be a union type - e.g. `T = 'foo' | 'bar' | 'foobar';` * `T` should be a string literal union type - e.g. `T = 'foo' | 'bar' | 'foobar';`
*/ */
export interface SCThingWithCategoriesWithoutReferences<T, U extends SCThingWithCategoriesSpecificValues> export interface SCThingWithCategoriesWithoutReferences<T, U extends SCThingWithCategoriesSpecificValues>
extends SCThingWithoutReferences { extends SCThingWithoutReferences {
/** /**
* Categories of a thing with categories * Categories of a thing with categories
*
* @sortable ducet
* @aggregatable
*/ */
categories: T[]; categories: T[];
@@ -72,26 +75,36 @@ export interface SCThingWithCategoriesTranslatableProperties
export interface SCThingWithCategoriesSpecificValues { export interface SCThingWithCategoriesSpecificValues {
/** /**
* Category specific alternate names of a thing * Category specific alternate names of a thing
*
* @keyword
*/ */
alternateNames?: string[]; alternateNames?: string[];
/** /**
* Category specific description of a thing * Category specific description of a thing
*
* @text
*/ */
description?: string; description?: string;
/** /**
* URL of a category specific image of a thing * URL of a category specific image of a thing
*
* @keyword
*/ */
image?: string; image?: string;
/** /**
* Category specific name of a thing * Category specific name of a thing
*
* @text
*/ */
name?: string; name?: string;
/** /**
* Category specific URL of a thing * Category specific URL of a thing
*
* @keyword
*/ */
url?: string; url?: string;
} }

View File

@@ -112,6 +112,7 @@ export class SCMethodNotAllowedErrorResponse extends SCError {
export class SCRequestBodyTooLargeErrorResponse extends SCError { export class SCRequestBodyTooLargeErrorResponse extends SCError {
/** /**
* Create a SCRequestBodyTooLargeErrorResponse * Create a SCRequestBodyTooLargeErrorResponse
*
* @param stack Set to true if a stack trace should be created * @param stack Set to true if a stack trace should be created
*/ */
constructor(stack?: boolean) { constructor(stack?: boolean) {

View File

@@ -26,6 +26,7 @@ import {
/** /**
* Request to check the availability of books * Request to check the availability of books
*
* @validatable * @validatable
*/ */
export type SCBookAvailabilityRequest = SCBookAvailabilityRequestByIsbn | SCBookAvailabilityRequestByUuid; export type SCBookAvailabilityRequest = SCBookAvailabilityRequestByIsbn | SCBookAvailabilityRequestByUuid;

View File

@@ -16,6 +16,7 @@ import {SCAcademicPriceGroup, SCThingThatCanBeOfferedOffer} from '../../../base/
/** /**
* List of availabilities of a book * List of availabilities of a book
*
* @validatable * @validatable
*/ */
export type SCBookAvailabilityResponse = Array<SCThingThatCanBeOfferedOffer<SCAcademicPriceGroup>>; export type SCBookAvailabilityResponse = Array<SCThingThatCanBeOfferedOffer<SCAcademicPriceGroup>>;

View File

@@ -26,6 +26,7 @@ import {
/** /**
* Request to add a thing to a bulk * Request to add a thing to a bulk
*
* @validatable * @validatable
*/ */
export type SCBulkAddRequest = SCThings; export type SCBulkAddRequest = SCThings;

View File

@@ -14,6 +14,7 @@
*/ */
/** /**
* Response to a request to add a thing to a bulk * Response to a request to add a thing to a bulk
*
* @validatable * @validatable
*/ */
export interface SCBulkAddResponse { export interface SCBulkAddResponse {

View File

@@ -25,6 +25,7 @@ import {
/** /**
* Request to change the bulk state to done (close the bulk process) * Request to change the bulk state to done (close the bulk process)
*
* @validatable * @validatable
*/ */
export interface SCBulkDoneRequest { export interface SCBulkDoneRequest {

View File

@@ -14,6 +14,7 @@
*/ */
/** /**
* Response to a request to change the state of a bulk to done * Response to a request to change the state of a bulk to done
*
* @validatable * @validatable
*/ */
export interface SCBulkDoneResponse { export interface SCBulkDoneResponse {

View File

@@ -31,11 +31,16 @@ export interface SCAcademicEventWithoutReferences
SCThingWithCategoriesWithoutReferences<SCAcademicEventCategories, SCThingWithCategoriesSpecificValues> { SCThingWithCategoriesWithoutReferences<SCAcademicEventCategories, SCThingWithCategoriesSpecificValues> {
/** /**
* Majors of the academic event that this event belongs to * Majors of the academic event that this event belongs to
*
* @aggregatable
* @keyword
*/ */
majors?: string[]; majors?: string[];
/** /**
* Original unmapped category from the source of the academic event * Original unmapped category from the source of the academic event
*
* @keyword
*/ */
originalCategory?: string; originalCategory?: string;
@@ -54,6 +59,7 @@ export interface SCAcademicEventWithoutReferences
* An academic event * An academic event
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCAcademicEvent export interface SCAcademicEvent
extends SCEvent, SCAcademicEventWithoutReferences, extends SCEvent, SCAcademicEventWithoutReferences,
@@ -95,11 +101,15 @@ export interface SCAcademicEventTranslatableProperties
extends SCThingWithCategoriesTranslatableProperties { extends SCThingWithCategoriesTranslatableProperties {
/** /**
* Translations of the majors of the academic event that this event belongs to * Translations of the majors of the academic event that this event belongs to
*
* @keyword
*/ */
majors?: string[]; majors?: string[];
/** /**
* Translation of the original unmapped category from the source of the academic event * Translation of the original unmapped category from the source of the academic event
*
* @keyword
*/ */
originalCategory?: string; originalCategory?: string;
} }

View File

@@ -36,6 +36,8 @@ export interface SCArticleWithoutReferences
SCThingWithCategoriesWithoutReferences<SCArticleCategories, SCThingWithCategoriesSpecificValues> { SCThingWithCategoriesWithoutReferences<SCArticleCategories, SCThingWithCategoriesSpecificValues> {
/** /**
* Article itself as markdown * Article itself as markdown
*
* @text
*/ */
articleBody: string; articleBody: string;
@@ -54,6 +56,7 @@ export interface SCArticleWithoutReferences
* An article * An article
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCArticle export interface SCArticle
extends SCCreativeWork, SCArticleWithoutReferences, extends SCCreativeWork, SCArticleWithoutReferences,
@@ -81,6 +84,8 @@ export interface SCArticleTranslatableProperties
extends SCThingWithCategoriesTranslatableProperties, SCCreativeWorkTranslatableProperties { extends SCThingWithCategoriesTranslatableProperties, SCCreativeWorkTranslatableProperties {
/** /**
* Translation of the article itself as markdown * Translation of the article itself as markdown
*
* @text
*/ */
articleBody?: string[]; articleBody?: string[];
} }

View File

@@ -30,16 +30,22 @@ export interface SCBookWithoutReferences
extends SCCreativeWorkWithoutReferences { extends SCCreativeWorkWithoutReferences {
/** /**
* Edition of a book * Edition of a book
*
* @keyword
*/ */
bookEdition?: string; bookEdition?: string;
/** /**
* ISBN of a book * ISBN of a book
*
* @keyword
*/ */
isbn: string; isbn: string;
/** /**
* Number of pages of a book * Number of pages of a book
*
* @integer
*/ */
numberOfPages?: number; numberOfPages?: number;
@@ -58,6 +64,7 @@ export interface SCBookWithoutReferences
* A book * A book
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCBook export interface SCBook
extends SCCreativeWork, SCBookWithoutReferences { extends SCCreativeWork, SCBookWithoutReferences {
@@ -84,6 +91,8 @@ export interface SCBookTranslatableFields
extends SCThingWithCategoriesTranslatableProperties, SCCreativeWorkTranslatableProperties { extends SCThingWithCategoriesTranslatableProperties, SCCreativeWorkTranslatableProperties {
/** /**
* Translation of an edition of a book * Translation of an edition of a book
*
* @keyword
*/ */
bookEdition?: string; bookEdition?: string;
} }

View File

@@ -43,11 +43,16 @@ export interface SCBuildingWithoutReferences
SCPlaceWithoutReferences { SCPlaceWithoutReferences {
/** /**
* Categories of a building * Categories of a building
*
* @sortable ducet
* @aggregatable
*/ */
categories: SCBuildingCategories[]; categories: SCBuildingCategories[];
/** /**
* List of floor names of the place * List of floor names of the place
*
* @keyword
*/ */
floors?: string[]; floors?: string[];
@@ -66,6 +71,7 @@ export interface SCBuildingWithoutReferences
* A building * A building
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCBuilding export interface SCBuilding
extends SCBuildingWithoutReferences, SCPlace, extends SCBuildingWithoutReferences, SCPlace,

View File

@@ -32,6 +32,8 @@ export interface SCCatalogWithoutReferences
* Level of the catalog (0 for 'root catalog', 1 for its subcatalog, 2 for its subcatalog etc.) * Level of the catalog (0 for 'root catalog', 1 for its subcatalog, 2 for its subcatalog etc.)
* *
* Needed for keeping order in catalog inheritance array. * Needed for keeping order in catalog inheritance array.
*
* @integer
*/ */
level: number; level: number;
@@ -45,6 +47,7 @@ export interface SCCatalogWithoutReferences
* A catalog * A catalog
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCCatalog export interface SCCatalog
extends SCCatalogWithoutReferences, SCThing, extends SCCatalogWithoutReferences, SCThing,

View File

@@ -38,6 +38,8 @@ export interface SCCourseOfStudiesWithoutReferences
/** /**
* Actual major of the course of studies (eg. physics) * Actual major of the course of studies (eg. physics)
*
* @keyword
*/ */
major: string; major: string;
@@ -66,6 +68,7 @@ export interface SCCourseOfStudiesWithoutReferences
* A course of studies * A course of studies
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCCourseOfStudies export interface SCCourseOfStudies
extends SCCourseOfStudiesWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup>, SCAcademicDegree { extends SCCourseOfStudiesWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup>, SCAcademicDegree {

View File

@@ -34,6 +34,8 @@ export interface SCSportCoursePriceGroup
extends SCAcademicPriceGroup { extends SCAcademicPriceGroup {
/** /**
* Price for alumnis * Price for alumnis
*
* @float
*/ */
alumni?: number; alumni?: number;
} }
@@ -60,6 +62,8 @@ export interface SCDateSeriesWithoutReferences
/** /**
* Frequency of the date series * Frequency of the date series
*
* @keyword
*/ */
frequency: string; frequency: string;
@@ -78,6 +82,7 @@ export interface SCDateSeriesWithoutReferences
* A date series * A date series
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCDateSeries export interface SCDateSeries
extends SCDateSeriesWithoutReferences, extends SCDateSeriesWithoutReferences,

View File

@@ -48,6 +48,7 @@ export interface SCDiffWithoutReferences
* A diff * A diff
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCDiff export interface SCDiff
extends SCDiffWithoutReferences, SCThing { extends SCDiffWithoutReferences, SCThing {

View File

@@ -37,11 +37,16 @@ export interface SCDishWithoutReferences
SCThingWithCategoriesWithoutReferences<SCDishCategories, SCThingWithCategoriesSpecificValues> { SCThingWithCategoriesWithoutReferences<SCDishCategories, SCThingWithCategoriesSpecificValues> {
/** /**
* Additives of the dish * Additives of the dish
*
* @keyword
*/ */
additives?: string[]; additives?: string[];
/** /**
* Category of the dish * Category of the dish
*
* @sortable ducet
* @aggregatable
*/ */
categories: SCDishCategories[]; categories: SCDishCategories[];
@@ -70,6 +75,7 @@ export interface SCDishWithoutReferences
* A dish * A dish
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCDish export interface SCDish
extends SCDishWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup>, extends SCDishWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup>,
@@ -104,11 +110,15 @@ export interface SCDishTranslatableProperties
export interface SCDishCharacteristic { export interface SCDishCharacteristic {
/** /**
* URL of an image of the characteristic * URL of an image of the characteristic
*
* @keyword
*/ */
image?: string; image?: string;
/** /**
* Name of the characteristic * Name of the characteristic
*
* @text
*/ */
name: string; name: string;
} }
@@ -132,36 +142,50 @@ export type SCDishCategories =
export interface SCNutritionInformation { export interface SCNutritionInformation {
/** /**
* Number of calories contained (in kcal) * Number of calories contained (in kcal)
*
* @float
*/ */
calories?: number; calories?: number;
/** /**
* Content of carbohydrates (in grams) * Content of carbohydrates (in grams)
*
* @float
*/ */
carbohydrateContent?: number; carbohydrateContent?: number;
/** /**
* Content of fat (in grams) * Content of fat (in grams)
*
* @float
*/ */
fatContent?: number; fatContent?: number;
/** /**
* Content of proteins (in grams) * Content of proteins (in grams)
*
* @float
*/ */
proteinContent?: number; proteinContent?: number;
/** /**
* Content of salt (in grams) * Content of salt (in grams)
*
* @float
*/ */
saltContent?: number; saltContent?: number;
/** /**
* Content of saturated fat (in grams) * Content of saturated fat (in grams)
*
* @float
*/ */
saturatedFatContent?: number; saturatedFatContent?: number;
/** /**
* Content of sugar (in grams) * Content of sugar (in grams)
*
* @float
*/ */
sugarContent?: number; sugarContent?: number;
} }

View File

@@ -49,6 +49,7 @@ export interface SCFavoriteWithoutReferences
* A favorite * A favorite
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCFavorite export interface SCFavorite
extends SCSaveableThing<SCFavoriteDataTypes>, SCFavoriteWithoutReferences { extends SCSaveableThing<SCFavoriteDataTypes>, SCFavoriteWithoutReferences {

View File

@@ -26,6 +26,8 @@ export interface SCFloorWithoutReferences
extends SCThingWithoutReferences { extends SCThingWithoutReferences {
/** /**
* Floor name in the place it is in e.g. "first floor", "ground floor". This doesn't reference the building name. * Floor name in the place it is in e.g. "first floor", "ground floor". This doesn't reference the building name.
*
* @text
*/ */
floorName: string; floorName: string;
@@ -49,6 +51,7 @@ export interface SCFloorWithoutReferences
* A floor * A floor
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCFloor export interface SCFloor
extends SCFloorWithoutReferences, SCThingInPlace { extends SCFloorWithoutReferences, SCThingInPlace {
@@ -92,6 +95,8 @@ export interface SCFloorTranslatableProperties
extends SCThingTranslatableProperties { extends SCThingTranslatableProperties {
/** /**
* Translation of the floor name * Translation of the floor name
*
* @text
*/ */
floorName?: string; floorName?: string;
} }

View File

@@ -40,6 +40,8 @@ export interface SCMessageWithoutReferences
/** /**
* Message itself * Message itself
*
* @text
*/ */
messageBody: string; messageBody: string;
@@ -58,6 +60,7 @@ export interface SCMessageWithoutReferences
* A message * A message
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCMessage export interface SCMessage
extends SCCreativeWork, SCMessageWithoutReferences { extends SCCreativeWork, SCMessageWithoutReferences {
@@ -87,6 +90,8 @@ export interface SCMessageTranslatableProperties
extends SCCreativeWorkTranslatableProperties, SCThingThatCanBeOfferedTranslatableProperties { extends SCCreativeWorkTranslatableProperties, SCThingThatCanBeOfferedTranslatableProperties {
/** /**
* Message itself * Message itself
*
* @text
*/ */
messageBody?: string; messageBody?: string;
} }

View File

@@ -31,6 +31,7 @@ export interface SCOrganizationWithoutReferences
* An organization * An organization
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCOrganization export interface SCOrganization
extends SCOrganizationWithoutReferences, SCThingInPlace { extends SCOrganizationWithoutReferences, SCThingInPlace {

View File

@@ -27,6 +27,8 @@ export interface SCPersonWithoutReferences
extends SCThingWithoutReferences { extends SCThingWithoutReferences {
/** /**
* Additional first names of the person. * Additional first names of the person.
*
* @keyword
*/ */
additionalName?: string; additionalName?: string;
@@ -39,16 +41,22 @@ export interface SCPersonWithoutReferences
* The private email address of the person. * The private email address of the person.
* *
* @TJS-format email * @TJS-format email
*
* @keyword
*/ */
email?: string; email?: string;
/** /**
* The family name of the person. * The family name of the person.
*
* @keyword
*/ */
familyName: string; familyName: string;
/** /**
* The private fax number of the person. * The private fax number of the person.
*
* @keyword
*/ */
faxNumber?: string; faxNumber?: string;
@@ -59,26 +67,36 @@ export interface SCPersonWithoutReferences
/** /**
* The first name of the person. * The first name of the person.
*
* @keyword
*/ */
givenName: string; givenName: string;
/** /**
* Honorific prefix of the person. * Honorific prefix of the person.
*
* @keyword
*/ */
honorificPrefix?: string; honorificPrefix?: string;
/** /**
* Honorific suffix of the person. * Honorific suffix of the person.
*
* @keyword
*/ */
honorificSuffix?: string; honorificSuffix?: string;
/** /**
* Titles of jobs that the person has. * Titles of jobs that the person has.
*
* @keyword
*/ */
jobTitles?: string[]; jobTitles?: string[];
/** /**
* The complete name of the person combining all the parts of the name into one. * The complete name of the person combining all the parts of the name into one.
*
* @text
*/ */
name: string; name: string;
@@ -89,6 +107,8 @@ export interface SCPersonWithoutReferences
/** /**
* The private telephone number of the person. * The private telephone number of the person.
*
* @keyword
*/ */
telephone?: string; telephone?: string;
@@ -102,6 +122,7 @@ export interface SCPersonWithoutReferences
* A person * A person
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCPerson export interface SCPerson
extends SCPersonWithoutReferences, SCThing { extends SCPersonWithoutReferences, SCThing {
@@ -210,26 +231,36 @@ export interface SCContactPoint {
/** /**
* E-mail at the work location * E-mail at the work location
*
* @keyword
*/ */
email?: string; email?: string;
/** /**
* Fax number at the work location * Fax number at the work location
*
* @keyword
*/ */
faxNumber?: string; faxNumber?: string;
/** /**
* Times available for contacting at the work location * Times available for contacting at the work location
*
* @keyword
*/ */
hoursAvailable?: string; hoursAvailable?: string;
/** /**
* Contact number at the work location * Contact number at the work location
*
* @keyword
*/ */
telephone?: string; telephone?: string;
/** /**
* URL at the work location * URL at the work location
*
* @keyword
*/ */
url?: string; url?: string;
} }

View File

@@ -45,6 +45,7 @@ export interface SCPointOfInterestWithoutReferences
* A point of interest * A point of interest
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCPointOfInterest export interface SCPointOfInterest
extends SCPointOfInterestWithoutReferences, SCThingInPlace, SCPlace, extends SCPointOfInterestWithoutReferences, SCThingInPlace, SCPlace,

View File

@@ -57,6 +57,8 @@ export interface SCRoomWithoutReferences
SCThingWithCategoriesWithoutReferences<SCRoomCategories, SCRoomSpecificValues> { SCThingWithCategoriesWithoutReferences<SCRoomCategories, SCRoomSpecificValues> {
/** /**
* The name of the floor in which the room is in. * The name of the floor in which the room is in.
*
* @text
*/ */
floorName?: string; floorName?: string;
@@ -82,6 +84,7 @@ export interface SCRoomWithoutReferences
* A room * A room
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCRoom export interface SCRoom
extends SCRoomWithoutReferences, SCThingInPlace, SCThingThatAcceptsPayments, SCPlace, extends SCRoomWithoutReferences, SCThingInPlace, SCThingThatAcceptsPayments, SCPlace,
@@ -106,6 +109,8 @@ export interface SCRoomSpecificValues
extends SCThingWithCategoriesSpecificValues { extends SCThingWithCategoriesSpecificValues {
/** /**
* Category specific opening hours of the room * Category specific opening hours of the room
*
* @keyword
*/ */
openingHours?: string; openingHours?: string;
} }

View File

@@ -29,6 +29,7 @@ export interface SCSemesterWithoutReferences
* The short name of the semester, using the given pattern. * The short name of the semester, using the given pattern.
* *
* @pattern ^(WS|SS) [0-9]{4}(/[0-9]{2})?$ * @pattern ^(WS|SS) [0-9]{4}(/[0-9]{2})?$
* @keyword
*/ */
acronym: string; acronym: string;
@@ -42,6 +43,7 @@ export interface SCSemesterWithoutReferences
* A semester * A semester
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCSemester export interface SCSemester
extends SCSemesterWithoutReferences, SCAcademicTerm { extends SCSemesterWithoutReferences, SCAcademicTerm {

View File

@@ -41,6 +41,8 @@ export interface SCSettingWithoutReferences
inputType: SCSettingInputType; inputType: SCSettingInputType;
/** /**
* The order number this setting should show up in its category list * The order number this setting should show up in its category list
*
* @integer
*/ */
order: number; order: number;
/** /**
@@ -85,6 +87,7 @@ export enum SCSettingInputType {
* A setting with references * A setting with references
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCSetting export interface SCSetting
extends SCSettingWithoutReferences, SCThing, extends SCSettingWithoutReferences, SCThing,
@@ -115,6 +118,8 @@ export type SCSettingValues = SCSettingValue[];
export interface SCSettingValueTranslatableProperties extends SCThingWithCategoriesTranslatableProperties { export interface SCSettingValueTranslatableProperties extends SCThingWithCategoriesTranslatableProperties {
/** /**
* The translations of the possible values of a setting * The translations of the possible values of a setting
*
* @keyword
*/ */
values?: string[]; values?: string[];
} }

View File

@@ -31,6 +31,7 @@ export interface SCSportCourseWithoutReferences
* A sport course * A sport course
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCSportCourse export interface SCSportCourse
extends SCEvent, SCSportCourseWithoutReferences { extends SCEvent, SCSportCourseWithoutReferences {

View File

@@ -34,6 +34,8 @@ export interface SCStudyModuleWithoutReferences
/** /**
* ECTS points (European Credit Transfer System) * ECTS points (European Credit Transfer System)
*
* @float
*/ */
ects: number; ects: number;
@@ -44,6 +46,8 @@ export interface SCStudyModuleWithoutReferences
/** /**
* Majors that this study module is meant for * Majors that this study module is meant for
*
* @keyword
*/ */
majors: string[]; majors: string[];
@@ -67,6 +71,7 @@ export interface SCStudyModuleWithoutReferences
* A study module * A study module
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCStudyModule export interface SCStudyModule
extends SCStudyModuleWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup> { extends SCStudyModuleWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup> {
@@ -111,6 +116,8 @@ export interface SCStudyModuleTranslatableProperties
extends SCThingThatCanBeOfferedTranslatableProperties { extends SCThingThatCanBeOfferedTranslatableProperties {
/** /**
* Translations of the majors that this study module is meant for * Translations of the majors that this study module is meant for
*
* @keyword
*/ */
majors?: string[]; majors?: string[];

View File

@@ -29,6 +29,8 @@ export interface SCTicketWithoutReferences
/** /**
* Waiting number of the ticket * Waiting number of the ticket
*
* @keyword
*/ */
currentTicketNumber: string; currentTicketNumber: string;
@@ -47,6 +49,7 @@ export interface SCTicketWithoutReferences
* A ticket * A ticket
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCTicket export interface SCTicket
extends SCTicketWithoutReferences, SCThingInPlace { extends SCTicketWithoutReferences, SCThingInPlace {

View File

@@ -53,6 +53,7 @@ export interface SCToDoWithoutReferences
* A "to do" * A "to do"
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCToDo export interface SCToDo
extends SCToDoWithoutReferences, SCThing, SCThingWithCategories<string, SCThingWithCategoriesSpecificValues> { extends SCToDoWithoutReferences, SCThing, SCThingWithCategories<string, SCThingWithCategoriesSpecificValues> {

View File

@@ -22,16 +22,22 @@ export interface SCTourWithoutReferences
extends SCThingWithoutReferences { extends SCThingWithoutReferences {
/** /**
* Init script for the tour * Init script for the tour
*
* @text
*/ */
init?: string; init?: string;
/** /**
* Steps of a tour * Steps of a tour
*
* @keyword
*/ */
steps: SCTourStep[]; steps: SCTourStep[];
/** /**
* Type of a tour * Type of a tour
*
* @keyword
*/ */
type: SCThingType.Tour; type: SCThingType.Tour;
} }
@@ -40,6 +46,7 @@ export interface SCTourWithoutReferences
* A tour * A tour
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCTour export interface SCTour
extends SCTourWithoutReferences, SCThing { extends SCTourWithoutReferences, SCThing {
@@ -100,6 +107,8 @@ export type SCTourStep =
export interface SCTourStepLocation { export interface SCTourStepLocation {
/** /**
* Location to go to * Location to go to
*
* @keyword
*/ */
location: string; location: string;
@@ -120,6 +129,8 @@ export interface SCTourStepTooltip {
/** /**
* Element that the tooltip shall be pointing at or a list of elements to try in the specified order * Element that the tooltip shall be pointing at or a list of elements to try in the specified order
*
* @keyword
*/ */
element: string | string[]; element: string | string[];
@@ -135,11 +146,15 @@ export interface SCTourStepTooltip {
/** /**
* Text that the tooltip shall contain * Text that the tooltip shall contain
*
* @text
*/ */
text: string; text: string;
/** /**
* How often it shall be retried * How often it shall be retried
*
* @integer
*/ */
tries?: number; tries?: number;
@@ -175,6 +190,8 @@ export interface SCTourStepMenu {
export interface SCTourResolvedElement { export interface SCTourResolvedElement {
/** /**
* Element name * Element name
*
* @keyword
*/ */
element: string; element: string;
} }
@@ -185,6 +202,8 @@ export interface SCTourResolvedElement {
export interface SCTourResolvedEvent { export interface SCTourResolvedEvent {
/** /**
* Event name * Event name
*
* @keyword
*/ */
event: string; event: string;
} }
@@ -205,6 +224,8 @@ export interface SCTourResolvedLocation {
export interface SCTourResolvedLocationTypeIs { export interface SCTourResolvedLocationTypeIs {
/** /**
* Specific location name * Specific location name
*
* @keyword
*/ */
is: string; is: string;
} }
@@ -215,6 +236,8 @@ export interface SCTourResolvedLocationTypeIs {
export interface SCTourResolvedLocationTypeMatch { export interface SCTourResolvedLocationTypeMatch {
/** /**
* Regex location name * Regex location name
*
* @keyword
*/ */
match: string; match: string;
} }

View File

@@ -35,6 +35,8 @@ export interface SCVideoWithoutReferences
/** /**
* URLs to a thumbnails for the Video * URLs to a thumbnails for the Video
*
* @keyword
*/ */
thumbnails?: string[]; thumbnails?: string[];
@@ -45,6 +47,8 @@ export interface SCVideoWithoutReferences
/** /**
* A Transcript of the Video * A Transcript of the Video
*
* @text
*/ */
transcript?: string; transcript?: string;
@@ -57,6 +61,8 @@ export interface SCVideoWithoutReferences
export interface SCVideoSource { export interface SCVideoSource {
/** /**
* Pixel Height of the Video * Pixel Height of the Video
*
* @integer
*/ */
height?: number; height?: number;
@@ -67,16 +73,22 @@ export interface SCVideoSource {
/** /**
* Size of the Video File in bytes * Size of the Video File in bytes
*
* @integer
*/ */
size?: number; size?: number;
/** /**
* URL to the Video File * URL to the Video File
*
* @keyword
*/ */
url: string; url: string;
/** /**
* Pixel Width of the Video * Pixel Width of the Video
*
* @integer
*/ */
width?: number; width?: number;
} }
@@ -94,6 +106,8 @@ export interface SCVideoTrack {
/** /**
* URL to the Track File * URL to the Track File
*
* @keyword
*/ */
url: string; url: string;
} }
@@ -102,6 +116,7 @@ export interface SCVideoTrack {
* A video * A video
* *
* @validatable * @validatable
* @indexable
*/ */
export interface SCVideo export interface SCVideo
extends SCCreativeWork, SCVideoWithoutReferences { extends SCCreativeWork, SCVideoWithoutReferences {