chukyo-sdk 0.1.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 (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/dist/cjs/albo/client.js +133 -0
  4. package/dist/cjs/albo/index.js +55 -0
  5. package/dist/cjs/albo/parser/albo.js +110 -0
  6. package/dist/cjs/albo/types/albo.js +351 -0
  7. package/dist/cjs/albo/types/alboCalendar.js +51 -0
  8. package/dist/cjs/albo/types/alboCommon.js +55 -0
  9. package/dist/cjs/albo/types/alboInformation.js +136 -0
  10. package/dist/cjs/albo/types/alboMenu.js +92 -0
  11. package/dist/cjs/albo/types/alboQuestionnaire.js +229 -0
  12. package/dist/cjs/albo/types/alboSharedItem.js +137 -0
  13. package/dist/cjs/albo/types/alboSystem.js +103 -0
  14. package/dist/cjs/albo/types/alboUniversalForm.js +51 -0
  15. package/dist/cjs/common/dom.js +137 -0
  16. package/dist/cjs/common/utils.js +29 -0
  17. package/dist/cjs/constants.js +127 -0
  18. package/dist/cjs/core/request.js +39 -0
  19. package/dist/cjs/cubics/client.js +49 -0
  20. package/dist/cjs/cubics/index.js +22 -0
  21. package/dist/cjs/cubics/parser/cubics.js +103 -0
  22. package/dist/cjs/cubics/types/cubics.js +90 -0
  23. package/dist/cjs/errors.js +55 -0
  24. package/dist/cjs/index.js +50 -0
  25. package/dist/cjs/manabo/client.js +135 -0
  26. package/dist/cjs/manabo/index.js +44 -0
  27. package/dist/cjs/manabo/parser/manaboClass.js +386 -0
  28. package/dist/cjs/manabo/parser/manaboEntry.js +38 -0
  29. package/dist/cjs/manabo/parser/manaboMail.js +153 -0
  30. package/dist/cjs/manabo/parser/manaboNews.js +26 -0
  31. package/dist/cjs/manabo/parser/manaboTimetable.js +93 -0
  32. package/dist/cjs/manabo/types/manaboClass.js +223 -0
  33. package/dist/cjs/manabo/types/manaboEntry.js +43 -0
  34. package/dist/cjs/manabo/types/manaboMail.js +117 -0
  35. package/dist/cjs/manabo/types/manaboNews.js +20 -0
  36. package/dist/cjs/manabo/types/manaboTimetable.js +79 -0
  37. package/dist/cjs/package.json +1 -0
  38. package/dist/cjs/shib/builder.js +239 -0
  39. package/dist/cjs/shib/index.js +32 -0
  40. package/dist/cjs/shib/parser/shibLogin.js +138 -0
  41. package/dist/cjs/shib/parser/shibUser.js +51 -0
  42. package/dist/cjs/shib/types/common.js +2 -0
  43. package/dist/cjs/shib/types/shibLogin.js +92 -0
  44. package/dist/cjs/shib/types/shibUser.js +44 -0
  45. package/dist/cjs/transports/fetch.js +84 -0
  46. package/dist/cjs/types.js +9 -0
  47. package/dist/esm/albo/client.d.ts +80 -0
  48. package/dist/esm/albo/client.d.ts.map +1 -0
  49. package/dist/esm/albo/client.js +129 -0
  50. package/dist/esm/albo/index.d.ts +12 -0
  51. package/dist/esm/albo/index.d.ts.map +1 -0
  52. package/dist/esm/albo/index.js +11 -0
  53. package/dist/esm/albo/parser/albo.d.ts +69 -0
  54. package/dist/esm/albo/parser/albo.d.ts.map +1 -0
  55. package/dist/esm/albo/parser/albo.js +84 -0
  56. package/dist/esm/albo/types/albo.d.ts +460 -0
  57. package/dist/esm/albo/types/albo.d.ts.map +1 -0
  58. package/dist/esm/albo/types/albo.js +348 -0
  59. package/dist/esm/albo/types/alboCalendar.d.ts +58 -0
  60. package/dist/esm/albo/types/alboCalendar.d.ts.map +1 -0
  61. package/dist/esm/albo/types/alboCalendar.js +48 -0
  62. package/dist/esm/albo/types/alboCommon.d.ts +52 -0
  63. package/dist/esm/albo/types/alboCommon.d.ts.map +1 -0
  64. package/dist/esm/albo/types/alboCommon.js +51 -0
  65. package/dist/esm/albo/types/alboInformation.d.ts +214 -0
  66. package/dist/esm/albo/types/alboInformation.d.ts.map +1 -0
  67. package/dist/esm/albo/types/alboInformation.js +133 -0
  68. package/dist/esm/albo/types/alboMenu.d.ts +114 -0
  69. package/dist/esm/albo/types/alboMenu.d.ts.map +1 -0
  70. package/dist/esm/albo/types/alboMenu.js +89 -0
  71. package/dist/esm/albo/types/alboQuestionnaire.d.ts +442 -0
  72. package/dist/esm/albo/types/alboQuestionnaire.d.ts.map +1 -0
  73. package/dist/esm/albo/types/alboQuestionnaire.js +226 -0
  74. package/dist/esm/albo/types/alboSharedItem.d.ts +205 -0
  75. package/dist/esm/albo/types/alboSharedItem.d.ts.map +1 -0
  76. package/dist/esm/albo/types/alboSharedItem.js +134 -0
  77. package/dist/esm/albo/types/alboSystem.d.ts +129 -0
  78. package/dist/esm/albo/types/alboSystem.d.ts.map +1 -0
  79. package/dist/esm/albo/types/alboSystem.js +100 -0
  80. package/dist/esm/albo/types/alboUniversalForm.d.ts +63 -0
  81. package/dist/esm/albo/types/alboUniversalForm.d.ts.map +1 -0
  82. package/dist/esm/albo/types/alboUniversalForm.js +48 -0
  83. package/dist/esm/common/dom.d.ts +35 -0
  84. package/dist/esm/common/dom.d.ts.map +1 -0
  85. package/dist/esm/common/dom.js +120 -0
  86. package/dist/esm/common/utils.d.ts +15 -0
  87. package/dist/esm/common/utils.d.ts.map +1 -0
  88. package/dist/esm/common/utils.js +22 -0
  89. package/dist/esm/constants.d.ts +113 -0
  90. package/dist/esm/constants.d.ts.map +1 -0
  91. package/dist/esm/constants.js +124 -0
  92. package/dist/esm/core/request.d.ts +29 -0
  93. package/dist/esm/core/request.d.ts.map +1 -0
  94. package/dist/esm/core/request.js +33 -0
  95. package/dist/esm/cubics/client.d.ts +13 -0
  96. package/dist/esm/cubics/client.d.ts.map +1 -0
  97. package/dist/esm/cubics/client.js +45 -0
  98. package/dist/esm/cubics/index.d.ts +4 -0
  99. package/dist/esm/cubics/index.d.ts.map +1 -0
  100. package/dist/esm/cubics/index.js +3 -0
  101. package/dist/esm/cubics/parser/cubics.d.ts +8 -0
  102. package/dist/esm/cubics/parser/cubics.d.ts.map +1 -0
  103. package/dist/esm/cubics/parser/cubics.js +99 -0
  104. package/dist/esm/cubics/types/cubics.d.ts +94 -0
  105. package/dist/esm/cubics/types/cubics.d.ts.map +1 -0
  106. package/dist/esm/cubics/types/cubics.js +87 -0
  107. package/dist/esm/errors.d.ts +46 -0
  108. package/dist/esm/errors.d.ts.map +1 -0
  109. package/dist/esm/errors.js +46 -0
  110. package/dist/esm/index.d.ts +19 -0
  111. package/dist/esm/index.d.ts.map +1 -0
  112. package/dist/esm/index.js +25 -0
  113. package/dist/esm/manabo/client.d.ts +75 -0
  114. package/dist/esm/manabo/client.d.ts.map +1 -0
  115. package/dist/esm/manabo/client.js +131 -0
  116. package/dist/esm/manabo/index.d.ts +12 -0
  117. package/dist/esm/manabo/index.d.ts.map +1 -0
  118. package/dist/esm/manabo/index.js +11 -0
  119. package/dist/esm/manabo/parser/manaboClass.d.ts +9 -0
  120. package/dist/esm/manabo/parser/manaboClass.d.ts.map +1 -0
  121. package/dist/esm/manabo/parser/manaboClass.js +377 -0
  122. package/dist/esm/manabo/parser/manaboEntry.d.ts +8 -0
  123. package/dist/esm/manabo/parser/manaboEntry.d.ts.map +1 -0
  124. package/dist/esm/manabo/parser/manaboEntry.js +33 -0
  125. package/dist/esm/manabo/parser/manaboMail.d.ts +8 -0
  126. package/dist/esm/manabo/parser/manaboMail.d.ts.map +1 -0
  127. package/dist/esm/manabo/parser/manaboMail.js +145 -0
  128. package/dist/esm/manabo/parser/manaboNews.d.ts +7 -0
  129. package/dist/esm/manabo/parser/manaboNews.d.ts.map +1 -0
  130. package/dist/esm/manabo/parser/manaboNews.js +22 -0
  131. package/dist/esm/manabo/parser/manaboTimetable.d.ts +4 -0
  132. package/dist/esm/manabo/parser/manaboTimetable.d.ts.map +1 -0
  133. package/dist/esm/manabo/parser/manaboTimetable.js +89 -0
  134. package/dist/esm/manabo/types/manaboClass.d.ts +294 -0
  135. package/dist/esm/manabo/types/manaboClass.d.ts.map +1 -0
  136. package/dist/esm/manabo/types/manaboClass.js +220 -0
  137. package/dist/esm/manabo/types/manaboEntry.d.ts +24 -0
  138. package/dist/esm/manabo/types/manaboEntry.d.ts.map +1 -0
  139. package/dist/esm/manabo/types/manaboEntry.js +40 -0
  140. package/dist/esm/manabo/types/manaboMail.d.ts +103 -0
  141. package/dist/esm/manabo/types/manaboMail.d.ts.map +1 -0
  142. package/dist/esm/manabo/types/manaboMail.js +114 -0
  143. package/dist/esm/manabo/types/manaboNews.d.ts +15 -0
  144. package/dist/esm/manabo/types/manaboNews.d.ts.map +1 -0
  145. package/dist/esm/manabo/types/manaboNews.js +17 -0
  146. package/dist/esm/manabo/types/manaboTimetable.d.ts +88 -0
  147. package/dist/esm/manabo/types/manaboTimetable.d.ts.map +1 -0
  148. package/dist/esm/manabo/types/manaboTimetable.js +76 -0
  149. package/dist/esm/package.json +1 -0
  150. package/dist/esm/shib/builder.d.ts +154 -0
  151. package/dist/esm/shib/builder.d.ts.map +1 -0
  152. package/dist/esm/shib/builder.js +212 -0
  153. package/dist/esm/shib/index.d.ts +15 -0
  154. package/dist/esm/shib/index.d.ts.map +1 -0
  155. package/dist/esm/shib/index.js +14 -0
  156. package/dist/esm/shib/parser/shibLogin.d.ts +47 -0
  157. package/dist/esm/shib/parser/shibLogin.d.ts.map +1 -0
  158. package/dist/esm/shib/parser/shibLogin.js +127 -0
  159. package/dist/esm/shib/parser/shibUser.d.ts +11 -0
  160. package/dist/esm/shib/parser/shibUser.d.ts.map +1 -0
  161. package/dist/esm/shib/parser/shibUser.js +46 -0
  162. package/dist/esm/shib/types/common.d.ts +20 -0
  163. package/dist/esm/shib/types/common.d.ts.map +1 -0
  164. package/dist/esm/shib/types/common.js +1 -0
  165. package/dist/esm/shib/types/shibLogin.d.ts +62 -0
  166. package/dist/esm/shib/types/shibLogin.d.ts.map +1 -0
  167. package/dist/esm/shib/types/shibLogin.js +89 -0
  168. package/dist/esm/shib/types/shibUser.d.ts +36 -0
  169. package/dist/esm/shib/types/shibUser.d.ts.map +1 -0
  170. package/dist/esm/shib/types/shibUser.js +41 -0
  171. package/dist/esm/transports/fetch.d.ts +36 -0
  172. package/dist/esm/transports/fetch.d.ts.map +1 -0
  173. package/dist/esm/transports/fetch.js +80 -0
  174. package/dist/esm/types.d.ts +71 -0
  175. package/dist/esm/types.d.ts.map +1 -0
  176. package/dist/esm/types.js +8 -0
  177. package/package.json +72 -0
@@ -0,0 +1,214 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * お知らせ詳細(GET /api/information/view/{uuid})の本体。
4
+ * 一覧の 1 件(AlboInformationItemSchema)より項目が多く、本文 HTML や配信設定を含む。
5
+ */
6
+ export declare const AlboInformationDetailResultSchema: z.ZodObject<{
7
+ uuid: z.ZodString;
8
+ publish_from: z.ZodString;
9
+ publish_from_en: z.ZodNullable<z.ZodString>;
10
+ publish_department: z.ZodNullable<z.ZodString>;
11
+ publish_department_en: z.ZodNullable<z.ZodString>;
12
+ publish_start_at: z.ZodNumber;
13
+ publish_end_at: z.ZodNumber;
14
+ title: z.ZodString;
15
+ title_en: z.ZodNullable<z.ZodString>;
16
+ content: z.ZodString;
17
+ content_en: z.ZodNullable<z.ZodString>;
18
+ priority: z.ZodNumber;
19
+ event_title: z.ZodNullable<z.ZodString>;
20
+ event_title_en: z.ZodNullable<z.ZodString>;
21
+ event_start_at: z.ZodNullable<z.ZodNumber>;
22
+ event_end_at: z.ZodNullable<z.ZodNumber>;
23
+ is_read_receipt: z.ZodNullable<z.ZodUnknown>;
24
+ is_need_resend: z.ZodNullable<z.ZodUnknown>;
25
+ is_send_notification: z.ZodBoolean;
26
+ is_send_mail_notification: z.ZodNumber;
27
+ is_active: z.ZodBoolean;
28
+ mail_from: z.ZodNullable<z.ZodString>;
29
+ options: z.ZodNullable<z.ZodUnknown>;
30
+ created_by: z.ZodNullable<z.ZodString>;
31
+ updated_by: z.ZodNullable<z.ZodString>;
32
+ created_at: z.ZodNumber;
33
+ updated_at: z.ZodNumber;
34
+ is_template: z.ZodNumber;
35
+ is_public: z.ZodBoolean;
36
+ has_event: z.ZodBoolean;
37
+ is_read: z.ZodBoolean;
38
+ is_pinned: z.ZodBoolean;
39
+ is_reacted_good: z.ZodBoolean;
40
+ good_count: z.ZodNumber;
41
+ status_period: z.ZodString;
42
+ category: z.ZodObject<{
43
+ uuid: z.ZodString;
44
+ name: z.ZodString;
45
+ name_en: z.ZodNullable<z.ZodString>;
46
+ description: z.ZodNullable<z.ZodString>;
47
+ description_en: z.ZodNullable<z.ZodString>;
48
+ order: z.ZodNumber;
49
+ is_for_guest: z.ZodBoolean;
50
+ created_by: z.ZodString;
51
+ updated_by: z.ZodNullable<z.ZodString>;
52
+ created_at: z.ZodNumber;
53
+ updated_at: z.ZodNumber;
54
+ }, z.core.$strip>;
55
+ permission_uuid: z.ZodString;
56
+ target_uuid: z.ZodString;
57
+ class_timetable: z.ZodNullable<z.ZodUnknown>;
58
+ files: z.ZodNullable<z.ZodArray<z.ZodObject<{
59
+ uuid: z.ZodString;
60
+ file_name: z.ZodString;
61
+ mime_type: z.ZodString;
62
+ is_thumb_exists: z.ZodBoolean;
63
+ created_by: z.ZodString;
64
+ created_at: z.ZodNumber;
65
+ }, z.core.$strip>>>;
66
+ personal_files: z.ZodNullable<z.ZodArray<z.ZodObject<{
67
+ uuid: z.ZodString;
68
+ file_name: z.ZodString;
69
+ mime_type: z.ZodString;
70
+ is_thumb_exists: z.ZodBoolean;
71
+ created_by: z.ZodString;
72
+ created_at: z.ZodNumber;
73
+ }, z.core.$strip>>>;
74
+ images: z.ZodNullable<z.ZodArray<z.ZodObject<{
75
+ uuid: z.ZodString;
76
+ file_name: z.ZodString;
77
+ mime_type: z.ZodString;
78
+ is_thumb_exists: z.ZodBoolean;
79
+ created_by: z.ZodString;
80
+ created_at: z.ZodNumber;
81
+ }, z.core.$strip>>>;
82
+ hashtags: z.ZodArray<z.ZodUnknown>;
83
+ event_gcal_link: z.ZodString;
84
+ event_gcal_link_en: z.ZodString;
85
+ }, z.core.$strip>;
86
+ export type AlboInformationDetailResultDTO = z.infer<typeof AlboInformationDetailResultSchema>;
87
+ /** お知らせ詳細取得 API のレスポンス全体 */
88
+ export declare const AlboInformationDetailSchema: z.ZodObject<{
89
+ is_successful: z.ZodBoolean;
90
+ code: z.ZodNumber;
91
+ api_version: z.ZodNumber;
92
+ gmt: z.ZodNumber;
93
+ user: z.ZodNullable<z.ZodUnknown>;
94
+ result: z.ZodObject<{
95
+ uuid: z.ZodString;
96
+ publish_from: z.ZodString;
97
+ publish_from_en: z.ZodNullable<z.ZodString>;
98
+ publish_department: z.ZodNullable<z.ZodString>;
99
+ publish_department_en: z.ZodNullable<z.ZodString>;
100
+ publish_start_at: z.ZodNumber;
101
+ publish_end_at: z.ZodNumber;
102
+ title: z.ZodString;
103
+ title_en: z.ZodNullable<z.ZodString>;
104
+ content: z.ZodString;
105
+ content_en: z.ZodNullable<z.ZodString>;
106
+ priority: z.ZodNumber;
107
+ event_title: z.ZodNullable<z.ZodString>;
108
+ event_title_en: z.ZodNullable<z.ZodString>;
109
+ event_start_at: z.ZodNullable<z.ZodNumber>;
110
+ event_end_at: z.ZodNullable<z.ZodNumber>;
111
+ is_read_receipt: z.ZodNullable<z.ZodUnknown>;
112
+ is_need_resend: z.ZodNullable<z.ZodUnknown>;
113
+ is_send_notification: z.ZodBoolean;
114
+ is_send_mail_notification: z.ZodNumber;
115
+ is_active: z.ZodBoolean;
116
+ mail_from: z.ZodNullable<z.ZodString>;
117
+ options: z.ZodNullable<z.ZodUnknown>;
118
+ created_by: z.ZodNullable<z.ZodString>;
119
+ updated_by: z.ZodNullable<z.ZodString>;
120
+ created_at: z.ZodNumber;
121
+ updated_at: z.ZodNumber;
122
+ is_template: z.ZodNumber;
123
+ is_public: z.ZodBoolean;
124
+ has_event: z.ZodBoolean;
125
+ is_read: z.ZodBoolean;
126
+ is_pinned: z.ZodBoolean;
127
+ is_reacted_good: z.ZodBoolean;
128
+ good_count: z.ZodNumber;
129
+ status_period: z.ZodString;
130
+ category: z.ZodObject<{
131
+ uuid: z.ZodString;
132
+ name: z.ZodString;
133
+ name_en: z.ZodNullable<z.ZodString>;
134
+ description: z.ZodNullable<z.ZodString>;
135
+ description_en: z.ZodNullable<z.ZodString>;
136
+ order: z.ZodNumber;
137
+ is_for_guest: z.ZodBoolean;
138
+ created_by: z.ZodString;
139
+ updated_by: z.ZodNullable<z.ZodString>;
140
+ created_at: z.ZodNumber;
141
+ updated_at: z.ZodNumber;
142
+ }, z.core.$strip>;
143
+ permission_uuid: z.ZodString;
144
+ target_uuid: z.ZodString;
145
+ class_timetable: z.ZodNullable<z.ZodUnknown>;
146
+ files: z.ZodNullable<z.ZodArray<z.ZodObject<{
147
+ uuid: z.ZodString;
148
+ file_name: z.ZodString;
149
+ mime_type: z.ZodString;
150
+ is_thumb_exists: z.ZodBoolean;
151
+ created_by: z.ZodString;
152
+ created_at: z.ZodNumber;
153
+ }, z.core.$strip>>>;
154
+ personal_files: z.ZodNullable<z.ZodArray<z.ZodObject<{
155
+ uuid: z.ZodString;
156
+ file_name: z.ZodString;
157
+ mime_type: z.ZodString;
158
+ is_thumb_exists: z.ZodBoolean;
159
+ created_by: z.ZodString;
160
+ created_at: z.ZodNumber;
161
+ }, z.core.$strip>>>;
162
+ images: z.ZodNullable<z.ZodArray<z.ZodObject<{
163
+ uuid: z.ZodString;
164
+ file_name: z.ZodString;
165
+ mime_type: z.ZodString;
166
+ is_thumb_exists: z.ZodBoolean;
167
+ created_by: z.ZodString;
168
+ created_at: z.ZodNumber;
169
+ }, z.core.$strip>>>;
170
+ hashtags: z.ZodArray<z.ZodUnknown>;
171
+ event_gcal_link: z.ZodString;
172
+ event_gcal_link_en: z.ZodString;
173
+ }, z.core.$strip>;
174
+ }, z.core.$strip>;
175
+ export type AlboInformationDetailDTO = z.infer<typeof AlboInformationDetailSchema>;
176
+ /**
177
+ * お知らせカテゴリツリーの 1 ノード(GET /api/information-category/tree)。
178
+ * `children` に同型のノードがぶら下がる再帰構造。
179
+ */
180
+ export interface AlboInformationCategoryNodeDTO {
181
+ /** カテゴリ UUID */
182
+ uuid: string;
183
+ /** カテゴリ名(例: "教務") */
184
+ name: string;
185
+ /** カテゴリ名(英語。無ければ null) */
186
+ name_en: string | null;
187
+ /** 説明(無ければ null) */
188
+ description: string | null;
189
+ /** 説明(英語。無ければ null) */
190
+ description_en: string | null;
191
+ /** 表示順 */
192
+ order: number;
193
+ /** ゲスト向けに公開するか(0/1 の数値フラグ) */
194
+ is_for_guest: number;
195
+ /** 子カテゴリ(無ければ空配列) */
196
+ children: AlboInformationCategoryNodeDTO[];
197
+ /** このカテゴリ配下の未読お知らせ数 */
198
+ unread_count: number;
199
+ }
200
+ /** お知らせカテゴリツリーの 1 ノード。`children` に同型ノードがぶら下がる再帰構造 */
201
+ export declare const AlboInformationCategoryNodeSchema: z.ZodType<AlboInformationCategoryNodeDTO>;
202
+ /** お知らせカテゴリツリー取得 API のレスポンス全体 */
203
+ export declare const AlboInformationCategoryTreeSchema: z.ZodObject<{
204
+ is_successful: z.ZodBoolean;
205
+ code: z.ZodNumber;
206
+ api_version: z.ZodNumber;
207
+ gmt: z.ZodNumber;
208
+ user: z.ZodNullable<z.ZodUnknown>;
209
+ result: z.ZodObject<{
210
+ items: z.ZodArray<z.ZodType<AlboInformationCategoryNodeDTO, unknown, z.core.$ZodTypeInternals<AlboInformationCategoryNodeDTO, unknown>>>;
211
+ }, z.core.$strip>;
212
+ }, z.core.$strip>;
213
+ export type AlboInformationCategoryTreeDTO = z.infer<typeof AlboInformationCategoryTreeSchema>;
214
+ //# sourceMappingURL=alboInformation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alboInformation.d.ts","sourceRoot":"","sources":["../../../../src/albo/types/alboInformation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2F5C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE/F,4BAA4B;AAC5B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAkD,CAAC;AAE3F,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC3C,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oBAAoB;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,uBAAuB;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,QAAQ,EAAE,8BAA8B,EAAE,CAAC;IAC3C,uBAAuB;IACvB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,qDAAqD;AACrD,eAAO,MAAM,iCAAiC,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAqBvF,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,iCAAiC;;;;;;;;;iBAK7C,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
@@ -0,0 +1,133 @@
1
+ import { z } from "zod";
2
+ import { alboEnvelope } from "./alboCommon";
3
+ import { AlboInformationCategorySchema, AlboInformationFileSchema } from "./albo";
4
+ // ---------------------------------------------------------------------------
5
+ // お知らせ(information)系のうち、一覧(AlboInformationSchema in ./albo)以外。
6
+ // - GET /api/information/view/{uuid} … お知らせ 1 件の詳細
7
+ // - GET /api/information-category/tree … お知らせカテゴリのツリー
8
+ // 既読化・ピン留め・いいね等の操作結果は AlboActionResultSchema(./alboCommon)を使う。
9
+ // ---------------------------------------------------------------------------
10
+ /**
11
+ * お知らせ詳細(GET /api/information/view/{uuid})の本体。
12
+ * 一覧の 1 件(AlboInformationItemSchema)より項目が多く、本文 HTML や配信設定を含む。
13
+ */
14
+ export const AlboInformationDetailResultSchema = z.object({
15
+ /** お知らせ UUID @example "12345678-90ab-cdef-1234-567890abcdef" */
16
+ uuid: z.string().meta({ description: "お知らせ UUID", example: "12345678-90ab-cdef-1234-567890abcdef" }),
17
+ /** 発信元(部署名など) @example "グローバル交流センター" */
18
+ publish_from: z.string().meta({ description: "発信元", example: "グローバル交流センター" }),
19
+ /** 発信元(英語。無ければ null) @example null */
20
+ publish_from_en: z.string().nullable().meta({ description: "発信元(英語)", example: null }),
21
+ /** 発信部署(無ければ null) @example "国際課" */
22
+ publish_department: z.string().nullable().meta({ description: "発信部署", example: "国際課" }),
23
+ /** 発信部署(英語。無ければ null) @example null */
24
+ publish_department_en: z.string().nullable().meta({ description: "発信部署(英語)", example: null }),
25
+ /** 掲載開始日時(UNIX 秒) @example 1783445975 */
26
+ publish_start_at: z.number().meta({ description: "掲載開始日時(UNIX 秒)", example: 1783445975 }),
27
+ /** 掲載終了日時(UNIX 秒) @example 1785000000 */
28
+ publish_end_at: z.number().meta({ description: "掲載終了日時(UNIX 秒)", example: 1785000000 }),
29
+ /** タイトル @example "定期試験の実施について" */
30
+ title: z.string().meta({ description: "タイトル", example: "定期試験の実施について" }),
31
+ /** タイトル(英語。無ければ null) @example null */
32
+ title_en: z.string().nullable().meta({ description: "タイトル(英語)", example: null }),
33
+ /** 本文(HTML 文字列) @example "<p>本文...</p>" */
34
+ content: z.string().meta({ description: "本文(HTML 文字列)", example: "<p>本文...</p>" }),
35
+ /** 本文(英語。無ければ null) @example null */
36
+ content_en: z.string().nullable().meta({ description: "本文(英語)", example: null }),
37
+ /** 優先度 @example 0 */
38
+ priority: z.number().meta({ description: "優先度", example: 0 }),
39
+ /** イベント名(無ければ null) @example null */
40
+ event_title: z.string().nullable().meta({ description: "イベント名", example: null }),
41
+ /** イベント名(英語。無ければ null) @example null */
42
+ event_title_en: z.string().nullable().meta({ description: "イベント名(英語)", example: null }),
43
+ /** イベント開始日時(UNIX 秒。無ければ null) @example null */
44
+ event_start_at: z.number().nullable().meta({ description: "イベント開始日時(UNIX 秒)", example: null }),
45
+ /** イベント終了日時(UNIX 秒。無ければ null) @example null */
46
+ event_end_at: z.number().nullable().meta({ description: "イベント終了日時(UNIX 秒)", example: null }),
47
+ /** 開封確認を要求するか(未設定時 null) @example null */
48
+ is_read_receipt: z.unknown().nullable().meta({ description: "開封確認を要求するか", example: null }),
49
+ /** 再送が必要か(未設定時 null) @example null */
50
+ is_need_resend: z.unknown().nullable().meta({ description: "再送が必要か", example: null }),
51
+ /** アプリ通知を送るか @example false */
52
+ is_send_notification: z.boolean().meta({ description: "アプリ通知を送るか", example: false }),
53
+ /** メール通知を送るか(0/1 の数値フラグ) @example 0 */
54
+ is_send_mail_notification: z.number().meta({ description: "メール通知を送るか(0/1)", example: 0 }),
55
+ /** 有効フラグ @example true */
56
+ is_active: z.boolean().meta({ description: "有効フラグ", example: true }),
57
+ /** 通知メールの差出人(無ければ null) @example null */
58
+ mail_from: z.string().nullable().meta({ description: "通知メールの差出人", example: null }),
59
+ /** 任意オプション(未使用時 null) */
60
+ options: z.unknown().nullable().meta({ description: "任意オプション" }),
61
+ /** 作成者(無ければ null) @example "kyomu" */
62
+ created_by: z.string().nullable().meta({ description: "作成者", example: "kyomu" }),
63
+ /** 更新者(無ければ null) @example null */
64
+ updated_by: z.string().nullable().meta({ description: "更新者", example: null }),
65
+ /** 作成日時(UNIX 秒) @example 1700000000 */
66
+ created_at: z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
67
+ /** 更新日時(UNIX 秒) @example 1700000000 */
68
+ updated_at: z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
69
+ /** テンプレートか(0/1 の数値フラグ) @example 0 */
70
+ is_template: z.number().meta({ description: "テンプレートか(0/1)", example: 0 }),
71
+ /** 公開中か @example true */
72
+ is_public: z.boolean().meta({ description: "公開中か", example: true }),
73
+ /** イベント情報を持つか @example false */
74
+ has_event: z.boolean().meta({ description: "イベント情報を持つか", example: false }),
75
+ /** 既読か @example false */
76
+ is_read: z.boolean().meta({ description: "既読か", example: false }),
77
+ /** ピン留めされているか @example false */
78
+ is_pinned: z.boolean().meta({ description: "ピン留めされているか", example: false }),
79
+ /** 「いいね」済みか @example false */
80
+ is_reacted_good: z.boolean().meta({ description: "「いいね」済みか", example: false }),
81
+ /** 「いいね」数 @example 0 */
82
+ good_count: z.number().meta({ description: "「いいね」数", example: 0 }),
83
+ /** 掲載状態(例: "public") @example "public" */
84
+ status_period: z.string().meta({ description: "掲載状態", example: "public" }),
85
+ /** カテゴリ */
86
+ category: AlboInformationCategorySchema,
87
+ /** 権限 UUID @example "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" */
88
+ permission_uuid: z.string().meta({ description: "権限 UUID", example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }),
89
+ /** 配信対象 UUID @example "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" */
90
+ target_uuid: z.string().meta({ description: "配信対象 UUID", example: "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" }),
91
+ /** 授業時間割との紐付け(無ければ null) @example null */
92
+ class_timetable: z.unknown().nullable().meta({ description: "授業時間割との紐付け", example: null }),
93
+ /** 添付ファイル(無ければ null) @example null */
94
+ files: z.array(AlboInformationFileSchema).nullable().meta({ description: "添付ファイル", example: null }),
95
+ /** 個人向け添付ファイル(無ければ null) @example null */
96
+ personal_files: z.array(AlboInformationFileSchema).nullable().meta({ description: "個人向け添付ファイル", example: null }),
97
+ /** 本文中の画像(無ければ null) @example null */
98
+ images: z.array(AlboInformationFileSchema).nullable().meta({ description: "本文中の画像", example: null }),
99
+ /** ハッシュタグ @example [] */
100
+ hashtags: z.array(z.unknown()).meta({ description: "ハッシュタグ", example: [] }),
101
+ /** Google カレンダー連携リンク(イベントが無ければ "") @example "" */
102
+ event_gcal_link: z.string().meta({ description: "Google カレンダー連携リンク", example: "" }),
103
+ /** Google カレンダー連携リンク(英語。無ければ "") @example "" */
104
+ event_gcal_link_en: z.string().meta({ description: "Google カレンダー連携リンク(英語)", example: "" }),
105
+ });
106
+ /** お知らせ詳細取得 API のレスポンス全体 */
107
+ export const AlboInformationDetailSchema = alboEnvelope(AlboInformationDetailResultSchema);
108
+ /** お知らせカテゴリツリーの 1 ノード。`children` に同型ノードがぶら下がる再帰構造 */
109
+ export const AlboInformationCategoryNodeSchema = z.lazy(() => z.object({
110
+ /** カテゴリ UUID @example "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" */
111
+ uuid: z.string().meta({ description: "カテゴリ UUID", example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }),
112
+ /** カテゴリ名(例: "教務") @example "教務" */
113
+ name: z.string().meta({ description: "カテゴリ名", example: "教務" }),
114
+ /** カテゴリ名(英語。無ければ null) @example null */
115
+ name_en: z.string().nullable().meta({ description: "カテゴリ名(英語)", example: null }),
116
+ /** 説明(無ければ null) @example null */
117
+ description: z.string().nullable().meta({ description: "説明", example: null }),
118
+ /** 説明(英語。無ければ null) @example null */
119
+ description_en: z.string().nullable().meta({ description: "説明(英語)", example: null }),
120
+ /** 表示順 @example 0 */
121
+ order: z.number().meta({ description: "表示順", example: 0 }),
122
+ /** ゲスト向けに公開するか(0/1 の数値フラグ) @example 0 */
123
+ is_for_guest: z.number().meta({ description: "ゲスト向けに公開するか(0/1)", example: 0 }),
124
+ /** 子カテゴリ(無ければ空配列) */
125
+ children: z.array(AlboInformationCategoryNodeSchema).meta({ description: "子カテゴリ", example: [] }),
126
+ /** このカテゴリ配下の未読お知らせ数 @example 0 */
127
+ unread_count: z.number().meta({ description: "このカテゴリ配下の未読お知らせ数", example: 0 }),
128
+ }));
129
+ /** お知らせカテゴリツリー取得 API のレスポンス全体 */
130
+ export const AlboInformationCategoryTreeSchema = alboEnvelope(z.object({
131
+ /** カテゴリツリーの最上位ノード配列 */
132
+ items: z.array(AlboInformationCategoryNodeSchema).meta({ description: "カテゴリツリーの最上位ノード配列" }),
133
+ }));
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ /** メニュー(タブ)1 件 */
3
+ export declare const AlboMenuItemSchema: z.ZodObject<{
4
+ uuid: z.ZodString;
5
+ name: z.ZodString;
6
+ name_en: z.ZodNullable<z.ZodString>;
7
+ description: z.ZodNullable<z.ZodString>;
8
+ description_en: z.ZodNullable<z.ZodString>;
9
+ order: z.ZodNumber;
10
+ start_at: z.ZodNumber;
11
+ end_at: z.ZodNumber;
12
+ created_at: z.ZodNumber;
13
+ updated_at: z.ZodNumber;
14
+ target_uuid: z.ZodString;
15
+ }, z.core.$strip>;
16
+ export type AlboMenuItemDTO = z.infer<typeof AlboMenuItemSchema>;
17
+ /** メニュー一覧取得 API のレスポンス全体 */
18
+ export declare const AlboMenuSchema: z.ZodObject<{
19
+ is_successful: z.ZodBoolean;
20
+ code: z.ZodNumber;
21
+ api_version: z.ZodNumber;
22
+ gmt: z.ZodNumber;
23
+ user: z.ZodNullable<z.ZodUnknown>;
24
+ result: z.ZodObject<{
25
+ items: z.ZodArray<z.ZodObject<{
26
+ uuid: z.ZodString;
27
+ name: z.ZodString;
28
+ name_en: z.ZodNullable<z.ZodString>;
29
+ description: z.ZodNullable<z.ZodString>;
30
+ description_en: z.ZodNullable<z.ZodString>;
31
+ order: z.ZodNumber;
32
+ start_at: z.ZodNumber;
33
+ end_at: z.ZodNumber;
34
+ created_at: z.ZodNumber;
35
+ updated_at: z.ZodNumber;
36
+ target_uuid: z.ZodString;
37
+ }, z.core.$strip>>;
38
+ }, z.core.$strip>;
39
+ }, z.core.$strip>;
40
+ export type AlboMenuDTO = z.infer<typeof AlboMenuSchema>;
41
+ /**
42
+ * メニューに配置される 1 モジュール(お知らせ・学年暦・アンケート等のウィジェット)。
43
+ * `parts` はモジュール種別(type)ごとに構造が大きく異なるため無変換で保持する。
44
+ */
45
+ export declare const AlboMenuModuleSchema: z.ZodObject<{
46
+ uuid: z.ZodString;
47
+ type: z.ZodNumber;
48
+ name: z.ZodString;
49
+ name_en: z.ZodNullable<z.ZodString>;
50
+ description: z.ZodString;
51
+ description_en: z.ZodNullable<z.ZodString>;
52
+ order: z.ZodNumber;
53
+ created_at: z.ZodNumber;
54
+ updated_at: z.ZodNumber;
55
+ target_uuid: z.ZodString;
56
+ parts: z.ZodUnknown;
57
+ }, z.core.$strip>;
58
+ export type AlboMenuModuleDTO = z.infer<typeof AlboMenuModuleSchema>;
59
+ /** メニュー詳細取得 API のレスポンス全体 */
60
+ export declare const AlboMenuDetailSchema: z.ZodObject<{
61
+ is_successful: z.ZodBoolean;
62
+ code: z.ZodNumber;
63
+ api_version: z.ZodNumber;
64
+ gmt: z.ZodNumber;
65
+ user: z.ZodNullable<z.ZodUnknown>;
66
+ result: z.ZodObject<{
67
+ uuid: z.ZodString;
68
+ name: z.ZodString;
69
+ name_en: z.ZodNullable<z.ZodString>;
70
+ description: z.ZodNullable<z.ZodString>;
71
+ description_en: z.ZodNullable<z.ZodString>;
72
+ order: z.ZodNumber;
73
+ start_at: z.ZodNumber;
74
+ end_at: z.ZodNumber;
75
+ created_at: z.ZodNumber;
76
+ updated_at: z.ZodNumber;
77
+ target_uuid: z.ZodString;
78
+ modules: z.ZodArray<z.ZodObject<{
79
+ uuid: z.ZodString;
80
+ type: z.ZodNumber;
81
+ name: z.ZodString;
82
+ name_en: z.ZodNullable<z.ZodString>;
83
+ description: z.ZodString;
84
+ description_en: z.ZodNullable<z.ZodString>;
85
+ order: z.ZodNumber;
86
+ created_at: z.ZodNumber;
87
+ updated_at: z.ZodNumber;
88
+ target_uuid: z.ZodString;
89
+ parts: z.ZodUnknown;
90
+ }, z.core.$strip>>;
91
+ }, z.core.$strip>;
92
+ }, z.core.$strip>;
93
+ export type AlboMenuDetailDTO = z.infer<typeof AlboMenuDetailSchema>;
94
+ /**
95
+ * メニューレイアウト取得 API のレスポンス全体。
96
+ * `layout` と `calendar_display_setting` は JSON を文字列化した値がそのまま入っている
97
+ * (必要ならさらに JSON.parse する)。保存 API(menu-layout/save)も同じ形で返る。
98
+ */
99
+ export declare const AlboMenuLayoutSchema: z.ZodObject<{
100
+ is_successful: z.ZodBoolean;
101
+ code: z.ZodNumber;
102
+ api_version: z.ZodNumber;
103
+ gmt: z.ZodNumber;
104
+ user: z.ZodNullable<z.ZodUnknown>;
105
+ result: z.ZodObject<{
106
+ menu_uuid: z.ZodString;
107
+ layout: z.ZodString;
108
+ calendar_display_setting: z.ZodString;
109
+ created_at: z.ZodNumber;
110
+ updated_at: z.ZodNumber;
111
+ }, z.core.$strip>;
112
+ }, z.core.$strip>;
113
+ export type AlboMenuLayoutDTO = z.infer<typeof AlboMenuLayoutSchema>;
114
+ //# sourceMappingURL=alboMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alboMenu.d.ts","sourceRoot":"","sources":["../../../../src/albo/types/alboMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,kBAAkB;AAClB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAuB7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,4BAA4B;AAC5B,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;iBAK1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAuB/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKhC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAahC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { z } from "zod";
2
+ import { alboEnvelope } from "./alboCommon";
3
+ // ---------------------------------------------------------------------------
4
+ // メニュー(menu)系。ポータルのタブ/ページとその配置。
5
+ // - GET /api/menu … メニュー(タブ)一覧
6
+ // - GET /api/menu/view/{uuid} … メニュー詳細(配置モジュールを含む)
7
+ // - GET /api/menu-layout/view/{uuid} … メニューのレイアウト設定
8
+ // - POST /api/menu-layout/save/{uuid} … レイアウト保存(レスポンスは view と同型)
9
+ // ---------------------------------------------------------------------------
10
+ /** メニュー(タブ)1 件 */
11
+ export const AlboMenuItemSchema = z.object({
12
+ /** メニュー UUID @example "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" */
13
+ uuid: z.string().meta({ description: "メニュー UUID", example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }),
14
+ /** メニュー名(例: "ホーム") @example "ホーム" */
15
+ name: z.string().meta({ description: "メニュー名", example: "ホーム" }),
16
+ /** メニュー名(英語。無ければ null) @example null */
17
+ name_en: z.string().nullable().meta({ description: "メニュー名(英語)", example: null }),
18
+ /** 説明(無ければ null) @example null */
19
+ description: z.string().nullable().meta({ description: "説明", example: null }),
20
+ /** 説明(英語。無ければ null) @example null */
21
+ description_en: z.string().nullable().meta({ description: "説明(英語)", example: null }),
22
+ /** 表示順 @example 0 */
23
+ order: z.number().meta({ description: "表示順", example: 0 }),
24
+ /** 公開開始日時(UNIX 秒) @example 1680000000 */
25
+ start_at: z.number().meta({ description: "公開開始日時(UNIX 秒)", example: 1680000000 }),
26
+ /** 公開終了日時(UNIX 秒。実質無期限の場合 253402268400 等) @example 253402268400 */
27
+ end_at: z.number().meta({ description: "公開終了日時(UNIX 秒)", example: 253402268400 }),
28
+ /** 作成日時(UNIX 秒) @example 1700000000 */
29
+ created_at: z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
30
+ /** 更新日時(UNIX 秒) @example 1700000000 */
31
+ updated_at: z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
32
+ /** 配信対象 UUID @example "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" */
33
+ target_uuid: z.string().meta({ description: "配信対象 UUID", example: "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" }),
34
+ });
35
+ /** メニュー一覧取得 API のレスポンス全体 */
36
+ export const AlboMenuSchema = alboEnvelope(z.object({
37
+ /** メニュー配列 */
38
+ items: z.array(AlboMenuItemSchema).meta({ description: "メニュー配列" }),
39
+ }));
40
+ /**
41
+ * メニューに配置される 1 モジュール(お知らせ・学年暦・アンケート等のウィジェット)。
42
+ * `parts` はモジュール種別(type)ごとに構造が大きく異なるため無変換で保持する。
43
+ */
44
+ export const AlboMenuModuleSchema = z.object({
45
+ /** モジュール UUID @example "cccccccc-dddd-eeee-ffff-000000000000" */
46
+ uuid: z.string().meta({ description: "モジュール UUID", example: "cccccccc-dddd-eeee-ffff-000000000000" }),
47
+ /** モジュール種別(1=学内システム, 2=お知らせ, 3=アンケート, 4=学年暦, 8=汎用申請 …) @example 2 */
48
+ type: z.number().meta({ description: "モジュール種別(数値コード)", example: 2 }),
49
+ /** モジュール名(例: "お知らせ") @example "お知らせ" */
50
+ name: z.string().meta({ description: "モジュール名", example: "お知らせ" }),
51
+ /** モジュール名(英語。無ければ null) @example null */
52
+ name_en: z.string().nullable().meta({ description: "モジュール名(英語)", example: null }),
53
+ /** 説明 @example "" */
54
+ description: z.string().meta({ description: "説明", example: "" }),
55
+ /** 説明(英語。無ければ null) @example null */
56
+ description_en: z.string().nullable().meta({ description: "説明(英語)", example: null }),
57
+ /** 表示順 @example 0 */
58
+ order: z.number().meta({ description: "表示順", example: 0 }),
59
+ /** 作成日時(UNIX 秒) @example 1700000000 */
60
+ created_at: z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
61
+ /** 更新日時(UNIX 秒) @example 1700000000 */
62
+ updated_at: z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
63
+ /** 配信対象 UUID @example "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" */
64
+ target_uuid: z.string().meta({ description: "配信対象 UUID", example: "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" }),
65
+ /** モジュール固有の設定。種別ごとに形が異なるため無変換で保持する */
66
+ parts: z.unknown().meta({ description: "モジュール固有の設定(種別ごとに形が異なるため無変換で保持)" }),
67
+ });
68
+ /** メニュー詳細取得 API のレスポンス全体 */
69
+ export const AlboMenuDetailSchema = alboEnvelope(AlboMenuItemSchema.extend({
70
+ /** 配置モジュールの配列 */
71
+ modules: z.array(AlboMenuModuleSchema).meta({ description: "配置モジュールの配列" }),
72
+ }));
73
+ /**
74
+ * メニューレイアウト取得 API のレスポンス全体。
75
+ * `layout` と `calendar_display_setting` は JSON を文字列化した値がそのまま入っている
76
+ * (必要ならさらに JSON.parse する)。保存 API(menu-layout/save)も同じ形で返る。
77
+ */
78
+ export const AlboMenuLayoutSchema = alboEnvelope(z.object({
79
+ /** 対象メニューの UUID @example "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" */
80
+ menu_uuid: z.string().meta({ description: "対象メニューの UUID", example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }),
81
+ /** グリッド配置(JSON 文字列) @example "[{\"w\":1,\"h\":33,\"x\":1,\"y\":35,\"i\":\"widget-1\",\"minH\":15}]" */
82
+ layout: z.string().meta({ description: "グリッド配置(JSON 文字列)", example: '[{"w":1,"h":33,"x":1,"y":35,"i":"widget-1","minH":15}]' }),
83
+ /** カレンダー表示設定(JSON 文字列) @example "{}" */
84
+ calendar_display_setting: z.string().meta({ description: "カレンダー表示設定(JSON 文字列)", example: "{}" }),
85
+ /** 作成日時(UNIX 秒) @example 1700000000 */
86
+ created_at: z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
87
+ /** 更新日時(UNIX 秒) @example 1700000000 */
88
+ updated_at: z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
89
+ }));