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,351 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlboPersonalSchema = exports.AlboPersonalUserSchema = exports.AlboPersonalGroupSchema = exports.AlboPersonalAuthProfileSchema = exports.AlboInformationSchema = exports.AlboInformationItemSchema = exports.AlboInformationFileSchema = exports.AlboInformationCategorySchema = exports.AlboTimetableSchema = exports.AlboTimetableItemSchema = exports.AlboTimetableBadgeSchema = exports.AlboCalendarSchema = exports.AlboCalendarItemSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const alboCommon_1 = require("./alboCommon");
6
+ // albo の各 API レスポンスをそのまま検証・保持するスキーマ群。
7
+ // フィールド名は API が返すキーそのまま、値は無変換で通す(パススルー)。
8
+ // --- カレンダー(学年暦) ---------------------------------------------------
9
+ /** 学年暦カレンダーの 1 イベント */
10
+ exports.AlboCalendarItemSchema = zod_1.z.object({
11
+ /** カレンダーソースの UUID @example "ac304d66-b0a8-11f0-afed-06347f3ce845" */
12
+ calendar_source_uuid: zod_1.z.string().meta({ description: "カレンダーソースの UUID", example: "ac304d66-b0a8-11f0-afed-06347f3ce845" }),
13
+ /** イベント名 @example "天皇誕生日(祝日)" */
14
+ summary: zod_1.z.string().meta({ description: "イベント名", example: "天皇誕生日(祝日)" }),
15
+ /** 補足説明(無ければ null) @example "全学休講" */
16
+ description: zod_1.z.string().nullable().meta({ description: "補足説明", example: "全学休講" }),
17
+ /** 開始日時(UNIX 秒) @example 1783445975 */
18
+ start_at: zod_1.z.number().meta({ description: "開始日時(UNIX 秒)", example: 1783445975 }),
19
+ /** 終了日時(UNIX 秒) @example 1783532375 */
20
+ end_at: zod_1.z.number().meta({ description: "終了日時(UNIX 秒)", example: 1783532375 }),
21
+ /** 作成日時(UNIX 秒) @example 1700000000 */
22
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
23
+ });
24
+ /** 学年暦カレンダー取得 API のレスポンス全体 */
25
+ exports.AlboCalendarSchema = (0, alboCommon_1.alboEnvelope)(zod_1.z.object({
26
+ ...alboCommon_1.paginationShape,
27
+ /** カレンダー名 @example "学年暦(学部)" */
28
+ source_name: zod_1.z.string().meta({ description: "カレンダー名", example: "学年暦(学部)" }),
29
+ /** イベント配列 */
30
+ items: zod_1.z.array(exports.AlboCalendarItemSchema).meta({ description: "イベント配列" }),
31
+ }));
32
+ // --- 時間割 -----------------------------------------------------------------
33
+ /** 時間割項目に付くバッジ(学期区分など) */
34
+ exports.AlboTimetableBadgeSchema = zod_1.z.object({
35
+ /** 学期表記 @example "春学期" */
36
+ term: zod_1.z.string().meta({ description: "学期表記", example: "春学期" }),
37
+ });
38
+ /** 時間割の 1 コマ(授業の 1 開講回) */
39
+ exports.AlboTimetableItemSchema = zod_1.z.object({
40
+ /** コマの UUID @example "11111111-2222-3333-4444-555555555555" */
41
+ uuid: zod_1.z.string().meta({ description: "コマの UUID", example: "11111111-2222-3333-4444-555555555555" }),
42
+ /** コマの ID @example "123456" */
43
+ id: zod_1.z.string().meta({ description: "コマの ID", example: "123456" }),
44
+ /** 実施日 @example "2025-06-16" */
45
+ execute_date: zod_1.z.string().meta({ description: "実施日", example: "2025-06-16" }),
46
+ /** 曜日(0=日 〜 6=土) @example 1 */
47
+ day_of_week: zod_1.z.number().meta({ description: "曜日(0=日〜6=土)", example: 1 }),
48
+ /** 時限番号 @example 2 */
49
+ time_number: zod_1.z.number().meta({ description: "時限番号", example: 2 }),
50
+ /** 授業 ID @example "20250001" */
51
+ class_id: zod_1.z.string().meta({ description: "授業 ID", example: "20250001" }),
52
+ /** 授業名 @example "情報リテラシー" */
53
+ class_name: zod_1.z.string().meta({ description: "授業名", example: "情報リテラシー" }),
54
+ /** 学期表記 @example "春学期" */
55
+ term: zod_1.z.string().meta({ description: "学期表記", example: "春学期" }),
56
+ /** キャンパス @example "名古屋" */
57
+ campus: zod_1.z.string().meta({ description: "キャンパス", example: "名古屋" }),
58
+ /** 担当教員 @example "中京 一郎" */
59
+ teacher: zod_1.z.string().meta({ description: "担当教員", example: "中京 一郎" }),
60
+ /** 教室(無ければ null) @example "0号館5F" */
61
+ room: zod_1.z.string().nullable().meta({ description: "教室", example: "0号館5F" }),
62
+ /** メモ @example "" */
63
+ memo: zod_1.z.string().meta({ description: "メモ", example: "" }),
64
+ /** 任意オプション(未使用時 null) */
65
+ options: zod_1.z.unknown().nullable().meta({ description: "任意オプション" }),
66
+ /** 作成日時(UNIX 秒) @example 1700000000 */
67
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
68
+ /** 実施年度 @example "2025" */
69
+ execute_school_year: zod_1.z.string().meta({ description: "実施年度", example: "2025" }),
70
+ /** 授業種別(数値コード) @example 0 */
71
+ class_type: zod_1.z.number().meta({ description: "授業種別(数値コード)", example: 0 }),
72
+ /** メモ(英語。無ければ null) @example null */
73
+ memo_en: zod_1.z.string().nullable().meta({ description: "メモ(英語)", example: null }),
74
+ /** オプション(英語。未使用時 null) */
75
+ options_en: zod_1.z.unknown().nullable().meta({ description: "オプション(英語)" }),
76
+ /** 表示順 @example 0 */
77
+ order: zod_1.z.number().meta({ description: "表示順", example: 0 }),
78
+ /** バッジ情報 */
79
+ badge: exports.AlboTimetableBadgeSchema,
80
+ /** 学期表記(英語) @example "Spring" */
81
+ term_en: zod_1.z.string().meta({ description: "学期表記(英語)", example: "Spring" }),
82
+ /** 授業名(英語) @example "Information Literacy" */
83
+ class_name_en: zod_1.z.string().meta({ description: "授業名(英語)", example: "Information Literacy" }),
84
+ /** キャンパス(英語) @example "Nagoya" */
85
+ campus_en: zod_1.z.string().meta({ description: "キャンパス(英語)", example: "Nagoya" }),
86
+ /** 休講情報の配列 */
87
+ cancels: zod_1.z.array(zod_1.z.unknown()).meta({ description: "休講情報の配列" }),
88
+ /** 補講情報の配列 */
89
+ extras: zod_1.z.array(zod_1.z.unknown()).meta({ description: "補講情報の配列" }),
90
+ /** 変更情報の配列 */
91
+ changes: zod_1.z.array(zod_1.z.unknown()).meta({ description: "変更情報の配列" }),
92
+ });
93
+ /** 時間割取得 API のレスポンス全体 */
94
+ exports.AlboTimetableSchema = (0, alboCommon_1.alboEnvelope)(zod_1.z.object({
95
+ /** 時間割の種別 @example "student" */
96
+ time_table_type: zod_1.z.string().meta({ description: "時間割の種別", example: "student" }),
97
+ ...alboCommon_1.paginationShape,
98
+ /** 時間割コマの配列 */
99
+ items: zod_1.z.array(exports.AlboTimetableItemSchema).meta({ description: "時間割コマの配列" }),
100
+ }));
101
+ // --- お知らせ ---------------------------------------------------------------
102
+ /** お知らせのカテゴリ */
103
+ exports.AlboInformationCategorySchema = zod_1.z.object({
104
+ /** カテゴリ UUID @example "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" */
105
+ uuid: zod_1.z.string().meta({ description: "カテゴリ UUID", example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }),
106
+ /** カテゴリ名 @example "教務課からのお知らせ" */
107
+ name: zod_1.z.string().meta({ description: "カテゴリ名", example: "教務課からのお知らせ" }),
108
+ /** カテゴリ名(英語。無ければ null) @example null */
109
+ name_en: zod_1.z.string().nullable().meta({ description: "カテゴリ名(英語)", example: null }),
110
+ /** 説明(無ければ null) @example null */
111
+ description: zod_1.z.string().nullable().meta({ description: "説明", example: null }),
112
+ /** 説明(英語。無ければ null) @example null */
113
+ description_en: zod_1.z.string().nullable().meta({ description: "説明(英語)", example: null }),
114
+ /** 表示順 @example 0 */
115
+ order: zod_1.z.number().meta({ description: "表示順", example: 0 }),
116
+ /** ゲスト向けに公開するか @example false */
117
+ is_for_guest: zod_1.z.boolean().meta({ description: "ゲスト向けに公開するか", example: false }),
118
+ /** 作成者 @example "system" */
119
+ created_by: zod_1.z.string().meta({ description: "作成者", example: "system" }),
120
+ /** 更新者(無ければ null) @example null */
121
+ updated_by: zod_1.z.string().nullable().meta({ description: "更新者", example: null }),
122
+ /** 作成日時(UNIX 秒) @example 1700000000 */
123
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
124
+ /** 更新日時(UNIX 秒) @example 1700000000 */
125
+ updated_at: zod_1.z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
126
+ });
127
+ /** お知らせに添付されるファイル */
128
+ exports.AlboInformationFileSchema = zod_1.z.object({
129
+ /** ファイル UUID @example "ffffffff-1111-2222-3333-444444444444" */
130
+ uuid: zod_1.z.string().meta({ description: "ファイル UUID", example: "ffffffff-1111-2222-3333-444444444444" }),
131
+ /** ファイル名 @example "履修案内.pdf" */
132
+ file_name: zod_1.z.string().meta({ description: "ファイル名", example: "履修案内.pdf" }),
133
+ /** MIME タイプ @example "application/pdf" */
134
+ mime_type: zod_1.z.string().meta({ description: "MIME タイプ", example: "application/pdf" }),
135
+ /** サムネイル存在フラグ @example false */
136
+ is_thumb_exists: zod_1.z.boolean().meta({ description: "サムネイル存在フラグ", example: false }),
137
+ /** 作成者 @example "system" */
138
+ created_by: zod_1.z.string().meta({ description: "作成者", example: "system" }),
139
+ /** 作成日時(UNIX 秒) @example 1700000000 */
140
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
141
+ });
142
+ /** お知らせ 1 件 */
143
+ exports.AlboInformationItemSchema = zod_1.z.object({
144
+ /** お知らせ UUID @example "12345678-90ab-cdef-1234-567890abcdef" */
145
+ uuid: zod_1.z.string().meta({ description: "お知らせ UUID", example: "12345678-90ab-cdef-1234-567890abcdef" }),
146
+ /** 発信元(部署名など) @example "教務課" */
147
+ publish_from: zod_1.z.string().meta({ description: "発信元", example: "教務課" }),
148
+ /** 発信元(英語。無ければ null) @example null */
149
+ publish_from_en: zod_1.z.string().nullable().meta({ description: "発信元(英語)", example: null }),
150
+ /** 発信部署(英語。無ければ null) @example null */
151
+ publish_department_en: zod_1.z.string().nullable().meta({ description: "発信部署(英語)", example: null }),
152
+ /** 掲載開始日時(UNIX 秒) @example 1783445975 */
153
+ publish_start_at: zod_1.z.number().meta({ description: "掲載開始日時(UNIX 秒)", example: 1783445975 }),
154
+ /** 掲載終了日時(UNIX 秒) @example 1785000000 */
155
+ publish_end_at: zod_1.z.number().meta({ description: "掲載終了日時(UNIX 秒)", example: 1785000000 }),
156
+ /** タイトル @example "定期試験の実施について" */
157
+ title: zod_1.z.string().meta({ description: "タイトル", example: "定期試験の実施について" }),
158
+ /** タイトル(英語。無ければ null) @example null */
159
+ title_en: zod_1.z.string().nullable().meta({ description: "タイトル(英語)", example: null }),
160
+ /** 本文(HTML) @example "<p>本文...</p>" */
161
+ content: zod_1.z.string().meta({ description: "本文(HTML)", example: "<p>本文...</p>" }),
162
+ /** 本文(英語。無ければ null) @example null */
163
+ content_en: zod_1.z.string().nullable().meta({ description: "本文(英語)", example: null }),
164
+ /** 優先度 @example 0 */
165
+ priority: zod_1.z.number().meta({ description: "優先度", example: 0 }),
166
+ /** イベント名(無ければ null) @example null */
167
+ event_title: zod_1.z.string().nullable().meta({ description: "イベント名", example: null }),
168
+ /** イベント名(英語。無ければ null) @example null */
169
+ event_title_en: zod_1.z.string().nullable().meta({ description: "イベント名(英語)", example: null }),
170
+ /** イベント開始日時(UNIX 秒。無ければ null) @example null */
171
+ event_start_at: zod_1.z.number().nullable().meta({ description: "イベント開始日時(UNIX 秒)", example: null }),
172
+ /** イベント終了日時(UNIX 秒。無ければ null) @example null */
173
+ event_end_at: zod_1.z.number().nullable().meta({ description: "イベント終了日時(UNIX 秒)", example: null }),
174
+ /** メール通知を送るか(0/1) @example 0 */
175
+ is_send_mail_notification: zod_1.z.number().meta({ description: "メール通知を送るか(0/1)", example: 0 }),
176
+ /** 通知メールの差出人(無ければ null) @example null */
177
+ mail_from: zod_1.z.string().nullable().meta({ description: "通知メールの差出人", example: null }),
178
+ /** 任意オプション(未使用時 null) */
179
+ options: zod_1.z.unknown().nullable().meta({ description: "任意オプション" }),
180
+ /** 作成者 @example "kyomu" */
181
+ created_by: zod_1.z.string().meta({ description: "作成者", example: "kyomu" }),
182
+ /** 更新者(無ければ null) @example null */
183
+ updated_by: zod_1.z.string().nullable().meta({ description: "更新者", example: null }),
184
+ /** 作成日時(UNIX 秒) @example 1700000000 */
185
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
186
+ /** テンプレートか(0/1) @example 0 */
187
+ is_template: zod_1.z.number().meta({ description: "テンプレートか(0/1)", example: 0 }),
188
+ /** 公開中か @example true */
189
+ is_public: zod_1.z.boolean().meta({ description: "公開中か", example: true }),
190
+ /** 既読か @example false */
191
+ is_read: zod_1.z.boolean().meta({ description: "既読か", example: false }),
192
+ /** ピン留めされているか @example false */
193
+ is_pinned: zod_1.z.boolean().meta({ description: "ピン留めされているか", example: false }),
194
+ /** 「いいね」済みか @example false */
195
+ is_reacted_good: zod_1.z.boolean().meta({ description: "「いいね」済みか", example: false }),
196
+ /** 「いいね」数 @example 0 */
197
+ good_count: zod_1.z.number().meta({ description: "「いいね」数", example: 0 }),
198
+ /** カテゴリ */
199
+ category: exports.AlboInformationCategorySchema,
200
+ /** 添付ファイル(無ければ null) @example null */
201
+ files: zod_1.z.array(exports.AlboInformationFileSchema).nullable().meta({ description: "添付ファイル", example: null }),
202
+ /** 個人向け添付ファイル(無ければ null) @example null */
203
+ personal_files: zod_1.z.array(exports.AlboInformationFileSchema).nullable().meta({ description: "個人向け添付ファイル", example: null }),
204
+ /** 本文中の画像(無ければ null) @example null */
205
+ images: zod_1.z.array(exports.AlboInformationFileSchema).nullable().meta({ description: "本文中の画像", example: null }),
206
+ });
207
+ /** お知らせ一覧取得 API のレスポンス全体 */
208
+ exports.AlboInformationSchema = (0, alboCommon_1.alboEnvelope)(zod_1.z.object({
209
+ ...alboCommon_1.paginationShape,
210
+ /** お知らせ配列 */
211
+ items: zod_1.z.array(exports.AlboInformationItemSchema).meta({ description: "お知らせ配列" }),
212
+ }));
213
+ // --- 個人情報(PII を含む。auth/check-logged-in も同型) ---------------------
214
+ /** ユーザーに割り当てられた認証プロファイル */
215
+ exports.AlboPersonalAuthProfileSchema = zod_1.z.object({
216
+ /** プロファイル UUID @example "00000000-0000-0000-0000-000000000000" */
217
+ uuid: zod_1.z.string().meta({ description: "プロファイル UUID", example: "00000000-0000-0000-0000-000000000000" }),
218
+ /** プロファイル名 @example "学生" */
219
+ name: zod_1.z.string().meta({ description: "プロファイル名", example: "学生" }),
220
+ /** 作成日時(UNIX 秒) @example 1700000000 */
221
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
222
+ /** 更新日時(UNIX 秒。無ければ null) @example null */
223
+ updated_at: zod_1.z.number().nullable().meta({ description: "更新日時(UNIX 秒)", example: null }),
224
+ });
225
+ /** ユーザーが所属するグループ */
226
+ exports.AlboPersonalGroupSchema = zod_1.z.object({
227
+ /** グループのインデックス @example "1" */
228
+ group_index: zod_1.z.string().meta({ description: "グループのインデックス", example: "1" }),
229
+ /** 次のグループインデックス @example "2" */
230
+ next_group_index: zod_1.z.string().meta({ description: "次のグループインデックス", example: "2" }),
231
+ /** 元のグループインデックス @example "1" */
232
+ orig_group_index: zod_1.z.string().meta({ description: "元のグループインデックス", example: "1" }),
233
+ /** グループ UUID @example "99999999-8888-7777-6666-555555555555" */
234
+ uuid: zod_1.z.string().meta({ description: "グループ UUID", example: "99999999-8888-7777-6666-555555555555" }),
235
+ /** グループ名 @example "工学部" */
236
+ name: zod_1.z.string().meta({ description: "グループ名", example: "工学部" }),
237
+ /** グループ名(英語。無ければ null) @example null */
238
+ name_en: zod_1.z.string().nullable().meta({ description: "グループ名(英語)", example: null }),
239
+ /** 権限グループか @example false */
240
+ is_authority: zod_1.z.boolean().meta({ description: "権限グループか", example: false }),
241
+ /** 表示順 @example 0 */
242
+ order: zod_1.z.number().meta({ description: "表示順", example: 0 }),
243
+ /** 有効フラグ(0/1) @example 1 */
244
+ is_active: zod_1.z.number().meta({ description: "有効フラグ(0/1)", example: 1 }),
245
+ /** サインアップ画面に表示するか(0/1) @example 0 */
246
+ is_shown_in_signup: zod_1.z.number().meta({ description: "サインアップ画面に表示するか(0/1)", example: 0 }),
247
+ /** 作成日時(UNIX 秒) @example 1700000000 */
248
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
249
+ /** 更新日時(UNIX 秒) @example 1700000000 */
250
+ updated_at: zod_1.z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
251
+ /** グループの正式名 @example "工学部 情報工学科" */
252
+ full_name: zod_1.z.string().meta({ description: "グループの正式名", example: "工学部 情報工学科" }),
253
+ /** 表示名 @example "情報工学科" */
254
+ display_name: zod_1.z.string().meta({ description: "表示名", example: "情報工学科" }),
255
+ /** 表示名(英語) @example "Dept. of Information Engineering" */
256
+ display_name_en: zod_1.z.string().meta({ description: "表示名(英語)", example: "Dept. of Information Engineering" }),
257
+ });
258
+ /** ログインユーザーの個人情報 */
259
+ exports.AlboPersonalUserSchema = zod_1.z.object({
260
+ /** ユーザー UUID @example "aaaaaaaa-0000-0000-0000-000000000000" */
261
+ uuid: zod_1.z.string().meta({ description: "ユーザー UUID", example: "aaaaaaaa-0000-0000-0000-000000000000" }),
262
+ /** 個人 ID(学籍番号など) @example "T000000" */
263
+ personal_id: zod_1.z.string().meta({ description: "個人 ID(学籍番号など)", example: "T000000" }),
264
+ /** 氏名 @example "田中太郎" */
265
+ name: zod_1.z.string().meta({ description: "氏名", example: "田中太郎" }),
266
+ /** 氏名(カナ) @example "タナカタロウ" */
267
+ name_kana: zod_1.z.string().meta({ description: "氏名(カナ)", example: "タナカタロウ" }),
268
+ /** 氏名(アルファベット) @example "TANAKA TARO" */
269
+ name_alphabet: zod_1.z.string().meta({ description: "氏名(アルファベット)", example: "TANAKA TARO" }),
270
+ /** メールアドレス @example "t000000@m.chukyo-u.ac.jp" */
271
+ email: zod_1.z.string().meta({ description: "メールアドレス", example: "t000000@m.chukyo-u.ac.jp" }),
272
+ /** ロケール @example "ja" */
273
+ locale: zod_1.z.string().meta({ description: "ロケール", example: "ja" }),
274
+ /** 任意項目 1(無ければ null) @example null */
275
+ option_1: zod_1.z.string().nullable().meta({ description: "任意項目 1", example: null }),
276
+ /** 任意項目 2(無ければ null) @example null */
277
+ option_2: zod_1.z.string().nullable().meta({ description: "任意項目 2", example: null }),
278
+ /** 任意項目 3(無ければ null) @example null */
279
+ option_3: zod_1.z.string().nullable().meta({ description: "任意項目 3", example: null }),
280
+ /** 任意項目 4(無ければ null) @example null */
281
+ option_4: zod_1.z.string().nullable().meta({ description: "任意項目 4", example: null }),
282
+ /** 任意項目 5(無ければ null) @example null */
283
+ option_5: zod_1.z.string().nullable().meta({ description: "任意項目 5", example: null }),
284
+ /** 任意項目 6(無ければ null) @example null */
285
+ option_6: zod_1.z.string().nullable().meta({ description: "任意項目 6", example: null }),
286
+ /** 任意項目 7(無ければ null) @example null */
287
+ option_7: zod_1.z.string().nullable().meta({ description: "任意項目 7", example: null }),
288
+ /** 任意項目 8(無ければ null) @example null */
289
+ option_8: zod_1.z.string().nullable().meta({ description: "任意項目 8", example: null }),
290
+ /** 任意項目 9(無ければ null) @example null */
291
+ option_9: zod_1.z.string().nullable().meta({ description: "任意項目 9", example: null }),
292
+ /** 任意項目 10(無ければ null) @example null */
293
+ option_10: zod_1.z.string().nullable().meta({ description: "任意項目 10", example: null }),
294
+ /** 承認状態(無ければ null) @example null */
295
+ approval_status: zod_1.z.string().nullable().meta({ description: "承認状態", example: null }),
296
+ /** ユーザーが有効か @example true */
297
+ is_user_enabled: zod_1.z.boolean().meta({ description: "ユーザーが有効か", example: true }),
298
+ /** ログインが有効か @example true */
299
+ is_login_enabled: zod_1.z.boolean().meta({ description: "ログインが有効か", example: true }),
300
+ /** ゲストか @example false */
301
+ is_guest: zod_1.z.boolean().meta({ description: "ゲストか", example: false }),
302
+ /** 利用開始日時(UNIX 秒) @example 1680000000 */
303
+ start_at: zod_1.z.number().meta({ description: "利用開始日時(UNIX 秒)", example: 1680000000 }),
304
+ /** 利用終了日時(UNIX 秒) @example 1900000000 */
305
+ end_at: zod_1.z.number().meta({ description: "利用終了日時(UNIX 秒)", example: 1900000000 }),
306
+ /** メモ(無ければ null) @example null */
307
+ memo: zod_1.z.string().nullable().meta({ description: "メモ", example: null }),
308
+ /** 管理者メモ(無ければ null) @example null */
309
+ admin_memo: zod_1.z.string().nullable().meta({ description: "管理者メモ", example: null }),
310
+ /** CSV 削除対象外フラグ @example false */
311
+ is_not_delete_csv: zod_1.z.boolean().meta({ description: "CSV 削除対象外フラグ", example: false }),
312
+ /** 作成日時(UNIX 秒) @example 1680000000 */
313
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1680000000 }),
314
+ /** 更新日時(UNIX 秒) @example 1700000000 */
315
+ updated_at: zod_1.z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
316
+ /** ログイン用ユーザー ID @example "t000000" */
317
+ user_id: zod_1.z.string().meta({ description: "ログイン用ユーザー ID", example: "t000000" }),
318
+ /** 認証プロファイル */
319
+ auth_profiles: exports.AlboPersonalAuthProfileSchema,
320
+ /** 所属グループ一覧 */
321
+ groups: zod_1.z.array(exports.AlboPersonalGroupSchema).meta({ description: "所属グループ一覧" }),
322
+ /** 必須アンケートへ回答済みか @example true */
323
+ has_answer_force_questionnaire: zod_1.z.boolean().meta({ description: "必須アンケートへ回答済みか", example: true }),
324
+ /** 必須アンケートがあるか @example false */
325
+ has_force_questionnaire: zod_1.z.boolean().meta({ description: "必須アンケートがあるか", example: false }),
326
+ /** サブメールアドレス一覧 @example [] */
327
+ sub_email_addresses: zod_1.z.array(zod_1.z.string()).meta({ description: "サブメールアドレス一覧", example: [] }),
328
+ /** 表示用グループ名一覧 @example ["工学部 情報工学科"] */
329
+ display_group_names: zod_1.z.array(zod_1.z.string()).meta({ description: "表示用グループ名一覧", example: ["工学部 情報工学科"] }),
330
+ /** 表示用グループ名一覧(英語) @example [] */
331
+ display_group_names_en: zod_1.z.array(zod_1.z.string()).meta({ description: "表示用グループ名一覧(英語)", example: [] }),
332
+ /** プロフィール画像(無ければ null) @example null */
333
+ portrait: zod_1.z.string().nullable().meta({ description: "プロフィール画像", example: null }),
334
+ /** 権限区分 @example "student" */
335
+ permission: zod_1.z.string().meta({ description: "権限区分", example: "student" }),
336
+ /** 権限ユニット一覧 @example [] */
337
+ permission_unit: zod_1.z.array(zod_1.z.unknown()).meta({ description: "権限ユニット一覧", example: [] }),
338
+ /** ローカル認証を持つか @example false */
339
+ has_local_auth: zod_1.z.boolean().meta({ description: "ローカル認証を持つか", example: false }),
340
+ /** 関連グループ(未使用時 null) @example null */
341
+ affiliated_groups: zod_1.z.unknown().nullable().meta({ description: "関連グループ", example: null }),
342
+ });
343
+ /** ログイン後の個人情報取得 API のレスポンス全体(user に個人情報が入る) */
344
+ exports.AlboPersonalSchema = (0, alboCommon_1.alboEnvelope)(zod_1.z.object({
345
+ /** ログイン結果 @example "success" */
346
+ login: zod_1.z.string().meta({ description: "ログイン結果", example: "success" }),
347
+ /** メッセージ @example "" */
348
+ message: zod_1.z.string().meta({ description: "メッセージ", example: "" }),
349
+ /** ログインメッセージ(無ければ null) @example null */
350
+ login_message: zod_1.z.string().nullable().meta({ description: "ログインメッセージ", example: null }),
351
+ }), exports.AlboPersonalUserSchema);
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlboCalendarOutlookEventSchema = exports.AlboCalendarSourceSchema = exports.AlboCalendarSourceItemSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const alboCommon_1 = require("./alboCommon");
6
+ // ---------------------------------------------------------------------------
7
+ // カレンダー(calendar)系のうち、イベント一覧(AlboCalendarSchema in ./albo)以外。
8
+ // - GET /api/calendar-source/ … 購読しているカレンダーソースの一覧
9
+ // - GET /api/calendar/outlook-event/{n} … Outlook 連携イベント(未連携時はエラー)
10
+ // ---------------------------------------------------------------------------
11
+ /** カレンダーソース(学年暦・Google カレンダー連携など)1 件 */
12
+ exports.AlboCalendarSourceItemSchema = zod_1.z.object({
13
+ /** カレンダーソース UUID @example "ac304d66-b0a8-11f0-afed-06347f3ce845" */
14
+ uuid: zod_1.z.string().meta({ description: "カレンダーソース UUID", example: "ac304d66-b0a8-11f0-afed-06347f3ce845" }),
15
+ /** 名称 @example "学年暦(学部)" */
16
+ title: zod_1.z.string().meta({ description: "名称", example: "学年暦(学部)" }),
17
+ /** 名称(英語。無ければ null) @example null */
18
+ title_en: zod_1.z.string().nullable().meta({ description: "名称(英語)", example: null }),
19
+ /** 購読元 URL(iCal / Google Calendar など) @example "https://calendar.google.com/calendar/ical/example/basic.ics" */
20
+ url: zod_1.z.string().meta({ description: "購読元 URL(iCal / Google Calendar など)", example: "https://calendar.google.com/calendar/ical/example/basic.ics" }),
21
+ /** 有効なソースか @example true */
22
+ is_living: zod_1.z.boolean().meta({ description: "有効なソースか", example: true }),
23
+ /** 削除済みか @example false */
24
+ is_deleted: zod_1.z.boolean().meta({ description: "削除済みか", example: false }),
25
+ /** 作成日時(UNIX 秒) @example 1700000000 */
26
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
27
+ /** 更新日時(UNIX 秒) @example 1700000000 */
28
+ updated_at: zod_1.z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
29
+ /** 削除日時(UNIX 秒。未削除なら null) @example null */
30
+ deleted_at: zod_1.z.number().nullable().meta({ description: "削除日時(UNIX 秒)", example: null }),
31
+ /** 作成者(無ければ null) @example "system" */
32
+ created_by: zod_1.z.string().nullable().meta({ description: "作成者", example: "system" }),
33
+ /** 更新者(無ければ null) @example null */
34
+ updated_by: zod_1.z.string().nullable().meta({ description: "更新者", example: null }),
35
+ });
36
+ /** カレンダーソース一覧取得 API のレスポンス全体 */
37
+ exports.AlboCalendarSourceSchema = (0, alboCommon_1.alboEnvelope)(zod_1.z.object({
38
+ /** カレンダーソースの配列 */
39
+ items: zod_1.z.array(exports.AlboCalendarSourceItemSchema).meta({ description: "カレンダーソースの配列" }),
40
+ }));
41
+ /**
42
+ * Outlook 連携イベント取得 API のレスポンス全体。
43
+ * Microsoft アカウント未連携の場合は `is_successful: false` かつ
44
+ * `result: { message: "No token." }` が返る。連携済みの場合はイベント配列が返る想定。
45
+ */
46
+ exports.AlboCalendarOutlookEventSchema = (0, alboCommon_1.alboEnvelope)(zod_1.z.object({
47
+ /** エラー等のメッセージ(例: "No token.") @example "No token." */
48
+ message: zod_1.z.string().optional().meta({ description: "エラー等のメッセージ", example: "No token." }),
49
+ /** イベント配列(連携済みの場合) @example [] */
50
+ items: zod_1.z.array(zod_1.z.unknown()).optional().meta({ description: "イベント配列(連携済みの場合)", example: [] }),
51
+ }));
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlboActionResultSchema = exports.paginationShape = exports.alboEnvelope = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * albo(中京大学ポータル)API 共通の部品。
7
+ *
8
+ * すべての albo API は「封筒(envelope)」で包まれて返る:
9
+ * { is_successful, code, api_version, gmt, user, result }
10
+ * エンドポイントごとに異なるのは `result` の中身だけなので、`alboEnvelope()` に
11
+ * result のスキーマを渡して各 API のスキーマを組み立てる。
12
+ * 値は API が返すキー・型のまま通す(数値の日時は基本 UNIX 秒)。
13
+ */
14
+ /**
15
+ * 全 albo API 共通のレスポンス封筒を組み立てるヘルパー。
16
+ * @param resultSchema `result` の中身
17
+ * @param userSchema `user` の型(既定は null。auth/check-logged-in や personal では個人情報が入る)
18
+ */
19
+ const alboEnvelope = (resultSchema, userSchema) => zod_1.z.object({
20
+ /** 処理成功フラグ @example true */
21
+ is_successful: zod_1.z.boolean().meta({ description: "処理成功フラグ", example: true }),
22
+ /** ステータスコード(HTTP 相当) @example 200 */
23
+ code: zod_1.z.number().meta({ description: "ステータスコード(HTTP 相当)", example: 200 }),
24
+ /** API バージョン @example 2 */
25
+ api_version: zod_1.z.number().meta({ description: "API バージョン", example: 2 }),
26
+ /** レスポンス生成時刻(UNIX 秒) @example 1783445975 */
27
+ gmt: zod_1.z.number().meta({ description: "レスポンス生成時刻(UNIX 秒)", example: 1783445975 }),
28
+ /** ログインユーザー情報。多くのエンドポイントでは null */
29
+ user: (userSchema ?? zod_1.z.unknown().nullable()),
30
+ /** エンドポイント固有の本体 */
31
+ result: resultSchema,
32
+ });
33
+ exports.alboEnvelope = alboEnvelope;
34
+ /**
35
+ * ページング系レスポンスに共通で含まれるフィールド群。
36
+ * `z.object({ ...paginationShape, items: ... })` のように展開して使う。
37
+ */
38
+ exports.paginationShape = {
39
+ /** 総ページ数 @example 3 */
40
+ page_total: zod_1.z.number().meta({ description: "総ページ数", example: 3 }),
41
+ /** 1 ページあたりの件数 @example 20 */
42
+ page_size: zod_1.z.number().meta({ description: "1 ページあたりの件数", example: 20 }),
43
+ /** 総件数 @example 57 */
44
+ item_count: zod_1.z.number().meta({ description: "総件数", example: 57 }),
45
+ };
46
+ /**
47
+ * ボタン操作系 API(既読化・ピン留め・いいね等)が返す汎用の結果。
48
+ * 例: set-read-all → `{ message: "87件のお知らせを既読にしました。", count: 87 }`
49
+ */
50
+ exports.AlboActionResultSchema = (0, exports.alboEnvelope)(zod_1.z.object({
51
+ /** ユーザー向けの結果メッセージ(日本語) @example "1件のお知らせを既読にしました。" */
52
+ message: zod_1.z.string().meta({ description: "結果メッセージ(日本語)", example: "1件のお知らせを既読にしました。" }),
53
+ /** 操作対象の件数(件数を伴わない操作では省略) @example 1 */
54
+ count: zod_1.z.number().optional().meta({ description: "操作対象の件数", example: 1 }),
55
+ }));
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlboInformationCategoryTreeSchema = exports.AlboInformationCategoryNodeSchema = exports.AlboInformationDetailSchema = exports.AlboInformationDetailResultSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const alboCommon_1 = require("./alboCommon");
6
+ const albo_1 = require("./albo");
7
+ // ---------------------------------------------------------------------------
8
+ // お知らせ(information)系のうち、一覧(AlboInformationSchema in ./albo)以外。
9
+ // - GET /api/information/view/{uuid} … お知らせ 1 件の詳細
10
+ // - GET /api/information-category/tree … お知らせカテゴリのツリー
11
+ // 既読化・ピン留め・いいね等の操作結果は AlboActionResultSchema(./alboCommon)を使う。
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * お知らせ詳細(GET /api/information/view/{uuid})の本体。
15
+ * 一覧の 1 件(AlboInformationItemSchema)より項目が多く、本文 HTML や配信設定を含む。
16
+ */
17
+ exports.AlboInformationDetailResultSchema = zod_1.z.object({
18
+ /** お知らせ UUID @example "12345678-90ab-cdef-1234-567890abcdef" */
19
+ uuid: zod_1.z.string().meta({ description: "お知らせ UUID", example: "12345678-90ab-cdef-1234-567890abcdef" }),
20
+ /** 発信元(部署名など) @example "グローバル交流センター" */
21
+ publish_from: zod_1.z.string().meta({ description: "発信元", example: "グローバル交流センター" }),
22
+ /** 発信元(英語。無ければ null) @example null */
23
+ publish_from_en: zod_1.z.string().nullable().meta({ description: "発信元(英語)", example: null }),
24
+ /** 発信部署(無ければ null) @example "国際課" */
25
+ publish_department: zod_1.z.string().nullable().meta({ description: "発信部署", example: "国際課" }),
26
+ /** 発信部署(英語。無ければ null) @example null */
27
+ publish_department_en: zod_1.z.string().nullable().meta({ description: "発信部署(英語)", example: null }),
28
+ /** 掲載開始日時(UNIX 秒) @example 1783445975 */
29
+ publish_start_at: zod_1.z.number().meta({ description: "掲載開始日時(UNIX 秒)", example: 1783445975 }),
30
+ /** 掲載終了日時(UNIX 秒) @example 1785000000 */
31
+ publish_end_at: zod_1.z.number().meta({ description: "掲載終了日時(UNIX 秒)", example: 1785000000 }),
32
+ /** タイトル @example "定期試験の実施について" */
33
+ title: zod_1.z.string().meta({ description: "タイトル", example: "定期試験の実施について" }),
34
+ /** タイトル(英語。無ければ null) @example null */
35
+ title_en: zod_1.z.string().nullable().meta({ description: "タイトル(英語)", example: null }),
36
+ /** 本文(HTML 文字列) @example "<p>本文...</p>" */
37
+ content: zod_1.z.string().meta({ description: "本文(HTML 文字列)", example: "<p>本文...</p>" }),
38
+ /** 本文(英語。無ければ null) @example null */
39
+ content_en: zod_1.z.string().nullable().meta({ description: "本文(英語)", example: null }),
40
+ /** 優先度 @example 0 */
41
+ priority: zod_1.z.number().meta({ description: "優先度", example: 0 }),
42
+ /** イベント名(無ければ null) @example null */
43
+ event_title: zod_1.z.string().nullable().meta({ description: "イベント名", example: null }),
44
+ /** イベント名(英語。無ければ null) @example null */
45
+ event_title_en: zod_1.z.string().nullable().meta({ description: "イベント名(英語)", example: null }),
46
+ /** イベント開始日時(UNIX 秒。無ければ null) @example null */
47
+ event_start_at: zod_1.z.number().nullable().meta({ description: "イベント開始日時(UNIX 秒)", example: null }),
48
+ /** イベント終了日時(UNIX 秒。無ければ null) @example null */
49
+ event_end_at: zod_1.z.number().nullable().meta({ description: "イベント終了日時(UNIX 秒)", example: null }),
50
+ /** 開封確認を要求するか(未設定時 null) @example null */
51
+ is_read_receipt: zod_1.z.unknown().nullable().meta({ description: "開封確認を要求するか", example: null }),
52
+ /** 再送が必要か(未設定時 null) @example null */
53
+ is_need_resend: zod_1.z.unknown().nullable().meta({ description: "再送が必要か", example: null }),
54
+ /** アプリ通知を送るか @example false */
55
+ is_send_notification: zod_1.z.boolean().meta({ description: "アプリ通知を送るか", example: false }),
56
+ /** メール通知を送るか(0/1 の数値フラグ) @example 0 */
57
+ is_send_mail_notification: zod_1.z.number().meta({ description: "メール通知を送るか(0/1)", example: 0 }),
58
+ /** 有効フラグ @example true */
59
+ is_active: zod_1.z.boolean().meta({ description: "有効フラグ", example: true }),
60
+ /** 通知メールの差出人(無ければ null) @example null */
61
+ mail_from: zod_1.z.string().nullable().meta({ description: "通知メールの差出人", example: null }),
62
+ /** 任意オプション(未使用時 null) */
63
+ options: zod_1.z.unknown().nullable().meta({ description: "任意オプション" }),
64
+ /** 作成者(無ければ null) @example "kyomu" */
65
+ created_by: zod_1.z.string().nullable().meta({ description: "作成者", example: "kyomu" }),
66
+ /** 更新者(無ければ null) @example null */
67
+ updated_by: zod_1.z.string().nullable().meta({ description: "更新者", example: null }),
68
+ /** 作成日時(UNIX 秒) @example 1700000000 */
69
+ created_at: zod_1.z.number().meta({ description: "作成日時(UNIX 秒)", example: 1700000000 }),
70
+ /** 更新日時(UNIX 秒) @example 1700000000 */
71
+ updated_at: zod_1.z.number().meta({ description: "更新日時(UNIX 秒)", example: 1700000000 }),
72
+ /** テンプレートか(0/1 の数値フラグ) @example 0 */
73
+ is_template: zod_1.z.number().meta({ description: "テンプレートか(0/1)", example: 0 }),
74
+ /** 公開中か @example true */
75
+ is_public: zod_1.z.boolean().meta({ description: "公開中か", example: true }),
76
+ /** イベント情報を持つか @example false */
77
+ has_event: zod_1.z.boolean().meta({ description: "イベント情報を持つか", example: false }),
78
+ /** 既読か @example false */
79
+ is_read: zod_1.z.boolean().meta({ description: "既読か", example: false }),
80
+ /** ピン留めされているか @example false */
81
+ is_pinned: zod_1.z.boolean().meta({ description: "ピン留めされているか", example: false }),
82
+ /** 「いいね」済みか @example false */
83
+ is_reacted_good: zod_1.z.boolean().meta({ description: "「いいね」済みか", example: false }),
84
+ /** 「いいね」数 @example 0 */
85
+ good_count: zod_1.z.number().meta({ description: "「いいね」数", example: 0 }),
86
+ /** 掲載状態(例: "public") @example "public" */
87
+ status_period: zod_1.z.string().meta({ description: "掲載状態", example: "public" }),
88
+ /** カテゴリ */
89
+ category: albo_1.AlboInformationCategorySchema,
90
+ /** 権限 UUID @example "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" */
91
+ permission_uuid: zod_1.z.string().meta({ description: "権限 UUID", example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }),
92
+ /** 配信対象 UUID @example "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" */
93
+ target_uuid: zod_1.z.string().meta({ description: "配信対象 UUID", example: "bbbbbbbb-cccc-dddd-eeee-ffffffffffff" }),
94
+ /** 授業時間割との紐付け(無ければ null) @example null */
95
+ class_timetable: zod_1.z.unknown().nullable().meta({ description: "授業時間割との紐付け", example: null }),
96
+ /** 添付ファイル(無ければ null) @example null */
97
+ files: zod_1.z.array(albo_1.AlboInformationFileSchema).nullable().meta({ description: "添付ファイル", example: null }),
98
+ /** 個人向け添付ファイル(無ければ null) @example null */
99
+ personal_files: zod_1.z.array(albo_1.AlboInformationFileSchema).nullable().meta({ description: "個人向け添付ファイル", example: null }),
100
+ /** 本文中の画像(無ければ null) @example null */
101
+ images: zod_1.z.array(albo_1.AlboInformationFileSchema).nullable().meta({ description: "本文中の画像", example: null }),
102
+ /** ハッシュタグ @example [] */
103
+ hashtags: zod_1.z.array(zod_1.z.unknown()).meta({ description: "ハッシュタグ", example: [] }),
104
+ /** Google カレンダー連携リンク(イベントが無ければ "") @example "" */
105
+ event_gcal_link: zod_1.z.string().meta({ description: "Google カレンダー連携リンク", example: "" }),
106
+ /** Google カレンダー連携リンク(英語。無ければ "") @example "" */
107
+ event_gcal_link_en: zod_1.z.string().meta({ description: "Google カレンダー連携リンク(英語)", example: "" }),
108
+ });
109
+ /** お知らせ詳細取得 API のレスポンス全体 */
110
+ exports.AlboInformationDetailSchema = (0, alboCommon_1.alboEnvelope)(exports.AlboInformationDetailResultSchema);
111
+ /** お知らせカテゴリツリーの 1 ノード。`children` に同型ノードがぶら下がる再帰構造 */
112
+ exports.AlboInformationCategoryNodeSchema = zod_1.z.lazy(() => zod_1.z.object({
113
+ /** カテゴリ UUID @example "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" */
114
+ uuid: zod_1.z.string().meta({ description: "カテゴリ UUID", example: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }),
115
+ /** カテゴリ名(例: "教務") @example "教務" */
116
+ name: zod_1.z.string().meta({ description: "カテゴリ名", example: "教務" }),
117
+ /** カテゴリ名(英語。無ければ null) @example null */
118
+ name_en: zod_1.z.string().nullable().meta({ description: "カテゴリ名(英語)", example: null }),
119
+ /** 説明(無ければ null) @example null */
120
+ description: zod_1.z.string().nullable().meta({ description: "説明", example: null }),
121
+ /** 説明(英語。無ければ null) @example null */
122
+ description_en: zod_1.z.string().nullable().meta({ description: "説明(英語)", example: null }),
123
+ /** 表示順 @example 0 */
124
+ order: zod_1.z.number().meta({ description: "表示順", example: 0 }),
125
+ /** ゲスト向けに公開するか(0/1 の数値フラグ) @example 0 */
126
+ is_for_guest: zod_1.z.number().meta({ description: "ゲスト向けに公開するか(0/1)", example: 0 }),
127
+ /** 子カテゴリ(無ければ空配列) */
128
+ children: zod_1.z.array(exports.AlboInformationCategoryNodeSchema).meta({ description: "子カテゴリ", example: [] }),
129
+ /** このカテゴリ配下の未読お知らせ数 @example 0 */
130
+ unread_count: zod_1.z.number().meta({ description: "このカテゴリ配下の未読お知らせ数", example: 0 }),
131
+ }));
132
+ /** お知らせカテゴリツリー取得 API のレスポンス全体 */
133
+ exports.AlboInformationCategoryTreeSchema = (0, alboCommon_1.alboEnvelope)(zod_1.z.object({
134
+ /** カテゴリツリーの最上位ノード配列 */
135
+ items: zod_1.z.array(exports.AlboInformationCategoryNodeSchema).meta({ description: "カテゴリツリーの最上位ノード配列" }),
136
+ }));