@tietokilta/ilmomasiina-models 2.0.0-alpha11 → 2.0.0-alpha13

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 (143) hide show
  1. package/dist/attrs/event.d.ts +17 -0
  2. package/dist/attrs/event.d.ts.map +1 -0
  3. package/dist/attrs/event.js +84 -0
  4. package/dist/enum.d.ts +30 -0
  5. package/dist/enum.d.ts.map +1 -0
  6. package/dist/enum.js +35 -0
  7. package/dist/index.d.ts +2 -8
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +16 -0
  10. package/dist/models/auditlog.d.ts +2 -1
  11. package/dist/models/auditlog.d.ts.map +1 -1
  12. package/dist/models/index.d.ts +8 -0
  13. package/dist/models/index.d.ts.map +1 -0
  14. package/dist/models/question.d.ts +1 -2
  15. package/dist/models/question.d.ts.map +1 -1
  16. package/dist/models/question.js +0 -2
  17. package/dist/models/signup.d.ts +1 -2
  18. package/dist/models/signup.d.ts.map +1 -1
  19. package/dist/models/signup.js +0 -2
  20. package/dist/schema/auditLog/attributes.d.ts +15 -0
  21. package/dist/schema/auditLog/attributes.d.ts.map +1 -0
  22. package/dist/schema/auditLog/attributes.js +30 -0
  23. package/dist/schema/auditLog/index.d.ts +36 -0
  24. package/dist/schema/auditLog/index.d.ts.map +1 -0
  25. package/dist/schema/auditLog/index.js +40 -0
  26. package/dist/schema/category/index.d.ts +10 -0
  27. package/dist/schema/category/index.d.ts.map +1 -0
  28. package/dist/schema/category/index.js +10 -0
  29. package/dist/schema/errors/index.d.ts +32 -0
  30. package/dist/schema/errors/index.d.ts.map +1 -0
  31. package/dist/schema/errors/index.js +33 -0
  32. package/dist/schema/event/attributes.d.ts +110 -0
  33. package/dist/schema/event/attributes.d.ts.map +1 -0
  34. package/dist/schema/event/attributes.js +85 -0
  35. package/dist/schema/event/index.d.ts +308 -0
  36. package/dist/schema/event/index.d.ts.map +1 -0
  37. package/dist/schema/event/index.js +72 -0
  38. package/dist/schema/eventList/index.d.ts +135 -0
  39. package/dist/schema/eventList/index.d.ts.map +1 -0
  40. package/dist/schema/eventList/index.js +32 -0
  41. package/dist/schema/headers.d.ts +3 -0
  42. package/dist/schema/headers.d.ts.map +1 -0
  43. package/dist/schema/headers.js +6 -0
  44. package/dist/schema/index.d.ts +15 -0
  45. package/dist/schema/index.d.ts.map +1 -0
  46. package/dist/schema/index.js +30 -0
  47. package/dist/schema/login/index.d.ts +15 -0
  48. package/dist/schema/login/index.d.ts.map +1 -0
  49. package/dist/schema/login/index.js +19 -0
  50. package/dist/schema/question/attributes.d.ts +15 -0
  51. package/dist/schema/question/attributes.d.ts.map +1 -0
  52. package/dist/schema/question/attributes.js +31 -0
  53. package/dist/schema/question/index.d.ts +38 -0
  54. package/dist/schema/question/index.d.ts.map +1 -0
  55. package/dist/schema/question/index.js +19 -0
  56. package/dist/schema/quota/attributes.d.ts +11 -0
  57. package/dist/schema/quota/attributes.d.ts.map +1 -0
  58. package/dist/schema/quota/attributes.js +21 -0
  59. package/dist/schema/quota/index.d.ts +27 -0
  60. package/dist/schema/quota/index.d.ts.map +1 -0
  61. package/dist/schema/quota/index.js +19 -0
  62. package/dist/schema/quotaWithSignups/index.d.ts +68 -0
  63. package/dist/schema/quotaWithSignups/index.d.ts.map +1 -0
  64. package/dist/schema/quotaWithSignups/index.js +29 -0
  65. package/dist/schema/signup/attributes.d.ts +40 -0
  66. package/dist/schema/signup/attributes.d.ts.map +1 -0
  67. package/dist/schema/signup/attributes.js +55 -0
  68. package/dist/schema/signup/index.d.ts +82 -0
  69. package/dist/schema/signup/index.d.ts.map +1 -0
  70. package/dist/schema/signup/index.js +34 -0
  71. package/dist/schema/signupForEdit/index.d.ts +89 -0
  72. package/dist/schema/signupForEdit/index.d.ts.map +1 -0
  73. package/dist/schema/signupForEdit/index.js +22 -0
  74. package/dist/schema/slug/index.d.ts +15 -0
  75. package/dist/schema/slug/index.d.ts.map +1 -0
  76. package/dist/schema/slug/index.js +15 -0
  77. package/dist/schema/user/attributes.d.ts +12 -0
  78. package/dist/schema/user/attributes.d.ts.map +1 -0
  79. package/dist/schema/user/attributes.js +24 -0
  80. package/dist/schema/user/index.d.ts +48 -0
  81. package/dist/schema/user/index.d.ts.map +1 -0
  82. package/dist/schema/user/index.js +32 -0
  83. package/dist/schema/utils.d.ts +3 -0
  84. package/dist/schema/utils.d.ts.map +1 -0
  85. package/dist/schema/utils.js +7 -0
  86. package/package.json +5 -2
  87. package/dist/services/admin/categories/index.d.ts +0 -7
  88. package/dist/services/admin/categories/index.d.ts.map +0 -1
  89. package/dist/services/admin/categories/list.d.ts +0 -2
  90. package/dist/services/admin/categories/list.d.ts.map +0 -1
  91. package/dist/services/admin/categories/list.js +0 -2
  92. package/dist/services/admin/events/create.d.ts +0 -15
  93. package/dist/services/admin/events/create.d.ts.map +0 -1
  94. package/dist/services/admin/events/create.js +0 -38
  95. package/dist/services/admin/events/index.d.ts +0 -32
  96. package/dist/services/admin/events/index.d.ts.map +0 -1
  97. package/dist/services/admin/events/index.js +0 -2
  98. package/dist/services/admin/events/update.d.ts +0 -17
  99. package/dist/services/admin/events/update.d.ts.map +0 -1
  100. package/dist/services/admin/events/update.js +0 -2
  101. package/dist/services/admin/slug/get.d.ts +0 -6
  102. package/dist/services/admin/slug/get.d.ts.map +0 -1
  103. package/dist/services/admin/slug/get.js +0 -2
  104. package/dist/services/admin/slug/index.d.ts +0 -7
  105. package/dist/services/admin/slug/index.d.ts.map +0 -1
  106. package/dist/services/admin/slug/index.js +0 -2
  107. package/dist/services/auditlog/index.d.ts +0 -26
  108. package/dist/services/auditlog/index.d.ts.map +0 -1
  109. package/dist/services/auditlog/index.js +0 -2
  110. package/dist/services/auth/index.d.ts +0 -18
  111. package/dist/services/auth/index.d.ts.map +0 -1
  112. package/dist/services/auth/index.js +0 -2
  113. package/dist/services/events/details.d.ts +0 -45
  114. package/dist/services/events/details.d.ts.map +0 -1
  115. package/dist/services/events/details.js +0 -67
  116. package/dist/services/events/index.d.ts +0 -26
  117. package/dist/services/events/index.d.ts.map +0 -1
  118. package/dist/services/events/index.js +0 -2
  119. package/dist/services/events/list.d.ts +0 -18
  120. package/dist/services/events/list.d.ts.map +0 -1
  121. package/dist/services/events/list.js +0 -32
  122. package/dist/services/signups/create.d.ts +0 -10
  123. package/dist/services/signups/create.d.ts.map +0 -1
  124. package/dist/services/signups/create.js +0 -2
  125. package/dist/services/signups/getForEdit.d.ts +0 -29
  126. package/dist/services/signups/getForEdit.d.ts.map +0 -1
  127. package/dist/services/signups/getForEdit.js +0 -29
  128. package/dist/services/signups/index.d.ts +0 -28
  129. package/dist/services/signups/index.d.ts.map +0 -1
  130. package/dist/services/signups/index.js +0 -2
  131. package/dist/services/signups/update.d.ts +0 -19
  132. package/dist/services/signups/update.d.ts.map +0 -1
  133. package/dist/services/signups/update.js +0 -2
  134. package/dist/services/users/details.d.ts +0 -10
  135. package/dist/services/users/details.d.ts.map +0 -1
  136. package/dist/services/users/details.js +0 -5
  137. package/dist/services/users/index.d.ts +0 -13
  138. package/dist/services/users/index.d.ts.map +0 -1
  139. package/dist/services/users/index.js +0 -2
  140. package/dist/utils.d.ts +0 -5
  141. package/dist/utils.d.ts.map +0 -1
  142. package/dist/utils.js +0 -2
  143. /package/dist/{services/admin/categories → models}/index.js +0 -0
