@universis/accommodation 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/.gitlab-ci.yml +23 -0
  2. package/LICENSE +163 -0
  3. package/README.md +3 -0
  4. package/dist/AccommodationSchemaLoader.js +35 -0
  5. package/dist/AccommodationSchemaLoader.js.map +1 -0
  6. package/dist/AccommodationService.js +68 -0
  7. package/dist/AccommodationService.js.map +1 -0
  8. package/dist/DepartmentReplacer.js +54 -0
  9. package/dist/DepartmentReplacer.js.map +1 -0
  10. package/dist/StudentReplacer.js +75 -0
  11. package/dist/StudentReplacer.js.map +1 -0
  12. package/dist/config/models/Accommodation.json +96 -0
  13. package/dist/config/models/AccommodationCardEffectiveStatusType.json +107 -0
  14. package/dist/config/models/AccommodationCardEffectiveStatusTypeLocale.json +85 -0
  15. package/dist/config/models/AccommodationChildFinancialAttribute.json +46 -0
  16. package/dist/config/models/AccommodationGuardianFinancialAttribute.json +46 -0
  17. package/dist/config/models/AccommodationInscriptionModeTag.json +100 -0
  18. package/dist/config/models/AccommodationRequestAction.json +500 -0
  19. package/dist/config/models/AccommodationRequestActionMessage.json +46 -0
  20. package/dist/config/models/AccommodationRequestActionReview.json +31 -0
  21. package/dist/config/models/AccommodationRequestAttachmentConfiguration.json +72 -0
  22. package/dist/config/models/AccommodationRequestCategory.json +50 -0
  23. package/dist/config/models/AccommodationRequestEffectiveStatusType.json +212 -0
  24. package/dist/config/models/AccommodationRequestEffectiveStatusTypeLocale.json +85 -0
  25. package/dist/config/models/AccommodationRequestEvent.json +117 -0
  26. package/dist/config/models/AccommodationRequestFinancialAttribute.json +53 -0
  27. package/dist/config/models/AccommodationRoom.json +151 -0
  28. package/dist/config/models/AccommodationSiblingFinancialAttribute.json +57 -0
  29. package/dist/config/models/CancelAccommodationCardAction.json +32 -0
  30. package/dist/config/models/GuardianType.json +78 -0
  31. package/dist/config/models/Review.json +50 -0
  32. package/dist/config/models/RoomType.json +320 -0
  33. package/dist/config/models/RoomTypeLocale.json +86 -0
  34. package/dist/config/models/StudentAccommodationCard.json +158 -0
  35. package/dist/config/models/TestAction.json +50 -0
  36. package/dist/config/scope.access.js +148 -0
  37. package/dist/config/scope.access.js.map +1 -0
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.js +3 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/listeners/AddDefaultAttachmentConfiguration.js +44 -0
  42. package/dist/listeners/AddDefaultAttachmentConfiguration.js.map +1 -0
  43. package/dist/listeners/DefaultAttachmentConfigurations.json +277 -0
  44. package/dist/listeners/DefaultAttachmentTypes.json +523 -0
  45. package/dist/listeners/GenerateRequestNumberListener.js +87 -0
  46. package/dist/listeners/GenerateRequestNumberListener.js.map +1 -0
  47. package/dist/listeners/OnActionCompleteListener.js +96 -0
  48. package/dist/listeners/OnActionCompleteListener.js.map +1 -0
  49. package/dist/listeners/OnCancelAccommodationCardListener.js +87 -0
  50. package/dist/listeners/OnCancelAccommodationCardListener.js.map +1 -0
  51. package/dist/listeners/OnReactivateAccommodationCardListener.js +87 -0
  52. package/dist/listeners/OnReactivateAccommodationCardListener.js.map +1 -0
  53. package/dist/listeners/SendEmailAfterActionStatusChangeListener.js +98 -0
  54. package/dist/listeners/SendEmailAfterActionStatusChangeListener.js.map +1 -0
  55. package/dist/listeners/SendEmailAfterCardStatusChangeListener.js +139 -0
  56. package/dist/listeners/SendEmailAfterCardStatusChangeListener.js.map +1 -0
  57. package/dist/listeners/StudentAccommodationCardSaveListener.js +90 -0
  58. package/dist/listeners/StudentAccommodationCardSaveListener.js.map +1 -0
  59. package/dist/listeners/UpdateStudentAccommodationCardListener.js +70 -0
  60. package/dist/listeners/UpdateStudentAccommodationCardListener.js.map +1 -0
  61. package/dist/listeners/ValidateActionListener.js +348 -0
  62. package/dist/listeners/ValidateActionListener.js.map +1 -0
  63. package/dist/listeners/data-localization.js +209 -0
  64. package/dist/listeners/data-localization.js.map +1 -0
  65. package/dist/listeners/lookup-cache-listener.js +90 -0
  66. package/dist/listeners/lookup-cache-listener.js.map +1 -0
  67. package/dist/models/Accommodation.js +53 -0
  68. package/dist/models/Accommodation.js.map +1 -0
  69. package/dist/models/AccommodationRequestAction.js +214 -0
  70. package/dist/models/AccommodationRequestAction.js.map +1 -0
  71. package/dist/models/AccommodationRequestEvent.js +277 -0
  72. package/dist/models/AccommodationRequestEvent.js.map +1 -0
  73. package/dist/models/EnableAttachmentModel.js +210 -0
  74. package/dist/models/EnableAttachmentModel.js.map +1 -0
  75. package/dist/models/StudentAccommodationCard.js +93 -0
  76. package/dist/models/StudentAccommodationCard.js.map +1 -0
  77. package/dist/models/TestAction.d.ts +5 -0
  78. package/dist/models/TestAction.js +5 -0
  79. package/dist/models/TestAction.js.map +1 -0
  80. package/dist/templates/mail-after-dining-request-status-change/html.ejs +27 -0
  81. package/package.json +57 -0
  82. package/src/AccommodationSchemaLoader.js +35 -0
  83. package/src/AccommodationService.js +67 -0
  84. package/src/DepartmentReplacer.js +53 -0
  85. package/src/StudentReplacer.js +74 -0
  86. package/src/config/models/Accommodation.json +96 -0
  87. package/src/config/models/AccommodationCardEffectiveStatusType.json +107 -0
  88. package/src/config/models/AccommodationCardEffectiveStatusTypeLocale.json +85 -0
  89. package/src/config/models/AccommodationChildFinancialAttribute.json +46 -0
  90. package/src/config/models/AccommodationGuardianFinancialAttribute.json +46 -0
  91. package/src/config/models/AccommodationInscriptionModeTag.json +100 -0
  92. package/src/config/models/AccommodationRequestAction.json +500 -0
  93. package/src/config/models/AccommodationRequestActionMessage.json +46 -0
  94. package/src/config/models/AccommodationRequestActionReview.json +31 -0
  95. package/src/config/models/AccommodationRequestAttachmentConfiguration.json +72 -0
  96. package/src/config/models/AccommodationRequestCategory.json +50 -0
  97. package/src/config/models/AccommodationRequestEffectiveStatusType.json +212 -0
  98. package/src/config/models/AccommodationRequestEffectiveStatusTypeLocale.json +85 -0
  99. package/src/config/models/AccommodationRequestEvent.json +117 -0
  100. package/src/config/models/AccommodationRequestFinancialAttribute.json +53 -0
  101. package/src/config/models/AccommodationRoom.json +151 -0
  102. package/src/config/models/AccommodationSiblingFinancialAttribute.json +57 -0
  103. package/src/config/models/CancelAccommodationCardAction.json +32 -0
  104. package/src/config/models/GuardianType.json +78 -0
  105. package/src/config/models/Review.json +50 -0
  106. package/src/config/models/RoomType.json +320 -0
  107. package/src/config/models/RoomTypeLocale.json +86 -0
  108. package/src/config/models/StudentAccommodationCard.json +158 -0
  109. package/src/config/models/TestAction.json +50 -0
  110. package/src/config/scope.access.js +148 -0
  111. package/src/index.d.ts +2 -0
  112. package/src/index.js +2 -0
  113. package/src/listeners/AddDefaultAttachmentConfiguration.js +43 -0
  114. package/src/listeners/DefaultAttachmentConfigurations.json +277 -0
  115. package/src/listeners/DefaultAttachmentTypes.json +523 -0
  116. package/src/listeners/GenerateRequestNumberListener.js +86 -0
  117. package/src/listeners/OnActionCompleteListener.js +95 -0
  118. package/src/listeners/OnCancelAccommodationCardListener.js +86 -0
  119. package/src/listeners/OnReactivateAccommodationCardListener.js +86 -0
  120. package/src/listeners/SendEmailAfterActionStatusChangeListener.js +97 -0
  121. package/src/listeners/SendEmailAfterCardStatusChangeListener.js +138 -0
  122. package/src/listeners/StudentAccommodationCardSaveListener.js +89 -0
  123. package/src/listeners/UpdateStudentAccommodationCardListener.js +69 -0
  124. package/src/listeners/ValidateActionListener.js +347 -0
  125. package/src/listeners/data-localization.js +214 -0
  126. package/src/listeners/lookup-cache-listener.js +89 -0
  127. package/src/models/Accommodation.js +52 -0
  128. package/src/models/AccommodationRequestAction.js +195 -0
  129. package/src/models/AccommodationRequestEvent.js +276 -0
  130. package/src/models/EnableAttachmentModel.js +209 -0
  131. package/src/models/StudentAccommodationCard.js +92 -0
  132. package/src/models/TestAction.d.ts +5 -0
  133. package/src/models/TestAction.js +10 -0
  134. package/src/templates/mail-after-dining-request-status-change/html.ejs +27 -0
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "http://schema.org/AccommodationRequestCategory",
4
+ "name": "AccommodationRequestCategory",
5
+ "description": "The accommodation request category.",
6
+ "title": "AccommodationRequestCategory",
7
+ "abstract": false,
8
+ "sealed": false,
9
+ "implements": "Enumeration",
10
+ "version": "1.0",
11
+ "fields": [
12
+ {
13
+ "@id": "http://schema.org/alternateName",
14
+ "name": "alternateName",
15
+ "type": "Text",
16
+ "nullable": false
17
+ },
18
+ {
19
+ "@id": "http://schema.org/name",
20
+ "name": "name",
21
+ "type": "Text",
22
+ "nullable": false
23
+ }
24
+ ],
25
+ "privileges": [
26
+ {
27
+ "mask": 1,
28
+ "type": "global",
29
+ "account": "*"
30
+ },
31
+ {
32
+ "mask": 15,
33
+ "type": "global"
34
+ },
35
+ {
36
+ "mask": 15,
37
+ "type": "global",
38
+ "account": "Administrators"
39
+ }
40
+ ],
41
+ "constraints": [
42
+ {
43
+ "type": "unique",
44
+ "description": "Alternate name must be unique across different records",
45
+ "fields": [
46
+ "alternateName"
47
+ ]
48
+ }
49
+ ]
50
+ }
@@ -0,0 +1,212 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "http://schema.org/AccommodationRequestEffectiveStatusType",
4
+ "name": "AccommodationRequestEffectiveStatusType",
5
+ "description": "The effective status of a potential Accommodation request action.",
6
+ "title": "AccommodationRequestEffectiveStatusType",
7
+ "abstract": false,
8
+ "sealed": false,
9
+ "implements": "Enumeration",
10
+ "version": "1.2",
11
+ "fields": [
12
+ {
13
+ "@id": "http://schema.org/additionalType",
14
+ "name": "additionalType",
15
+ "type": "Text",
16
+ "readonly": true,
17
+ "nullable": false,
18
+ "value": "javascript:return this.model.name;"
19
+ },
20
+ {
21
+ "@id": "http://schema.org/alternateName",
22
+ "name": "alternateName",
23
+ "type": "Text",
24
+ "nullable": false
25
+ },
26
+ {
27
+ "@id": "http://schema.org/name",
28
+ "name": "name",
29
+ "type": "Text",
30
+ "nullable": false
31
+ },
32
+ {
33
+ "name": "activatesAccommodationCard",
34
+ "type": "Boolean",
35
+ "nullable": true
36
+ },
37
+ {
38
+ "name": "locales",
39
+ "type": "AccommodationRequestEffectiveStatusTypeLocale",
40
+ "mapping": {
41
+ "associationType": "association",
42
+ "cascade": "delete",
43
+ "parentModel": "AccommodationRequestEffectiveStatusType",
44
+ "parentField": "id",
45
+ "childModel": "AccommodationRequestEffectiveStatusTypeLocale",
46
+ "childField": "object"
47
+ }
48
+ },
49
+ {
50
+ "name": "locale",
51
+ "type": "AccommodationRequestEffectiveStatusTypeLocale",
52
+ "readonly": true,
53
+ "editable": false,
54
+ "many": true,
55
+ "expandable": true,
56
+ "multiplicity": "ZeroOrOne",
57
+ "mapping": {
58
+ "associationType": "association",
59
+ "cascade": "delete",
60
+ "parentModel": "AccommodationRequestEffectiveStatusType",
61
+ "parentField": "id",
62
+ "childModel": "AccommodationRequestEffectiveStatusTypeLocale",
63
+ "childField": "object",
64
+ "options": {
65
+ "$filter": "inLanguage eq lang()",
66
+ "$first": true
67
+ }
68
+ }
69
+ }
70
+ ],
71
+ "eventListeners": [
72
+ {
73
+ "type": "./listeners/data-localization"
74
+ }
75
+ ],
76
+ "privileges": [
77
+ {
78
+ "mask": 1,
79
+ "type": "global",
80
+ "account": "*"
81
+ },
82
+ {
83
+ "mask": 15,
84
+ "type": "global"
85
+ },
86
+ {
87
+ "mask": 15,
88
+ "type": "global",
89
+ "account": "Administrators"
90
+ },
91
+ {
92
+ "mask": 15,
93
+ "type": "global",
94
+ "account": "AccommodationAdministrators"
95
+ }
96
+ ],
97
+ "constraints": [
98
+ {
99
+ "type": "unique",
100
+ "description": "Alternate name must be unique across different records",
101
+ "fields": [
102
+ "alternateName"
103
+ ]
104
+ }
105
+ ],
106
+ "seed": [
107
+ {
108
+ "alternateName": "AcceptedAttachmentsEffectiveStatus",
109
+ "activatesAccommodationCard": true,
110
+ "name": "Αποδεκτά Δικαιολογητικά",
111
+ "description": "Τα δικαιολογητικά κρίθηκαν αποδεκτά",
112
+ "locales": [
113
+ {
114
+ "inLanguage": "en",
115
+ "name": "Attached Documents are Accepted",
116
+ "description": "Attached Documents are Accepted"
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ "alternateName": "MissingCertificatesEffectiveStatus",
122
+ "activatesAccommodationCard": false,
123
+ "name": "Ελλιπή Πιστοποιητικά",
124
+ "description": "Ελλιπή Πιστοποιητικά",
125
+ "locales": [
126
+ {
127
+ "inLanguage": "en",
128
+ "name": "Missing Certificates",
129
+ "description": "Certificates are missing"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "alternateName": "MissingTaxStatementsEffectiveStatus",
135
+ "activatesAccommodationCard": false,
136
+ "name": "Ελλιπή Εκκαθαριστικά Εφορίας",
137
+ "description": "Το/τα εκκαθαριστικό/ά εφορίας κρίθηκαν ελλιπές/ή",
138
+ "locales": [
139
+ {
140
+ "inLanguage": "en",
141
+ "name": "Missing Tax Statements",
142
+ "description": "Tax Statements are missing"
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "alternateName": "MissingFamilyStatusDocumentsEffectiveStatus",
148
+ "activatesAccommodationCard": false,
149
+ "name": "Ελλιπή Πιστοποιητικά Οικογενειακής Κατάστασης",
150
+ "description": "Τα Πιστοποιητικά Οικογενειακής Κατάστασης κρίθηκαν ελλιπή",
151
+ "locales": [
152
+ {
153
+ "inLanguage": "en",
154
+ "name": "Missing Family Status Documents",
155
+ "description": "Family Status Documents are missing"
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "alternateName": "ExceedingIncomeLimitEffectiveStatus",
161
+ "activatesAccommodationCard": false,
162
+ "name": "Υπέρβαση Ορίου Εισοδήματος",
163
+ "description": "Υπέρβαση Ορίου Εισοδήματος",
164
+ "locales": [
165
+ {
166
+ "inLanguage": "en",
167
+ "name": "Exceeding Income Limit",
168
+ "description": "Exceeding Income Limit"
169
+ }
170
+ ]
171
+ },
172
+ {
173
+ "alternateName": "ExceedingSemesterLimitEffectiveStatus",
174
+ "activatesAccommodationCard": false,
175
+ "name": "Υπέρβαση Ορίου Εξαμήνων",
176
+ "description": "Υπέρβαση Ορίου Εισοδήματος",
177
+ "locales": [
178
+ {
179
+ "inLanguage": "en",
180
+ "name": "Exceeding Semester Limit",
181
+ "description": "Exceeding Semester Limit"
182
+ }
183
+ ]
184
+ },
185
+ {
186
+ "alternateName": "RejectionBoardDecisionEffectiveStatus",
187
+ "activatesAccommodationCard": false,
188
+ "name": "Απόρριψη λόγω Απόφασης ΔΣ",
189
+ "description": "Απόρριψη λόγω Απόφασης ΔΣ",
190
+ "locales": [
191
+ {
192
+ "inLanguage": "en",
193
+ "name": "Rejection due to Accommodation Services Board Decision",
194
+ "description": "Rejection due to Accommodation Services Board Decision"
195
+ }
196
+ ]
197
+ },
198
+ {
199
+ "alternateName": "RejectionUniversityHousingEffectiveStatus",
200
+ "activatesAccommodationCard": false,
201
+ "name": "Απόρριψη λόγω Στέγασης σε Εστία",
202
+ "description": "Απόρριψη λόγω Στέγασης σε Εστία",
203
+ "locales": [
204
+ {
205
+ "inLanguage": "en",
206
+ "name": "Rejection due to University Housing",
207
+ "description": "Rejection due to University Housing"
208
+ }
209
+ ]
210
+ }
211
+ ]
212
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "https://universis.io/entities/AccommodationRequestEffectiveStatusTypeLocale",
4
+ "name": "AccommodationRequestEffectiveStatusLocale",
5
+ "description": "Contains a collection of extra fields required for AccommodationRequestEffectiveStatusType.",
6
+ "title": "AccommodationRequestEffectiveStatusTypeLocale",
7
+ "abstract": false,
8
+ "contains": "AccommodationRequestEffectiveStatusType",
9
+ "hidden": true,
10
+ "sealed": false,
11
+ "version": "1.0",
12
+ "fields": [
13
+ {
14
+ "@id": "https://themost.io/schemas/id",
15
+ "name": "id",
16
+ "title": "ID",
17
+ "description": "The identifier of the item.",
18
+ "type": "Counter",
19
+ "primary": true,
20
+ "nullable": false
21
+ },
22
+ {
23
+ "@id": "https://themost.io/schemas/object",
24
+ "name": "object",
25
+ "title": "object",
26
+ "description": "The parent item.",
27
+ "type": "AccommodationRequestEffectiveStatusType"
28
+ },
29
+ {
30
+ "@id": "http://schema.org/inLanguage",
31
+ "name": "inLanguage",
32
+ "title": "inLanguage",
33
+ "description": "The language of this item.",
34
+ "type": "Text",
35
+ "size": 5
36
+ },
37
+ {
38
+ "name": "alternateName",
39
+ "title": "alternateName",
40
+ "description": "The alternate name of the item.",
41
+ "type": "Text"
42
+ },
43
+ {
44
+ "name": "name",
45
+ "title": "name",
46
+ "description": "The name of the item.",
47
+ "type": "Text"
48
+ },
49
+ {
50
+ "name": "description",
51
+ "title": "The description of the item.",
52
+ "type": "Note"
53
+ }
54
+ ],
55
+ "constraints": [
56
+ {
57
+ "type": "unique",
58
+ "description": "Object and inLanguage must be unique across different records",
59
+ "fields": [
60
+ "object", "inLanguage"
61
+ ]
62
+ }
63
+ ],
64
+ "privileges": [
65
+ {
66
+ "mask": 1,
67
+ "type": "global",
68
+ "account": "*"
69
+ },
70
+ {
71
+ "mask": 15,
72
+ "type": "global"
73
+ },
74
+ {
75
+ "mask": 15,
76
+ "type": "global",
77
+ "account": "Administrators"
78
+ },
79
+ {
80
+ "mask": 15,
81
+ "type": "global",
82
+ "account": "AccommodationAdministrators"
83
+ }
84
+ ]
85
+ }
@@ -0,0 +1,117 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "https://universis.io/schemas/AccommodationRequestEvent",
4
+ "name": "AccommodationRequestEvent",
5
+ "description": "AccommodationRequestEvent",
6
+ "title": "AccommodationRequestEvent",
7
+ "abstract": false,
8
+ "sealed": false,
9
+ "inherits": "Event",
10
+ "version": "1.2",
11
+ "classPath": "./models/AccommodationRequestEvent",
12
+ "fields": [
13
+ {
14
+ "@id": "http://schema.org/identifier",
15
+ "name": "identifier",
16
+ "title": "identifier",
17
+ "description": "The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links.",
18
+ "type": "Guid",
19
+ "value": "javascript:return this.newGuid();",
20
+ "nullable": false
21
+ },
22
+ {
23
+ "@id": "https://universis.io/properties/academicYear",
24
+ "name": "academicYear",
25
+ "title": "Academic year",
26
+ "type": "AcademicYear",
27
+ "expandable": true,
28
+ "nullable": false
29
+ },
30
+ {
31
+ "@id": "https://universis.io/properties/academicPeriod",
32
+ "name": "academicPeriod",
33
+ "title": "Academic period",
34
+ "type": "AcademicPeriod",
35
+ "expandable": true,
36
+ "nullable": false
37
+ },
38
+ {
39
+ "@id": "http://schema.org/validFrom",
40
+ "name": "validFrom",
41
+ "title": "validFrom",
42
+ "description": "The date when the item becomes valid.",
43
+ "type": "DateTime"
44
+ },
45
+ {
46
+ "@id": "http://schema.org/validThrough",
47
+ "name": "validThrough",
48
+ "title": "validThrough",
49
+ "description": "The date after when the item is not valid.",
50
+ "type": "DateTime"
51
+ },
52
+ {
53
+ "name": "virtual",
54
+ "title": "Virtual event",
55
+ "description": "Virtual event",
56
+ "type": "Boolean",
57
+ "value": "javascript:return true;"
58
+ },
59
+ {
60
+ "name": "lastIndex",
61
+ "type": "PositiveNumber",
62
+ "value": "javascript:return 0;"
63
+ },
64
+ {
65
+ "name": "hasConsent",
66
+ "title": "Mandatory consent",
67
+ "description": "Request has mandatory consent field",
68
+ "type": "Boolean",
69
+ "nullable": true
70
+ },
71
+ {
72
+ "name": "attachmentTypes",
73
+ "title": "Attachment types",
74
+ "description": "Attachment types required",
75
+ "type": "AccommodationRequestAttachmentConfiguration",
76
+ "many": true,
77
+ "nested": true,
78
+ "mapping": {
79
+ "parentModel": "AccommodationRequestEvent",
80
+ "childModel": "AccommodationRequestAttachmentConfiguration",
81
+ "parentField": "identifier",
82
+ "childField": "object",
83
+ "cascade": "delete",
84
+ "associationType": "association"
85
+ }
86
+ }
87
+ ],
88
+ "constraints": [
89
+ {
90
+ "type": "unique",
91
+ "fields": [
92
+ "identifier"
93
+ ]
94
+ }
95
+ ],
96
+ "eventListeners": [
97
+ {
98
+ "type": "./listeners/AddDefaultAttachmentConfiguration"
99
+ }
100
+ ],
101
+ "privileges": [
102
+ {
103
+ "mask": 15,
104
+ "type": "global"
105
+ },
106
+ {
107
+ "mask": 1,
108
+ "type": "global",
109
+ "account": "*"
110
+ },
111
+ {
112
+ "mask": 15,
113
+ "type": "global",
114
+ "account": "Administrators"
115
+ }
116
+ ]
117
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "https://universis.io/schemas/AccommodationRequestFinancialAttribute",
4
+ "name": "AccommodationRequestFinancialAttribute",
5
+ "title": "AccommodationRequestFinancialAttributes",
6
+ "hidden": true,
7
+ "sealed": false,
8
+ "abstract": false,
9
+ "version": "1.0",
10
+ "fields": [
11
+ {
12
+ "@id": "https://themost.io/schemas/id",
13
+ "name": "id",
14
+ "type": "Counter",
15
+ "primary": true,
16
+ "nullable": false
17
+ },
18
+ {
19
+ "name": "taxNumber",
20
+ "type": "Text",
21
+ "nullable": true,
22
+ "size": 30
23
+ },
24
+ {
25
+ "name": "taxOffice",
26
+ "type": "Text",
27
+ "nullable": true,
28
+ "size": 255
29
+ },
30
+ {
31
+ "name": "totalIncome",
32
+ "type": "Number",
33
+ "nullable": true
34
+ },
35
+ {
36
+ "name": "hasTaxDeclaration",
37
+ "type": "Boolean",
38
+ "nullable": true,
39
+ "value": "javascript:return false;"
40
+ }
41
+ ],
42
+ "privileges": [
43
+ {
44
+ "mask": 15,
45
+ "type": "global"
46
+ },
47
+ {
48
+ "mask": 15,
49
+ "type": "global",
50
+ "account": "Administrators"
51
+ }
52
+ ]
53
+ }
@@ -0,0 +1,151 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "http://schema.org/Room",
4
+ "name": "AccommodationRoom",
5
+ "description": "Entities that have a somewhat fixed, physical extension.",
6
+ "title": "AccommodationRoom",
7
+ "abstract": false,
8
+ "sealed": false,
9
+ "implements": "Accommodation",
10
+ "version": "1.9.9",
11
+ "fields": [
12
+ {
13
+ "name": "bed",
14
+ "type": "Text",
15
+ "size": 500
16
+ },
17
+ {
18
+ "name": "floorLavel",
19
+ "type": "Text",
20
+ "size": 500
21
+ },
22
+ {
23
+ "name": "displayCode",
24
+ "type": "Text",
25
+ "size": 500
26
+ },
27
+ {
28
+ "name": "roomType",
29
+ "description": "Tύπος δωματίου",
30
+ "type": "RoomType",
31
+ "expandable": true
32
+ },
33
+ {
34
+ "name": "floorSize",
35
+ "type": "Text",
36
+ "size": 500
37
+ },
38
+ {
39
+ "name": "leaseLength",
40
+ "type": "number"
41
+ },
42
+ {
43
+ "name": "numberOfBathroomsTotal",
44
+ "type": "number"
45
+ },
46
+ {
47
+ "name": "numberOfBedrooms",
48
+ "type": "number"
49
+ },
50
+ {
51
+ "name": "numberOfFullBathrooms",
52
+ "type": "number"
53
+ },
54
+ {
55
+ "name": "numberOfPartialBathrooms",
56
+ "type": "number"
57
+ },
58
+ {
59
+ "name": "numberOfRooms",
60
+ "type": "number"
61
+ },
62
+ {
63
+ "name": "permittedUsage",
64
+ "type": "Text",
65
+ "size": 500
66
+ },
67
+ {
68
+ "name": "petsAllowed",
69
+ "type": "boolean",
70
+ "default": true
71
+ },
72
+ {
73
+ "name": "address",
74
+ "type": "Text",
75
+ "size": 500
76
+ },
77
+ {
78
+ "name": "isAccessibleForFree",
79
+ "type": "boolean",
80
+ "default": true
81
+ },
82
+ {
83
+ "name": "latitude",
84
+ "type": "number"
85
+ },
86
+ {
87
+ "name": "longitude",
88
+ "type": "number"
89
+ },
90
+ {
91
+ "name": "occupancy",
92
+ "type": "number",
93
+ "value": "javascript:return 0;",
94
+ "description": "The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person)"
95
+ },
96
+ {
97
+ "name": "currentOccupancy",
98
+ "type": "number",
99
+ "value": "javascript:return 0;",
100
+ "description": "The current occupancy for the accommodation in persons (including infants etc)."
101
+ },
102
+ {
103
+ "name": "smokingAllowed",
104
+ "type": "boolean",
105
+ "default": false
106
+ },
107
+ {
108
+ "name": "telephone",
109
+ "type": "Text",
110
+ "size": 500
111
+ },
112
+ {
113
+ "name": "containedInPlace",
114
+ "description": "Το κτήριο στο οποίο βρίσκεται το δωμάτιο",
115
+ "type": "Accommodation"
116
+ },
117
+ {
118
+ "name": "accessibleForDisabled",
119
+ "type": "boolean",
120
+ "default": false
121
+ },
122
+ {
123
+ "name": "outOfService",
124
+ "type": "boolean",
125
+ "default": false
126
+ },
127
+ {
128
+ "name": "reasonOutOfService",
129
+ "type": "Text",
130
+ "size": 500
131
+ }
132
+ ],
133
+ "eventListeners": [
134
+ ],
135
+ "privileges": [
136
+ {
137
+ "mask": 1,
138
+ "type": "global",
139
+ "account": "*"
140
+ },
141
+ {
142
+ "mask": 31,
143
+ "type": "global"
144
+ },
145
+ {
146
+ "mask": 15,
147
+ "type": "global",
148
+ "account": "Administrators"
149
+ }
150
+ ]
151
+ }