@@ -0,0 +1,110 @@
1
+ export declare const eventSlug: import("@sinclair/typebox").TString;
2
+ /** Event ID type. Randomly generated alphanumeric string. */
3
+ export declare const eventID: import("@sinclair/typebox").TString;
4
+ /** Non-editable identity attributes for events. */
5
+ export declare const eventIdentity: import("@sinclair/typebox").TObject<{
6
+ id: import("@sinclair/typebox").TString;
7
+ }>;
8
+ /** Event attributes that are included in public event lists. */
9
+ export declare const userListEventAttributes: import("@sinclair/typebox").TObject<{
10
+ title: import("@sinclair/typebox").TString;
11
+ slug: import("@sinclair/typebox").TString;
12
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
13
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
14
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
15
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
16
+ openQuotaSize: import("@sinclair/typebox").TInteger;
17
+ category: import("@sinclair/typebox").TString;
18
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
19
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
20
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
21
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
22
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
23
+ signupsPublic: import("@sinclair/typebox").TBoolean;
24
+ }>;
25
+ /** Event attributes that are included in public event details. */
26
+ export declare const userFullEventAttributes: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
27
+ title: import("@sinclair/typebox").TString;
28
+ slug: import("@sinclair/typebox").TString;
29
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
30
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
31
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
32
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
33
+ openQuotaSize: import("@sinclair/typebox").TInteger;
34
+ category: import("@sinclair/typebox").TString;
35
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
36
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
37
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
38
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
39
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
40
+ signupsPublic: import("@sinclair/typebox").TBoolean;
41
+ }>, import("@sinclair/typebox").TObject<{
42
+ nameQuestion: import("@sinclair/typebox").TBoolean;
43
+ emailQuestion: import("@sinclair/typebox").TBoolean;
44
+ }>]>;
45
+ /** Event attributes that are included for admins in event lists. */
46
+ export declare const adminListEventAttributes: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
47
+ title: import("@sinclair/typebox").TString;
48
+ slug: import("@sinclair/typebox").TString;
49
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
50
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
51
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
52
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
53
+ openQuotaSize: import("@sinclair/typebox").TInteger;
54
+ category: import("@sinclair/typebox").TString;
55
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
56
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
57
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
58
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
59
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
60
+ signupsPublic: import("@sinclair/typebox").TBoolean;
61
+ }>, import("@sinclair/typebox").TObject<{
62
+ draft: import("@sinclair/typebox").TBoolean;
63
+ listed: import("@sinclair/typebox").TBoolean;
64
+ }>]>;
65
+ /** Event attributes that are included for admins in event details. */
66
+ export declare const adminFullEventAttributes: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
67
+ title: import("@sinclair/typebox").TString;
68
+ slug: import("@sinclair/typebox").TString;
69
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
70
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
71
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
72
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
73
+ openQuotaSize: import("@sinclair/typebox").TInteger;
74
+ category: import("@sinclair/typebox").TString;
75
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
76
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
77
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
78
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
79
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
80
+ signupsPublic: import("@sinclair/typebox").TBoolean;
81
+ }>, import("@sinclair/typebox").TObject<{
82
+ nameQuestion: import("@sinclair/typebox").TBoolean;
83
+ emailQuestion: import("@sinclair/typebox").TBoolean;
84
+ }>]>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
85
+ title: import("@sinclair/typebox").TString;
86
+ slug: import("@sinclair/typebox").TString;
87
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
88
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
89
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
90
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
91
+ openQuotaSize: import("@sinclair/typebox").TInteger;
92
+ category: import("@sinclair/typebox").TString;
93
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
94
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
95
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
96
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
97
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
98
+ signupsPublic: import("@sinclair/typebox").TBoolean;
99
+ }>, import("@sinclair/typebox").TObject<{
100
+ draft: import("@sinclair/typebox").TBoolean;
101
+ listed: import("@sinclair/typebox").TBoolean;
102
+ }>]>, import("@sinclair/typebox").TObject<{
103
+ verificationEmail: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
104
+ }>]>;
105
+ /** Event attributes that are dynamically calculated in public event details. */
106
+ export declare const eventDynamicAttributes: import("@sinclair/typebox").TObject<{
107
+ millisTillOpening: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
108
+ registrationClosed: import("@sinclair/typebox").TBoolean;
109
+ }>;
110
+ //# sourceMappingURL=attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../src/schema/event/attributes.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,qCAEpB,CAAC;AAEH,6DAA6D;AAC7D,eAAO,MAAM,OAAO,qCAGlB,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,aAAa;;EAExB,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAqDlC,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;IAYnC,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;IAapC,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWpC,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,sBAAsB;;;EAQjC,CAAC"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.eventDynamicAttributes = exports.adminFullEventAttributes = exports.adminListEventAttributes = exports.userFullEventAttributes = exports.userListEventAttributes = exports.eventIdentity = exports.eventID = exports.eventSlug = void 0;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ const utils_1 = require("../utils");
6
+ exports.eventSlug = typebox_1.Type.String({
7
+ description: 'Event slug, used for accessing the event by URL.',
8
+ });
9
+ /** Event ID type. Randomly generated alphanumeric string. */
10
+ exports.eventID = typebox_1.Type.String({
11
+ title: 'EventID',
12
+ description: 'Event ID. Randomly generated alphanumeric string.',
13
+ });
14
+ /** Non-editable identity attributes for events. */
15
+ exports.eventIdentity = typebox_1.Type.Object({
16
+ id: exports.eventID,
17
+ });
18
+ /** Event attributes that are included in public event lists. */
19
+ exports.userListEventAttributes = typebox_1.Type.Object({
20
+ title: typebox_1.Type.String({
21
+ description: 'Event title.',
22
+ }),
23
+ slug: exports.eventSlug,
24
+ date: (0, utils_1.Nullable)(typebox_1.Type.String({ format: 'date-time' }), {
25
+ description: 'Event start date. Considered to be the start date if endDate is also set. If null, '
26
+ + 'the event is signup-only.',
27
+ }),
28
+ endDate: (0, utils_1.Nullable)(typebox_1.Type.String({ format: 'date-time' }), { description: 'Event end date. If null, the event will not appear in iCalendar exports.' }),
29
+ registrationStartDate: (0, utils_1.Nullable)(typebox_1.Type.String({ format: 'date-time' }), { description: 'Event signup opening date. If null, the event does not have a signup.' }),
30
+ registrationEndDate: (0, utils_1.Nullable)(typebox_1.Type.String({ format: 'date-time' }), { description: 'Event signup closing date.' }),
31
+ openQuotaSize: typebox_1.Type.Integer({
32
+ description: 'The size of the open quota, which will be filled with signups overflowing their dedicated quota.',
33
+ }),
34
+ category: typebox_1.Type.String({
35
+ description: 'Category tag for the event. Can be used for filtering.',
36
+ }),
37
+ description: (0, utils_1.Nullable)(typebox_1.Type.String(), { description: 'Description for the event. Supports Markdown.' }),
38
+ price: (0, utils_1.Nullable)(typebox_1.Type.String(), { description: 'Free-form pricing information for the event.' }),
39
+ location: (0, utils_1.Nullable)(typebox_1.Type.String(), { description: 'Free-form location information for the event.' }),
40
+ webpageUrl: (0, utils_1.Nullable)(typebox_1.Type.String(), { description: 'Link to an external event webpage.' }),
41
+ facebookUrl: (0, utils_1.Nullable)(typebox_1.Type.String(), { description: 'Link to a Facebook page for the event.' }),
42
+ signupsPublic: typebox_1.Type.Boolean({
43
+ description: 'Whether signups should be shown to all users.',
44
+ }),
45
+ });
46
+ /** Event attributes that are included in public event details. */
47
+ exports.userFullEventAttributes = typebox_1.Type.Intersect([
48
+ exports.userListEventAttributes,
49
+ typebox_1.Type.Object({
50
+ nameQuestion: typebox_1.Type.Boolean({
51
+ description: 'Whether signups should contain a name field.',
52
+ }),
53
+ emailQuestion: typebox_1.Type.Boolean({
54
+ description: 'Whether signups should contain an email field. Also enables confirmation emails.',
55
+ }),
56
+ }),
57
+ ]);
58
+ /** Event attributes that are included for admins in event lists. */
59
+ exports.adminListEventAttributes = typebox_1.Type.Intersect([
60
+ exports.userListEventAttributes,
61
+ typebox_1.Type.Object({
62
+ draft: typebox_1.Type.Boolean({
63
+ description: 'Whether the event is a draft, shown only to signed-in admins.',
64
+ }),
65
+ listed: typebox_1.Type.Boolean({
66
+ description: 'Whether the event is publicly visible on the front page of Ilmomasiina.'
67
+ + ' Unlisted events are only accessible with a direct link',
68
+ }),
69
+ }),
70
+ ]);
71
+ /** Event attributes that are included for admins in event details. */
72
+ exports.adminFullEventAttributes = typebox_1.Type.Intersect([
73
+ exports.userFullEventAttributes,
74
+ exports.adminListEventAttributes,
75
+ typebox_1.Type.Object({
76
+ verificationEmail: (0, utils_1.Nullable)(typebox_1.Type.String(), { description: 'Custom message for the signup confirmation email.' }),
77
+ }),
78
+ ]);
79
+ /** Event attributes that are dynamically calculated in public event details. */
80
+ exports.eventDynamicAttributes = typebox_1.Type.Object({
81
+ millisTillOpening: (0, utils_1.Nullable)(typebox_1.Type.Integer(), { description: 'Time in ms until signup opens. If null, the signup will not open in the future.' }),
82
+ registrationClosed: typebox_1.Type.Boolean({
83
+ description: 'Whether the signup has closed.',
84
+ }),
85
+ });
@@ -0,0 +1,308 @@
1
+ import { Static } from '@sinclair/typebox';
2
+ import { eventID, eventSlug } from './attributes';
3
+ /** Response schema for fetching or modifying an event in the admin API. */
4
+ export declare const adminEventResponse: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
5
+ id: import("@sinclair/typebox").TString;
6
+ }>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
7
+ title: import("@sinclair/typebox").TString;
8
+ slug: import("@sinclair/typebox").TString;
9
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
10
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
11
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
12
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
13
+ openQuotaSize: import("@sinclair/typebox").TInteger;
14
+ category: import("@sinclair/typebox").TString;
15
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
16
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
17
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
18
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
19
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
20
+ signupsPublic: import("@sinclair/typebox").TBoolean;
21
+ }>, import("@sinclair/typebox").TObject<{
22
+ nameQuestion: import("@sinclair/typebox").TBoolean;
23
+ emailQuestion: import("@sinclair/typebox").TBoolean;
24
+ }>]>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
25
+ title: import("@sinclair/typebox").TString;
26
+ slug: import("@sinclair/typebox").TString;
27
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
28
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
29
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
30
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
31
+ openQuotaSize: import("@sinclair/typebox").TInteger;
32
+ category: import("@sinclair/typebox").TString;
33
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
34
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
35
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
36
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
37
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
38
+ signupsPublic: import("@sinclair/typebox").TBoolean;
39
+ }>, import("@sinclair/typebox").TObject<{
40
+ draft: import("@sinclair/typebox").TBoolean;
41
+ listed: import("@sinclair/typebox").TBoolean;
42
+ }>]>, import("@sinclair/typebox").TObject<{
43
+ verificationEmail: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
44
+ }>]>, import("@sinclair/typebox").TObject<{
45
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
46
+ id: import("@sinclair/typebox").TString;
47
+ }>, import("@sinclair/typebox").TObject<{
48
+ question: import("@sinclair/typebox").TString;
49
+ type: import("@sinclair/typebox").TEnum<typeof import("../..").QuestionType>;
50
+ options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TNull]>;
51
+ required: import("@sinclair/typebox").TBoolean;
52
+ public: import("@sinclair/typebox").TBoolean;
53
+ }>]>>;
54
+ quotas: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
55
+ id: import("@sinclair/typebox").TString;
56
+ }>, import("@sinclair/typebox").TObject<{
57
+ title: import("@sinclair/typebox").TString;
58
+ size: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
59
+ }>]>, import("@sinclair/typebox").TObject<{
60
+ signupCount: import("@sinclair/typebox").TInteger;
61
+ }>]>, import("@sinclair/typebox").TObject<{
62
+ signups: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
63
+ id: import("@sinclair/typebox").TString;
64
+ }>, import("@sinclair/typebox").TObject<{
65
+ firstName: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
66
+ lastName: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
67
+ email: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
68
+ namePublic: import("@sinclair/typebox").TBoolean;
69
+ answers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
70
+ questionId: import("@sinclair/typebox").TString;
71
+ answer: import("@sinclair/typebox").TString;
72
+ }>>;
73
+ }>, import("@sinclair/typebox").TObject<{
74
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TEnum<typeof import("../..").SignupStatus>, import("@sinclair/typebox").TNull]>;
75
+ position: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
76
+ /** Path parameters necessary to fetch an event from the public API. */
77
+ createdAt: import("@sinclair/typebox").TString;
78
+ confirmed: import("@sinclair/typebox").TBoolean;
79
+ }>]>>;
80
+ }>]>>;
81
+ updatedAt: import("@sinclair/typebox").TString;
82
+ }>]>;
83
+ /** Response schema for fetching an event from the public API. */
84
+ export declare const userEventResponse: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
85
+ id: import("@sinclair/typebox").TString;
86
+ }>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
87
+ title: import("@sinclair/typebox").TString;
88
+ slug: import("@sinclair/typebox").TString;
89
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
90
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
91
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
92
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
93
+ openQuotaSize: import("@sinclair/typebox").TInteger;
94
+ category: import("@sinclair/typebox").TString;
95
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
96
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
97
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
98
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
99
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
100
+ signupsPublic: import("@sinclair/typebox").TBoolean;
101
+ }>, import("@sinclair/typebox").TObject<{
102
+ nameQuestion: import("@sinclair/typebox").TBoolean;
103
+ emailQuestion: import("@sinclair/typebox").TBoolean;
104
+ }>]>, import("@sinclair/typebox").TObject<{
105
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
106
+ id: import("@sinclair/typebox").TString;
107
+ }>, import("@sinclair/typebox").TObject<{
108
+ question: import("@sinclair/typebox").TString;
109
+ type: import("@sinclair/typebox").TEnum<typeof import("../..").QuestionType>;
110
+ options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TNull]>;
111
+ required: import("@sinclair/typebox").TBoolean;
112
+ public: import("@sinclair/typebox").TBoolean;
113
+ }>]>>;
114
+ quotas: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
115
+ id: import("@sinclair/typebox").TString;
116
+ }>, import("@sinclair/typebox").TObject<{
117
+ title: import("@sinclair/typebox").TString;
118
+ size: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
119
+ }>]>, import("@sinclair/typebox").TObject<{
120
+ signupCount: import("@sinclair/typebox").TInteger;
121
+ }>]>, import("@sinclair/typebox").TObject<{
122
+ signups: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
123
+ firstName: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
124
+ lastName: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
125
+ namePublic: import("@sinclair/typebox").TBoolean;
126
+ answers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
127
+ questionId: import("@sinclair/typebox").TString;
128
+ answer: import("@sinclair/typebox").TString;
129
+ }>>;
130
+ }>, import("@sinclair/typebox").TObject<{
131
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TEnum<typeof import("../..").SignupStatus>, import("@sinclair/typebox").TNull]>;
132
+ position: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
133
+ /** Path parameters necessary to fetch an event from the public API. */
134
+ createdAt: import("@sinclair/typebox").TString;
135
+ confirmed: import("@sinclair/typebox").TBoolean;
136
+ }>]>>;
137
+ }>]>>;
138
+ }>, import("@sinclair/typebox").TObject<{
139
+ millisTillOpening: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
140
+ registrationClosed: import("@sinclair/typebox").TBoolean;
141
+ }>]>;
142
+ /** Request body for creating an event. */
143
+ export declare const eventCreateBody: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
144
+ title: import("@sinclair/typebox").TString;
145
+ slug: import("@sinclair/typebox").TString;
146
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
147
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
148
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
149
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
150
+ openQuotaSize: import("@sinclair/typebox").TInteger;
151
+ category: import("@sinclair/typebox").TString;
152
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
153
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
154
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
155
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
156
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
157
+ signupsPublic: import("@sinclair/typebox").TBoolean;
158
+ }>, import("@sinclair/typebox").TObject<{
159
+ nameQuestion: import("@sinclair/typebox").TBoolean;
160
+ emailQuestion: import("@sinclair/typebox").TBoolean;
161
+ }>]>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
162
+ title: import("@sinclair/typebox").TString;
163
+ slug: import("@sinclair/typebox").TString;
164
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
165
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
166
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
167
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
168
+ openQuotaSize: import("@sinclair/typebox").TInteger;
169
+ category: import("@sinclair/typebox").TString;
170
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
171
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
172
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
173
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
174
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
175
+ signupsPublic: import("@sinclair/typebox").TBoolean;
176
+ }>, import("@sinclair/typebox").TObject<{
177
+ draft: import("@sinclair/typebox").TBoolean;
178
+ listed: import("@sinclair/typebox").TBoolean;
179
+ }>]>, import("@sinclair/typebox").TObject<{
180
+ verificationEmail: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
181
+ }>]>, import("@sinclair/typebox").TObject<{
182
+ quotas: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
183
+ title: import("@sinclair/typebox").TString;
184
+ size: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
185
+ }>>;
186
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
187
+ question: import("@sinclair/typebox").TString;
188
+ type: import("@sinclair/typebox").TEnum<typeof import("../..").QuestionType>;
189
+ options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TNull]>;
190
+ required: import("@sinclair/typebox").TBoolean;
191
+ public: import("@sinclair/typebox").TBoolean;
192
+ }>>;
193
+ }>]>;
194
+ /** Request body for editing an existing event. */
195
+ export declare const eventUpdateBody: import("@sinclair/typebox").TPartial<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
196
+ title: import("@sinclair/typebox").TString;
197
+ slug: import("@sinclair/typebox").TString;
198
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
199
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
200
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
201
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
202
+ openQuotaSize: import("@sinclair/typebox").TInteger;
203
+ category: import("@sinclair/typebox").TString;
204
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
205
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
206
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
207
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
208
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
209
+ signupsPublic: import("@sinclair/typebox").TBoolean;
210
+ }>, import("@sinclair/typebox").TObject<{
211
+ nameQuestion: import("@sinclair/typebox").TBoolean;
212
+ emailQuestion: import("@sinclair/typebox").TBoolean;
213
+ }>]>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
214
+ title: import("@sinclair/typebox").TString;
215
+ slug: import("@sinclair/typebox").TString;
216
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
217
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
218
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
219
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
220
+ openQuotaSize: import("@sinclair/typebox").TInteger;
221
+ category: import("@sinclair/typebox").TString;
222
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
223
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
224
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
225
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
226
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
227
+ signupsPublic: import("@sinclair/typebox").TBoolean;
228
+ }>, import("@sinclair/typebox").TObject<{
229
+ draft: import("@sinclair/typebox").TBoolean;
230
+ listed: import("@sinclair/typebox").TBoolean;
231
+ }>]>, import("@sinclair/typebox").TObject<{
232
+ verificationEmail: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
233
+ }>]>, import("@sinclair/typebox").TObject<{
234
+ quotas: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TPartial<import("@sinclair/typebox").TObject<{
235
+ id: import("@sinclair/typebox").TString;
236
+ }>>, import("@sinclair/typebox").TObject<{
237
+ title: import("@sinclair/typebox").TString;
238
+ size: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
239
+ }>]>>;
240
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TPartial<import("@sinclair/typebox").TObject<{
241
+ id: import("@sinclair/typebox").TString;
242
+ }>>, import("@sinclair/typebox").TObject<{
243
+ question: import("@sinclair/typebox").TString;
244
+ type: import("@sinclair/typebox").TEnum<typeof import("../..").QuestionType>;
245
+ options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TNull]>;
246
+ required: import("@sinclair/typebox").TBoolean;
247
+ public: import("@sinclair/typebox").TBoolean;
248
+ }>]>>;
249
+ moveSignupsToQueue: import("@sinclair/typebox").TBoolean;
250
+ updatedAt: import("@sinclair/typebox").TString;
251
+ }>]>>;
252
+ /** Response schema when an event is fetched as part of an editable signup. */
253
+ export declare const userEventForSignup: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
254
+ id: import("@sinclair/typebox").TString;
255
+ }>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
256
+ title: import("@sinclair/typebox").TString;
257
+ slug: import("@sinclair/typebox").TString;
258
+ date: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
259
+ endDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
260
+ registrationStartDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
261
+ registrationEndDate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
262
+ openQuotaSize: import("@sinclair/typebox").TInteger;
263
+ category: import("@sinclair/typebox").TString;
264
+ description: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
265
+ price: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
266
+ location: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
267
+ webpageUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
268
+ facebookUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
269
+ signupsPublic: import("@sinclair/typebox").TBoolean;
270
+ }>, import("@sinclair/typebox").TObject<{
271
+ nameQuestion: import("@sinclair/typebox").TBoolean;
272
+ emailQuestion: import("@sinclair/typebox").TBoolean;
273
+ }>]>, import("@sinclair/typebox").TObject<{
274
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
275
+ id: import("@sinclair/typebox").TString;
276
+ }>, import("@sinclair/typebox").TObject<{
277
+ question: import("@sinclair/typebox").TString;
278
+ type: import("@sinclair/typebox").TEnum<typeof import("../..").QuestionType>;
279
+ options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TNull]>;
280
+ required: import("@sinclair/typebox").TBoolean;
281
+ public: import("@sinclair/typebox").TBoolean;
282
+ }>]>>;
283
+ }>]>;
284
+ /** Path parameters necessary to fetch an event from the admin API. */
285
+ export declare const adminEventPathParams: import("@sinclair/typebox").TObject<{
286
+ id: import("@sinclair/typebox").TString;
287
+ }>;
288
+ /** Path parameters necessary to fetch an event from the public API. */
289
+ export declare const userEventPathParams: import("@sinclair/typebox").TObject<{
290
+ slug: import("@sinclair/typebox").TString;
291
+ }>;
292
+ /** Event ID type. Randomly generated alphanumeric string. */
293
+ export type EventID = Static<typeof eventID>;
294
+ /** Event slug type. */
295
+ export type EventSlug = Static<typeof eventSlug>;
296
+ /** Path parameters necessary to fetch an event from the admin API. */
297
+ export type AdminEventPathParams = Static<typeof adminEventPathParams>;
298
+ /** Path parameters necessary to fetch an event from the public API. */
299
+ export type UserEventPathParams = Static<typeof userEventPathParams>;
300
+ /** Request body for creating an event. */
301
+ export type EventCreateBody = Static<typeof eventCreateBody>;
302
+ /** Request body for editing an existing event. */
303
+ export type EventUpdateBody = Static<typeof eventUpdateBody>;
304
+ /** Response schema for fetching or modifying an event in the admin API. */
305
+ export type AdminEventResponse = Static<typeof adminEventResponse>;
306
+ /** Response schema for fetching an event from the public API. */
307
+ export type UserEventResponse = Static<typeof userEventResponse>;
308
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/event/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAKjD,OAAO,EAGL,OAAO,EAEP,SAAS,EAEV,MAAM,cAAc,CAAC;AAEtB,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAmE/B,uEAAuE;;;;;;IAtDtE,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAmD9B,uEAAuE;;;;;;;;IA3CrE,CAAC;AAEH,0CAA0C;AAC1C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM1B,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAezB,CAAC;AAEJ,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM7B,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,oBAAoB;;EAE/B,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,mBAAmB;;EAE9B,CAAC;AAEH,6DAA6D;AAC7D,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAC7C,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;AAEjD,sEAAsE;AACtE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,kDAAkD;AAClD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userEventPathParams = exports.adminEventPathParams = exports.userEventForSignup = exports.eventUpdateBody = exports.eventCreateBody = exports.userEventResponse = exports.adminEventResponse = void 0;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ const question_1 = require("../question");
6
+ const quota_1 = require("../quota");
7
+ const quotaWithSignups_1 = require("../quotaWithSignups");
8
+ const attributes_1 = require("./attributes");
9
+ /** Response schema for fetching or modifying an event in the admin API. */
10
+ exports.adminEventResponse = typebox_1.Type.Intersect([
11
+ attributes_1.eventIdentity,
12
+ attributes_1.adminFullEventAttributes,
13
+ typebox_1.Type.Object({
14
+ questions: typebox_1.Type.Array(question_1.question),
15
+ quotas: typebox_1.Type.Array(quotaWithSignups_1.adminQuotaWithSignups),
16
+ updatedAt: typebox_1.Type.String({
17
+ description: 'Last update time of the event. Used for edit conflict handling.',
18
+ format: 'date-time',
19
+ }),
20
+ }),
21
+ ]);
22
+ /** Response schema for fetching an event from the public API. */
23
+ exports.userEventResponse = typebox_1.Type.Intersect([
24
+ attributes_1.eventIdentity,
25
+ attributes_1.userFullEventAttributes,
26
+ typebox_1.Type.Object({
27
+ questions: typebox_1.Type.Array(question_1.question),
28
+ quotas: typebox_1.Type.Array(quotaWithSignups_1.userQuotaWithSignups),
29
+ }),
30
+ attributes_1.eventDynamicAttributes,
31
+ ]);
32
+ /** Request body for creating an event. */
33
+ exports.eventCreateBody = typebox_1.Type.Intersect([
34
+ attributes_1.adminFullEventAttributes,
35
+ typebox_1.Type.Object({
36
+ quotas: typebox_1.Type.Array(quota_1.quotaCreate),
37
+ questions: typebox_1.Type.Array(question_1.questionCreate),
38
+ }),
39
+ ]);
40
+ /** Request body for editing an existing event. */
41
+ exports.eventUpdateBody = typebox_1.Type.Partial(typebox_1.Type.Intersect([
42
+ attributes_1.adminFullEventAttributes,
43
+ typebox_1.Type.Object({
44
+ quotas: typebox_1.Type.Array(quota_1.quotaUpdate),
45
+ questions: typebox_1.Type.Array(question_1.questionUpdate),
46
+ moveSignupsToQueue: typebox_1.Type.Boolean({
47
+ default: false,
48
+ description: 'Whether to allow moving signups to the queue, if caused by quota changes.',
49
+ }),
50
+ updatedAt: typebox_1.Type.String({
51
+ format: 'date-time',
52
+ description: 'Last update time of the event. An edit conflict is detected if this does not match the update '
53
+ + 'date on the server.',
54
+ }),
55
+ }),
56
+ ]));
57
+ /** Response schema when an event is fetched as part of an editable signup. */
58
+ exports.userEventForSignup = typebox_1.Type.Intersect([
59
+ attributes_1.eventIdentity,
60
+ attributes_1.userFullEventAttributes,
61
+ typebox_1.Type.Object({
62
+ questions: typebox_1.Type.Array(question_1.question),
63
+ }),
64
+ ]);
65
+ /** Path parameters necessary to fetch an event from the admin API. */
66
+ exports.adminEventPathParams = typebox_1.Type.Object({
67
+ id: attributes_1.eventID,
68
+ });
69
+ /** Path parameters necessary to fetch an event from the public API. */
70
+ exports.userEventPathParams = typebox_1.Type.Object({
71
+ slug: attributes_1.eventSlug,
72
+ });