@youjunhuang/entity-core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/dist/data_access/base/base.repository.d.ts +29 -0
  2. package/dist/data_access/base/base.repository.d.ts.map +1 -0
  3. package/dist/data_access/base/base.repository.js +7 -0
  4. package/dist/data_access/base/base.repository.js.map +1 -0
  5. package/dist/data_access/base/index.d.ts +4 -0
  6. package/dist/data_access/base/index.d.ts.map +1 -0
  7. package/dist/data_access/base/index.js +20 -0
  8. package/dist/data_access/base/index.js.map +1 -0
  9. package/dist/data_access/base/mongo-base.repository.d.ts +34 -0
  10. package/dist/data_access/base/mongo-base.repository.d.ts.map +1 -0
  11. package/dist/data_access/base/mongo-base.repository.js +229 -0
  12. package/dist/data_access/base/mongo-base.repository.js.map +1 -0
  13. package/dist/data_access/base/sql-base.repository.d.ts +20 -0
  14. package/dist/data_access/base/sql-base.repository.d.ts.map +1 -0
  15. package/dist/data_access/base/sql-base.repository.js +180 -0
  16. package/dist/data_access/base/sql-base.repository.js.map +1 -0
  17. package/dist/data_access/index.d.ts +3 -0
  18. package/dist/data_access/index.d.ts.map +1 -0
  19. package/dist/data_access/index.js +20 -0
  20. package/dist/data_access/index.js.map +1 -0
  21. package/dist/data_access/mongo/account-mongo.repository.d.ts +14 -0
  22. package/dist/data_access/mongo/account-mongo.repository.d.ts.map +1 -0
  23. package/dist/data_access/mongo/account-mongo.repository.js +43 -0
  24. package/dist/data_access/mongo/account-mongo.repository.js.map +1 -0
  25. package/dist/data_access/mongo/attachment-mongo.repository.d.ts +139 -0
  26. package/dist/data_access/mongo/attachment-mongo.repository.d.ts.map +1 -0
  27. package/dist/data_access/mongo/attachment-mongo.repository.js +355 -0
  28. package/dist/data_access/mongo/attachment-mongo.repository.js.map +1 -0
  29. package/dist/data_access/mongo/biometric-cred.repository.d.ts +8 -0
  30. package/dist/data_access/mongo/biometric-cred.repository.d.ts.map +1 -0
  31. package/dist/data_access/mongo/biometric-cred.repository.js +32 -0
  32. package/dist/data_access/mongo/biometric-cred.repository.js.map +1 -0
  33. package/dist/data_access/mongo/camera-mongo.repository.d.ts +9 -0
  34. package/dist/data_access/mongo/camera-mongo.repository.d.ts.map +1 -0
  35. package/dist/data_access/mongo/camera-mongo.repository.js +39 -0
  36. package/dist/data_access/mongo/camera-mongo.repository.js.map +1 -0
  37. package/dist/data_access/mongo/camera-recording-mongo.repository.d.ts +9 -0
  38. package/dist/data_access/mongo/camera-recording-mongo.repository.d.ts.map +1 -0
  39. package/dist/data_access/mongo/camera-recording-mongo.repository.js +39 -0
  40. package/dist/data_access/mongo/camera-recording-mongo.repository.js.map +1 -0
  41. package/dist/data_access/mongo/event-mongo.repository.d.ts +23 -0
  42. package/dist/data_access/mongo/event-mongo.repository.d.ts.map +1 -0
  43. package/dist/data_access/mongo/event-mongo.repository.js +175 -0
  44. package/dist/data_access/mongo/event-mongo.repository.js.map +1 -0
  45. package/dist/data_access/mongo/event-template-mongo.repository.d.ts +8 -0
  46. package/dist/data_access/mongo/event-template-mongo.repository.d.ts.map +1 -0
  47. package/dist/data_access/mongo/event-template-mongo.repository.js +36 -0
  48. package/dist/data_access/mongo/event-template-mongo.repository.js.map +1 -0
  49. package/dist/data_access/mongo/event-template-name-mongo.repository.d.ts +19 -0
  50. package/dist/data_access/mongo/event-template-name-mongo.repository.d.ts.map +1 -0
  51. package/dist/data_access/mongo/event-template-name-mongo.repository.js +47 -0
  52. package/dist/data_access/mongo/event-template-name-mongo.repository.js.map +1 -0
  53. package/dist/data_access/mongo/index.d.ts +17 -0
  54. package/dist/data_access/mongo/index.d.ts.map +1 -0
  55. package/dist/data_access/mongo/index.js +33 -0
  56. package/dist/data_access/mongo/index.js.map +1 -0
  57. package/dist/data_access/mongo/map-mongo.repository.d.ts +9 -0
  58. package/dist/data_access/mongo/map-mongo.repository.d.ts.map +1 -0
  59. package/dist/data_access/mongo/map-mongo.repository.js +46 -0
  60. package/dist/data_access/mongo/map-mongo.repository.js.map +1 -0
  61. package/dist/data_access/mongo/password-cred.repository.d.ts +8 -0
  62. package/dist/data_access/mongo/password-cred.repository.d.ts.map +1 -0
  63. package/dist/data_access/mongo/password-cred.repository.js +32 -0
  64. package/dist/data_access/mongo/password-cred.repository.js.map +1 -0
  65. package/dist/data_access/mongo/permission-mongo.repository.d.ts +8 -0
  66. package/dist/data_access/mongo/permission-mongo.repository.d.ts.map +1 -0
  67. package/dist/data_access/mongo/permission-mongo.repository.js +32 -0
  68. package/dist/data_access/mongo/permission-mongo.repository.js.map +1 -0
  69. package/dist/data_access/mongo/report.repository.d.ts +12 -0
  70. package/dist/data_access/mongo/report.repository.d.ts.map +1 -0
  71. package/dist/data_access/mongo/report.repository.js +52 -0
  72. package/dist/data_access/mongo/report.repository.js.map +1 -0
  73. package/dist/data_access/mongo/role-mongo.repository.d.ts +7 -0
  74. package/dist/data_access/mongo/role-mongo.repository.d.ts.map +1 -0
  75. package/dist/data_access/mongo/role-mongo.repository.js +35 -0
  76. package/dist/data_access/mongo/role-mongo.repository.js.map +1 -0
  77. package/dist/data_access/mongo/third-party-cred.repository.d.ts +8 -0
  78. package/dist/data_access/mongo/third-party-cred.repository.d.ts.map +1 -0
  79. package/dist/data_access/mongo/third-party-cred.repository.js +32 -0
  80. package/dist/data_access/mongo/third-party-cred.repository.js.map +1 -0
  81. package/dist/data_access/mongo/ui-item-mongo.repository.d.ts +7 -0
  82. package/dist/data_access/mongo/ui-item-mongo.repository.d.ts.map +1 -0
  83. package/dist/data_access/mongo/ui-item-mongo.repository.js +35 -0
  84. package/dist/data_access/mongo/ui-item-mongo.repository.js.map +1 -0
  85. package/dist/data_access/mongo/user-mongo.repository.d.ts +8 -0
  86. package/dist/data_access/mongo/user-mongo.repository.d.ts.map +1 -0
  87. package/dist/data_access/mongo/user-mongo.repository.js +39 -0
  88. package/dist/data_access/mongo/user-mongo.repository.js.map +1 -0
  89. package/dist/data_access/sql/index.d.ts +1 -0
  90. package/dist/data_access/sql/index.d.ts.map +1 -0
  91. package/dist/data_access/sql/index.js +3 -0
  92. package/dist/data_access/sql/index.js.map +1 -0
  93. package/dist/data_access/sql/user-profiles.repository.d.ts +1 -0
  94. package/dist/data_access/sql/user-profiles.repository.d.ts.map +1 -0
  95. package/dist/data_access/sql/user-profiles.repository.js +36 -0
  96. package/dist/data_access/sql/user-profiles.repository.js.map +1 -0
  97. package/dist/index.d.ts +4 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +20 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/models/account.d.ts +27 -0
  102. package/dist/models/account.d.ts.map +1 -0
  103. package/dist/models/account.js +3 -0
  104. package/dist/models/account.js.map +1 -0
  105. package/dist/models/attachment.d.ts +147 -0
  106. package/dist/models/attachment.d.ts.map +1 -0
  107. package/dist/models/attachment.js +25 -0
  108. package/dist/models/attachment.js.map +1 -0
  109. package/dist/models/auth-credential.d.ts +46 -0
  110. package/dist/models/auth-credential.d.ts.map +1 -0
  111. package/dist/models/auth-credential.js +10 -0
  112. package/dist/models/auth-credential.js.map +1 -0
  113. package/dist/models/camera.d.ts +156 -0
  114. package/dist/models/camera.d.ts.map +1 -0
  115. package/dist/models/camera.js +34 -0
  116. package/dist/models/camera.js.map +1 -0
  117. package/dist/models/chatroom.d.ts +55 -0
  118. package/dist/models/chatroom.d.ts.map +1 -0
  119. package/dist/models/chatroom.js +3 -0
  120. package/dist/models/chatroom.js.map +1 -0
  121. package/dist/models/device.d.ts +50 -0
  122. package/dist/models/device.d.ts.map +1 -0
  123. package/dist/models/device.js +3 -0
  124. package/dist/models/device.js.map +1 -0
  125. package/dist/models/event.d.ts +170 -0
  126. package/dist/models/event.d.ts.map +1 -0
  127. package/dist/models/event.js +195 -0
  128. package/dist/models/event.js.map +1 -0
  129. package/dist/models/index.d.ts +19 -0
  130. package/dist/models/index.d.ts.map +1 -0
  131. package/dist/models/index.js +35 -0
  132. package/dist/models/index.js.map +1 -0
  133. package/dist/models/inform.d.ts +146 -0
  134. package/dist/models/inform.d.ts.map +1 -0
  135. package/dist/models/inform.js +61 -0
  136. package/dist/models/inform.js.map +1 -0
  137. package/dist/models/map.d.ts +26 -0
  138. package/dist/models/map.d.ts.map +1 -0
  139. package/dist/models/map.js +3 -0
  140. package/dist/models/map.js.map +1 -0
  141. package/dist/models/permission.d.ts +83 -0
  142. package/dist/models/permission.d.ts.map +1 -0
  143. package/dist/models/permission.js +78 -0
  144. package/dist/models/permission.js.map +1 -0
  145. package/dist/models/report.d.ts +167 -0
  146. package/dist/models/report.d.ts.map +1 -0
  147. package/dist/models/report.js +61 -0
  148. package/dist/models/report.js.map +1 -0
  149. package/dist/models/role.d.ts +84 -0
  150. package/dist/models/role.d.ts.map +1 -0
  151. package/dist/models/role.js +25 -0
  152. package/dist/models/role.js.map +1 -0
  153. package/dist/models/schedule.d.ts +39 -0
  154. package/dist/models/schedule.d.ts.map +1 -0
  155. package/dist/models/schedule.js +3 -0
  156. package/dist/models/schedule.js.map +1 -0
  157. package/dist/models/task.d.ts +97 -0
  158. package/dist/models/task.d.ts.map +1 -0
  159. package/dist/models/task.js +24 -0
  160. package/dist/models/task.js.map +1 -0
  161. package/dist/models/template.d.ts +197 -0
  162. package/dist/models/template.d.ts.map +1 -0
  163. package/dist/models/template.js +64 -0
  164. package/dist/models/template.js.map +1 -0
  165. package/dist/models/ui-item.d.ts +40 -0
  166. package/dist/models/ui-item.d.ts.map +1 -0
  167. package/dist/models/ui-item.js +17 -0
  168. package/dist/models/ui-item.js.map +1 -0
  169. package/dist/models/user.d.ts +125 -0
  170. package/dist/models/user.d.ts.map +1 -0
  171. package/dist/models/user.js +22 -0
  172. package/dist/models/user.js.map +1 -0
  173. package/dist/models/utils.d.ts +28 -0
  174. package/dist/models/utils.d.ts.map +1 -0
  175. package/dist/models/utils.js +3 -0
  176. package/dist/models/utils.js.map +1 -0
  177. package/dist/schemas/index.d.ts +2 -0
  178. package/dist/schemas/index.d.ts.map +1 -0
  179. package/dist/schemas/index.js +18 -0
  180. package/dist/schemas/index.js.map +1 -0
  181. package/dist/schemas/mongo/account-mongo.schema.d.ts +27 -0
  182. package/dist/schemas/mongo/account-mongo.schema.d.ts.map +1 -0
  183. package/dist/schemas/mongo/account-mongo.schema.js +22 -0
  184. package/dist/schemas/mongo/account-mongo.schema.js.map +1 -0
  185. package/dist/schemas/mongo/attachment-mongo.schema.d.ts +134 -0
  186. package/dist/schemas/mongo/attachment-mongo.schema.d.ts.map +1 -0
  187. package/dist/schemas/mongo/attachment-mongo.schema.js +182 -0
  188. package/dist/schemas/mongo/attachment-mongo.schema.js.map +1 -0
  189. package/dist/schemas/mongo/biometric-cred.schema.d.ts +27 -0
  190. package/dist/schemas/mongo/biometric-cred.schema.d.ts.map +1 -0
  191. package/dist/schemas/mongo/biometric-cred.schema.js +24 -0
  192. package/dist/schemas/mongo/biometric-cred.schema.js.map +1 -0
  193. package/dist/schemas/mongo/camera-mongo.schema.d.ts +21 -0
  194. package/dist/schemas/mongo/camera-mongo.schema.d.ts.map +1 -0
  195. package/dist/schemas/mongo/camera-mongo.schema.js +54 -0
  196. package/dist/schemas/mongo/camera-mongo.schema.js.map +1 -0
  197. package/dist/schemas/mongo/camera-recording-mongo.schema.d.ts +21 -0
  198. package/dist/schemas/mongo/camera-recording-mongo.schema.d.ts.map +1 -0
  199. package/dist/schemas/mongo/camera-recording-mongo.schema.js +24 -0
  200. package/dist/schemas/mongo/camera-recording-mongo.schema.js.map +1 -0
  201. package/dist/schemas/mongo/event-mongo.schema.d.ts +51 -0
  202. package/dist/schemas/mongo/event-mongo.schema.d.ts.map +1 -0
  203. package/dist/schemas/mongo/event-mongo.schema.js +63 -0
  204. package/dist/schemas/mongo/event-mongo.schema.js.map +1 -0
  205. package/dist/schemas/mongo/event-template-mongo.schema.d.ts +39 -0
  206. package/dist/schemas/mongo/event-template-mongo.schema.d.ts.map +1 -0
  207. package/dist/schemas/mongo/event-template-mongo.schema.js +33 -0
  208. package/dist/schemas/mongo/event-template-mongo.schema.js.map +1 -0
  209. package/dist/schemas/mongo/index.d.ts +16 -0
  210. package/dist/schemas/mongo/index.d.ts.map +1 -0
  211. package/dist/schemas/mongo/index.js +32 -0
  212. package/dist/schemas/mongo/index.js.map +1 -0
  213. package/dist/schemas/mongo/map-mongo.schema.d.ts +20 -0
  214. package/dist/schemas/mongo/map-mongo.schema.d.ts.map +1 -0
  215. package/dist/schemas/mongo/map-mongo.schema.js +16 -0
  216. package/dist/schemas/mongo/map-mongo.schema.js.map +1 -0
  217. package/dist/schemas/mongo/password-cred.schema.d.ts +27 -0
  218. package/dist/schemas/mongo/password-cred.schema.d.ts.map +1 -0
  219. package/dist/schemas/mongo/password-cred.schema.js +22 -0
  220. package/dist/schemas/mongo/password-cred.schema.js.map +1 -0
  221. package/dist/schemas/mongo/permission-mongo.schema.d.ts +21 -0
  222. package/dist/schemas/mongo/permission-mongo.schema.d.ts.map +1 -0
  223. package/dist/schemas/mongo/permission-mongo.schema.js +70 -0
  224. package/dist/schemas/mongo/permission-mongo.schema.js.map +1 -0
  225. package/dist/schemas/mongo/report-mongo.schema.d.ts +41 -0
  226. package/dist/schemas/mongo/report-mongo.schema.d.ts.map +1 -0
  227. package/dist/schemas/mongo/report-mongo.schema.js +71 -0
  228. package/dist/schemas/mongo/report-mongo.schema.js.map +1 -0
  229. package/dist/schemas/mongo/role-mongo.schema.d.ts +22 -0
  230. package/dist/schemas/mongo/role-mongo.schema.d.ts.map +1 -0
  231. package/dist/schemas/mongo/role-mongo.schema.js +73 -0
  232. package/dist/schemas/mongo/role-mongo.schema.js.map +1 -0
  233. package/dist/schemas/mongo/third-party-cred.schema.d.ts +27 -0
  234. package/dist/schemas/mongo/third-party-cred.schema.d.ts.map +1 -0
  235. package/dist/schemas/mongo/third-party-cred.schema.js +30 -0
  236. package/dist/schemas/mongo/third-party-cred.schema.js.map +1 -0
  237. package/dist/schemas/mongo/ui-item.schema.d.ts +23 -0
  238. package/dist/schemas/mongo/ui-item.schema.d.ts.map +1 -0
  239. package/dist/schemas/mongo/ui-item.schema.js +61 -0
  240. package/dist/schemas/mongo/ui-item.schema.js.map +1 -0
  241. package/dist/schemas/mongo/user-mongo.schema.d.ts +24 -0
  242. package/dist/schemas/mongo/user-mongo.schema.d.ts.map +1 -0
  243. package/dist/schemas/mongo/user-mongo.schema.js +34 -0
  244. package/dist/schemas/mongo/user-mongo.schema.js.map +1 -0
  245. package/package.json +34 -0
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubjectType = exports.EventStatus = exports.EventSubTypeEnum = exports.MedicalSubType = exports.UserBehaviorSubType = exports.SystemSubType = exports.VisualSubType = void 0;
4
+ /**
5
+ * 視覺辨識類事件子類型 (VisualSubType)
6
+ *
7
+ * @enum {string}
8
+ * @description
9
+ * 此枚舉列出所有視覺辨識相關的事件子類型,
10
+ * 例如超速、車禍、倒地等。
11
+ */
12
+ var VisualSubType;
13
+ (function (VisualSubType) {
14
+ /** 超速 */
15
+ VisualSubType["OverSpeed"] = "overSpeed";
16
+ /** 車禍 */
17
+ VisualSubType["CarAccident"] = "carAccident";
18
+ /** 倒地 */
19
+ VisualSubType["FallDown"] = "fallDown";
20
+ /** 違規右轉 */
21
+ VisualSubType["IllegalRightTurn"] = "illegalRightTurn";
22
+ /** 異常停留 */
23
+ VisualSubType["AbnormalStay"] = "abnormalStay";
24
+ /** 穿著不正確 */
25
+ VisualSubType["ImproperDress"] = "improperDress";
26
+ /** 器械數量錯誤 */
27
+ VisualSubType["EquipmentCountError"] = "equipmentCountError";
28
+ /** 器械順序錯誤 */
29
+ VisualSubType["EquipmentOrderError"] = "equipmentOrderError";
30
+ })(VisualSubType || (exports.VisualSubType = VisualSubType = {}));
31
+ /**
32
+ * 系統類事件子類型 (SystemSubType)
33
+ *
34
+ * @enum {string}
35
+ * @description
36
+ * 此枚舉列出所有系統相關的事件子類型,
37
+ * 例如設備故障、服務崩潰、數據異常等。
38
+ */
39
+ var SystemSubType;
40
+ (function (SystemSubType) {
41
+ /** 設備故障 */
42
+ SystemSubType["DeviceFailure"] = "deviceFailure";
43
+ /** 服務崩潰 */
44
+ SystemSubType["ServiceCrash"] = "serviceCrash";
45
+ /** 數據異常 */
46
+ SystemSubType["DataAnomaly"] = "dataAnomaly";
47
+ })(SystemSubType || (exports.SystemSubType = SystemSubType = {}));
48
+ /**
49
+ * 使用者行為類事件子類型 (UserBehaviorSubType)
50
+ *
51
+ * @enum {string}
52
+ * @description
53
+ * 此枚舉列出所有使用者行為相關的事件子類型,
54
+ * 例如異常登入、權限違規操作等。
55
+ */
56
+ var UserBehaviorSubType;
57
+ (function (UserBehaviorSubType) {
58
+ /** 異常登入 */
59
+ UserBehaviorSubType["AbnormalLogin"] = "abnormalLogin";
60
+ /** 權限違規操作 */
61
+ UserBehaviorSubType["PermissionViolation"] = "permissionViolation";
62
+ })(UserBehaviorSubType || (exports.UserBehaviorSubType = UserBehaviorSubType = {}));
63
+ /**
64
+ * 醫療類事件子類型 (MedicalSubType)
65
+ *
66
+ * @enum {string}
67
+ * @description
68
+ * 此枚舉列出所有醫療相關的事件子類型,
69
+ * 例如抵達等候室時間、手術開始時間等。
70
+ */
71
+ var MedicalSubType;
72
+ (function (MedicalSubType) {
73
+ /** 抵達等候室時間 */
74
+ MedicalSubType["ArriveWaitingRoomTime"] = "arriveWaitingRoomTime";
75
+ /** 入手術房時間 */
76
+ MedicalSubType["EnterOperatingRoomTime"] = "enterOperatingRoomTime";
77
+ /** 麻醉開始時間 */
78
+ MedicalSubType["AnesthesiaStartTime"] = "anesthesiaStartTime";
79
+ /** 手術開始時間 */
80
+ MedicalSubType["SurgeryStartTime"] = "surgeryStartTime";
81
+ /** 手術結束時間 */
82
+ MedicalSubType["SurgeryEndTime"] = "surgeryEndTime";
83
+ /** 病人至下個單位時間 */
84
+ MedicalSubType["PatientToNextUnitTime"] = "patientToNextUnitTime";
85
+ /** 手術類別 */
86
+ MedicalSubType["SurgeryType"] = "surgeryType";
87
+ /** 麻醉方式 */
88
+ MedicalSubType["AnesthesiaType"] = "anesthesiaType";
89
+ /** 照會其他科手術 */
90
+ MedicalSubType["ConsultOtherDepartmentSurgery"] = "consultOtherDepartmentSurgery";
91
+ /** 擺位正確 */
92
+ MedicalSubType["CorrectPositioning"] = "correctPositioning";
93
+ /** 植入物 */
94
+ MedicalSubType["Implant"] = "implant";
95
+ /** Timeout查核項目/時間 */
96
+ MedicalSubType["TimeoutCheckItemTime"] = "timeoutCheckItemTime";
97
+ /** 確認血品 */
98
+ MedicalSubType["ConfirmBloodProduct"] = "confirmBloodProduct";
99
+ /** 畫刀前六十分鐘內給予預防性抗生素 */
100
+ MedicalSubType["AdministerProphylacticAntibioticWithin60MinutesBeforeIncision"] = "administerProphylacticAntibioticWithin60MinutesBeforeIncision";
101
+ })(MedicalSubType || (exports.MedicalSubType = MedicalSubType = {}));
102
+ /**
103
+ * 統合的事件子類型 (EventSubType)
104
+ *
105
+ * @typedef {VisualSubType | SystemSubType | UserBehaviorSubType} EventSubType
106
+ * @description
107
+ * 利用 TypeScript 聯合型別 (Union) 將三個不同的大類事件子類型合併。
108
+ * 若程式中某處需要一個既能表示「視覺辨識類」、
109
+ * 「系統異常類」或「使用者行為類」的子類型,則可使用本型別。
110
+ */
111
+ // export type EventSubType = VisualSubType |
112
+ // SystemSubType |
113
+ // UserBehaviorSubType |
114
+ // MedicalSubType;
115
+ exports.EventSubTypeEnum = [
116
+ ...Object.values(VisualSubType),
117
+ ...Object.values(SystemSubType),
118
+ ...Object.values(UserBehaviorSubType),
119
+ ...Object.values(MedicalSubType),
120
+ ];
121
+ // /**
122
+ // * **事件介面**
123
+ // * 用於記錄系統內發生的各種事件。
124
+ // *
125
+ // * - **`type`**:事件大分類(視覺辨識 / 系統類 / 使用者行為)。
126
+ // * - **`subType`**:具體事件子類型,例如 `overspeed`、`carAccident` 等。
127
+ // * - **`freeTags`**:可額外標註任何關鍵字或標籤,讓系統可彈性紀錄事件。
128
+ // * - **`description`**:事件描述文字。
129
+ // * - **`[scheduleId]`** _(可選)_:需要循環時才關聯 Schedule。
130
+ // * - **`[templateId]`** _(可選)_:根據模板產生。
131
+ // *
132
+ // * @interface Event
133
+ // */
134
+ // export interface IEvent extends Base {
135
+ // /**
136
+ // * 事件大分類,如視覺辨識 (visual)、系統類 (system) 或使用者行為 (userBehavior)。
137
+ // */
138
+ // type: EventType;
139
+ // /**
140
+ // * 事件子類型,具體類型視 type 欄位而定,例如 overSpeed、deviceFailure、abnormalLogin。
141
+ // */
142
+ // subType: string;
143
+ // /**
144
+ // * 與此事件相關的父實體種類,例如 'SurgicalReport'、'Camera' 等。
145
+ // */
146
+ // relateType?: string;
147
+ // /**
148
+ // * 此事件關聯的父實體 ID(由 relateType 指明所屬實體的主鍵或 UUID)。
149
+ // */
150
+ // relateId?: string;
151
+ // /**
152
+ // * 可自由添加的標籤,用於更靈活地分類和搜尋事件。
153
+ // * 例如:['緊急', '需處理', '高風險'] 或 ['定期檢查', '維護']
154
+ // */
155
+ // freeTags: string[];
156
+ // /**
157
+ // * 事件的詳細描述,說明事件的具體情況。
158
+ // * 例如:'攝影機A偵測到一輛車速超過80km/h,地點:中山路口。'
159
+ // */
160
+ // description: string;
161
+ // /**
162
+ // * 關聯的排程ID,僅當事件需要循環執行時才設定。
163
+ // */
164
+ // scheduleId?: string;
165
+ // /**
166
+ // * 關聯的模板ID,表示此事件是根據特定模板產生的。
167
+ // */
168
+ // templateId?: string;
169
+ // }
170
+ /**
171
+ * **事件狀態 (EventStatus)**
172
+ *
173
+ * 定義事件處理的常見狀態:
174
+ * - **`Unprocessed`**:事件尚未處理(初始狀態)。
175
+ * - **`Notified`**:事件已通知相關人員,但尚未開始處理。
176
+ * - **`Processing`**:事件正在處理中。
177
+ * - **`Completed`**:事件處理完成。
178
+ *
179
+ * @enum {string}
180
+ */
181
+ var EventStatus;
182
+ (function (EventStatus) {
183
+ EventStatus["Unprocessed"] = "unprocessed";
184
+ EventStatus["Notified"] = "notified";
185
+ EventStatus["Processing"] = "processing";
186
+ EventStatus["Completed"] = "completed";
187
+ })(EventStatus || (exports.EventStatus = EventStatus = {}));
188
+ var SubjectType;
189
+ (function (SubjectType) {
190
+ SubjectType["Entrance"] = "Entrance";
191
+ SubjectType["Camera"] = "Camera";
192
+ SubjectType["Device"] = "Device";
193
+ SubjectType["User"] = "User";
194
+ })(SubjectType || (exports.SubjectType = SubjectType = {}));
195
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../models/event.ts"],"names":[],"mappings":";;;AAIA;;;;;;;GAOG;AACH,IAAY,aAwBX;AAxBD,WAAY,aAAa;IACvB,SAAS;IACT,wCAAuB,CAAA;IAEvB,SAAS;IACT,4CAA2B,CAAA;IAE3B,SAAS;IACT,sCAAqB,CAAA;IAErB,WAAW;IACX,sDAAqC,CAAA;IAErC,WAAW;IACX,8CAA6B,CAAA;IAE7B,YAAY;IACZ,gDAA+B,CAAA;IAE/B,aAAa;IACb,4DAA2C,CAAA;IAE3C,aAAa;IACb,4DAA2C,CAAA;AAC7C,CAAC,EAxBW,aAAa,6BAAb,aAAa,QAwBxB;AACD;;;;;;;EAOE;AACF,IAAY,aASX;AATD,WAAY,aAAa;IACvB,WAAW;IACX,gDAA+B,CAAA;IAE/B,WAAW;IACX,8CAA6B,CAAA;IAE7B,WAAW;IACX,4CAA2B,CAAA;AAC7B,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB;AACD;;;;;;;EAOE;AACF,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,WAAW;IACX,sDAA+B,CAAA;IAE/B,aAAa;IACb,kEAA2C,CAAA;AAC7C,CAAC,EANW,mBAAmB,mCAAnB,mBAAmB,QAM9B;AAED;;;;;;;GAOG;AACH,IAAY,cA0CX;AA1CD,WAAY,cAAc;IACxB,cAAc;IACd,iEAA+C,CAAA;IAE/C,aAAa;IACb,mEAAiD,CAAA;IAEjD,aAAa;IACb,6DAA2C,CAAA;IAE3C,aAAa;IACb,uDAAqC,CAAA;IAErC,aAAa;IACb,mDAAiC,CAAA;IAEjC,gBAAgB;IAChB,iEAA+C,CAAA;IAE/C,WAAW;IACX,6CAA2B,CAAA;IAE3B,WAAW;IACX,mDAAiC,CAAA;IAEjC,cAAc;IACd,iFAA+D,CAAA;IAE/D,WAAW;IACX,2DAAyC,CAAA;IAEzC,UAAU;IACV,qCAAmB,CAAA;IAEnB,qBAAqB;IACrB,+DAA6C,CAAA;IAE7C,WAAW;IACX,6DAA2C,CAAA;IAE3C,uBAAuB;IACvB,iJAA+H,CAAA;AACjI,CAAC,EA1CW,cAAc,8BAAd,cAAc,QA0CzB;AAED;;;;;;;;EAQE;AACF,6CAA6C;AAC7C,oBAAoB;AACpB,0BAA0B;AAC1B,oBAAoB;AAEP,QAAA,gBAAgB,GAAG;IAC9B,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IAC/B,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IAC/B,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACrC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;CACxB,CAAC;AAIX,MAAM;AACN,gBAAgB;AAChB,qBAAqB;AACrB,KAAK;AACL,+CAA+C;AAC/C,+DAA+D;AAC/D,kDAAkD;AAClD,mCAAmC;AACnC,qDAAqD;AACrD,2CAA2C;AAC3C,KAAK;AACL,sBAAsB;AACtB,MAAM;AACN,yCAAyC;AACzC,QAAQ;AACR,gEAAgE;AAChE,QAAQ;AACR,qBAAqB;AAErB,QAAQ;AACR,uEAAuE;AACvE,QAAQ;AACR,qBAAqB;AAErB,QAAQ;AACR,oDAAoD;AACpD,QAAQ;AACR,yBAAyB;AAEzB,QAAQ;AACR,mDAAmD;AACnD,QAAQ;AACR,uBAAuB;AAEvB,QAAQ;AACR,+BAA+B;AAC/B,gDAAgD;AAChD,QAAQ;AACR,wBAAwB;AAExB,QAAQ;AACR,0BAA0B;AAC1B,yCAAyC;AACzC,QAAQ;AACR,yBAAyB;AAEzB,QAAQ;AACR,+BAA+B;AAC/B,QAAQ;AACR,yBAAyB;AAEzB,QAAQ;AACR,gCAAgC;AAChC,QAAQ;AACR,yBAAyB;AACzB,IAAI;AACJ;;;;;;;;;;GAUG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,0CAA2B,CAAA;IAC3B,oCAAqB,CAAA;IACrB,wCAAyB,CAAA;IACzB,sCAAuB,CAAA;AACzB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;AACf,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB"}
@@ -0,0 +1,19 @@
1
+ export * from './account';
2
+ export * from './attachment';
3
+ export * from './camera';
4
+ export * from './chatroom';
5
+ export * from './device';
6
+ export * from './event';
7
+ export * from './map';
8
+ export * from './inform';
9
+ export * from './permission';
10
+ export * from './report';
11
+ export * from './role';
12
+ export * from './schedule';
13
+ export * from './task';
14
+ export * from './template';
15
+ export * from './user';
16
+ export * from './utils';
17
+ export * from './auth-credential';
18
+ export * from './ui-item';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../models/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./account"), exports);
18
+ __exportStar(require("./attachment"), exports);
19
+ __exportStar(require("./camera"), exports);
20
+ __exportStar(require("./chatroom"), exports);
21
+ __exportStar(require("./device"), exports);
22
+ __exportStar(require("./event"), exports);
23
+ __exportStar(require("./map"), exports);
24
+ __exportStar(require("./inform"), exports);
25
+ __exportStar(require("./permission"), exports);
26
+ __exportStar(require("./report"), exports);
27
+ __exportStar(require("./role"), exports);
28
+ __exportStar(require("./schedule"), exports);
29
+ __exportStar(require("./task"), exports);
30
+ __exportStar(require("./template"), exports);
31
+ __exportStar(require("./user"), exports);
32
+ __exportStar(require("./utils"), exports);
33
+ __exportStar(require("./auth-credential"), exports);
34
+ __exportStar(require("./ui-item"), exports);
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,0CAAwB;AACxB,wCAAsB;AACtB,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB;AACzB,yCAAuB;AACvB,6CAA2B;AAC3B,yCAAuB;AACvB,6CAA2B;AAC3B,yCAAuB;AACvB,0CAAwB;AACxB,oDAAkC;AAClC,4CAA0B"}
@@ -0,0 +1,146 @@
1
+ import { Attachment } from "./attachment";
2
+ import { EventSubType } from "./event";
3
+ import { EventInformTemplate, EventType } from "./template";
4
+ import { Base } from "./utils";
5
+ /**
6
+ * **通知發送渠道**
7
+ *
8
+ * 定義通知的傳送方式:
9
+ * - **`Email`**:透過電子郵件發送通知。
10
+ * - **`SMS`**:透過簡訊發送通知。
11
+ * - **`FCM`**:透過 Firebase Cloud Messaging (Android/Web) 推送通知。
12
+ * - **`APNs`**:透過 Apple Push Inform Service (iOS) 推送通知。
13
+ * - **`Web`**:透過通知 Web 。
14
+ * - **`Webhook`**:透過 Webhook 送達通知。
15
+ */
16
+ export declare enum InformChannel {
17
+ /** 電子郵件 */
18
+ Email = "email",
19
+ /** 簡訊 (SMS) */
20
+ SMS = "sms",
21
+ /** Firebase Cloud Messaging */
22
+ FCM = "fcm",
23
+ /** Apple Push Inform Service */
24
+ APNs = "apns",
25
+ /** Web */
26
+ Web = "web",
27
+ /** Webhook */
28
+ Webhook = "webhook"
29
+ }
30
+ /**
31
+ * **通知狀態**
32
+ *
33
+ * 定義通知的處理狀態:
34
+ * - **`Pending`**:尚未發送。
35
+ * - **`Sent`**:已發送。
36
+ * - **`Read`**:已讀取。
37
+ * - **`Failed`**:發送失敗。
38
+ */
39
+ export declare enum InformStatus {
40
+ /** 通知已建立,尚未發送。 */
41
+ Pending = "pending",
42
+ /** 通知已發送。 */
43
+ Sent = "sent",
44
+ /** 通知已讀取。 */
45
+ Read = "read",
46
+ /** 通知發送失敗。 */
47
+ Failed = "failed"
48
+ }
49
+ /**
50
+ * **通知主表**
51
+ *
52
+ * - **`subject`**:通知主旨。
53
+ * - **`content`**:通知內容。
54
+ * - **`[templateId]`** _(可選)_: 根據模板設定什麼事件需要通知。
55
+ */
56
+ export interface Inform extends Base {
57
+ /** 通知的主旨。 */
58
+ subject: string;
59
+ /** 通知的內容。 */
60
+ content: string;
61
+ /** 根據模板設定什麼事件需要通知。 */
62
+ templateId?: EventInformTemplate;
63
+ }
64
+ export type InformAttachment = Attachment & {
65
+ attachTo?: never;
66
+ /** 關聯的通知 ID。 */
67
+ informId: Inform['id'];
68
+ };
69
+ /**
70
+ * **通知狀態表**
71
+ *
72
+ * 每個收件人對應一條記錄,追蹤其通知的讀取與發送狀態。
73
+ *
74
+ * - **`informId`**:關聯的通知 ID。
75
+ * - **`recipientId`**:收件者 ID (使用者 ID / Webhook URL)。
76
+ * - **`channel`**:通知發送渠道(Email/SMS/FCM/APNs/Webhook)。
77
+ * - **`status`**:通知的狀態(Pending/Sent/Read/Failed)。
78
+ * - **`[readAt]`** _(可選)_:通知讀取時間。
79
+ */
80
+ export interface InformStatusRecord extends Base {
81
+ /** 關聯的通知 ID */
82
+ informId: Inform["id"];
83
+ /**
84
+ * 收件者 ID:
85
+ * - 若 `channel` 為 Email / SMS / FCM / APNs,則此處為使用者 ID。
86
+ * - 若 `channel` 為 Webhook,則此處為 Webhook URL。
87
+ */
88
+ recipientId: string;
89
+ /** 發送渠道 (Email / SMS / FCM / APNs / Webhook)。 */
90
+ channel: InformChannel;
91
+ /** 通知狀態。 */
92
+ status: InformStatus;
93
+ /** 通知讀取時間,若尚未讀取則為 `undefined`。 */
94
+ readAt?: Date;
95
+ }
96
+ /**
97
+ * **通知策略類型**
98
+ *
99
+ * - `Repeated`:持續通知 X 次,每次間隔 Y 分鐘,直到 Z 分鐘或者被 attachment 標記已處理。
100
+ * - `Difference`:當 event 的同一種類的子類型 T1 和 T0 出現差異時通知。
101
+ */
102
+ export declare enum InformStrategyType {
103
+ Repeated = "repeated",
104
+ Difference = "difference"
105
+ }
106
+ /**
107
+ * **持續通知策略**
108
+ *
109
+ * 當事件發生時,按照設定的次數與時間間隔發送通知,直到條件滿足。
110
+ *
111
+ * - `maxAttempts`:最大通知次數 (X)。
112
+ * - `intervalMinutes`:每次通知的時間間隔 (Y)(分鐘)。
113
+ * - `coolDownMinutes`:通知冷卻時間 (Z)(分鐘)。
114
+ * - `attachmentIdToResolve`:當特定附件標記已處理時停止通知。
115
+ */
116
+ export interface RepeatedInformStrategy {
117
+ strategy: InformStrategyType.Repeated;
118
+ /** 最大通知次數 (X) */
119
+ maxAttempts: number;
120
+ /** 每次通知的時間間隔 (Y)(分鐘) */
121
+ intervalMinutes: number;
122
+ /** 通知冷卻時間 (Z)(分鐘) */
123
+ coolDownMinutes: number;
124
+ /** 若指定附件 ID 被標記已處理,則提前終止通知 */
125
+ attachmentIdToResolve?: string;
126
+ }
127
+ /**
128
+ * **子類型變化通知策略**
129
+ *
130
+ * 當同一事件類別 (`type`) 下的不同子類型 (`subType`) 出現變化時觸發通知。
131
+ *
132
+ * - `type`:事件類別,如 `visual`、`system`。
133
+ * - `previousSubType`:之前的事件子類型 (T0)。
134
+ * - `currentSubType`:新的事件子類型 (T1)。
135
+ */
136
+ export interface SubTypeDifferenceInformStrategy {
137
+ strategy: InformStrategyType.Difference;
138
+ /** 事件類別 (例如 `visual` 或 `system`) */
139
+ type: EventType;
140
+ /** 之前的事件子類型 (T0) */
141
+ previousSubType: EventSubType;
142
+ /** 當前的事件子類型 (T1) */
143
+ currentSubType: EventSubType;
144
+ }
145
+ export type InformStrategyConfig = RepeatedInformStrategy | SubTypeDifferenceInformStrategy;
146
+ //# sourceMappingURL=inform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inform.d.ts","sourceRoot":"","sources":["../../models/inform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;;;;;;;;;;GAUG;AACH,oBAAY,aAAa;IACvB,WAAW;IACX,KAAK,UAAU;IAEf,eAAe;IACf,GAAG,QAAQ;IAEX,+BAA+B;IAC/B,GAAG,QAAQ;IAEX,gCAAgC;IAChC,IAAI,SAAS;IAEb,UAAU;IACV,GAAG,QAAQ;IAEX,cAAc;IACd,OAAO,YAAY;CACpB;AAED;;;;;;;;GAQG;AACH,oBAAY,YAAY;IACtB,kBAAkB;IAClB,OAAO,YAAY;IAEnB,aAAa;IACb,IAAI,SAAS;IAEb,aAAa;IACb,IAAI,SAAS;IAEb,cAAc;IACd,MAAM,WAAW;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,MAAO,SAAQ,IAAI;IAClC,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAEhB,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAEhB,sBAAsB;IACtB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AACD,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC1C,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;CACxB,CAAA;AAGD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI;IAC9C,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB,iDAAiD;IACjD,OAAO,EAAE,aAAa,CAAC;IAEvB,YAAY;IACZ,MAAM,EAAE,YAAY,CAAC;IAErB,kCAAkC;IAClC,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAGD;;;;;GAKG;AACH,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AACD;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IAEtC,iBAAiB;IACjB,WAAW,EAAE,MAAM,CAAC;IAEpB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IAExB,qBAAqB;IACrB,eAAe,EAAE,MAAM,CAAC;IAExB,8BAA8B;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC;IAExC,oCAAoC;IACpC,IAAI,EAAE,SAAS,CAAC;IAEhB,oBAAoB;IACpB,eAAe,EAAE,YAAY,CAAC;IAE9B,oBAAoB;IACpB,cAAc,EAAE,YAAY,CAAC;CAC9B;AACD,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GACvD,+BAA+B,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InformStrategyType = exports.InformStatus = exports.InformChannel = void 0;
4
+ /**
5
+ * **通知發送渠道**
6
+ *
7
+ * 定義通知的傳送方式:
8
+ * - **`Email`**:透過電子郵件發送通知。
9
+ * - **`SMS`**:透過簡訊發送通知。
10
+ * - **`FCM`**:透過 Firebase Cloud Messaging (Android/Web) 推送通知。
11
+ * - **`APNs`**:透過 Apple Push Inform Service (iOS) 推送通知。
12
+ * - **`Web`**:透過通知 Web 。
13
+ * - **`Webhook`**:透過 Webhook 送達通知。
14
+ */
15
+ var InformChannel;
16
+ (function (InformChannel) {
17
+ /** 電子郵件 */
18
+ InformChannel["Email"] = "email";
19
+ /** 簡訊 (SMS) */
20
+ InformChannel["SMS"] = "sms";
21
+ /** Firebase Cloud Messaging */
22
+ InformChannel["FCM"] = "fcm";
23
+ /** Apple Push Inform Service */
24
+ InformChannel["APNs"] = "apns";
25
+ /** Web */
26
+ InformChannel["Web"] = "web";
27
+ /** Webhook */
28
+ InformChannel["Webhook"] = "webhook";
29
+ })(InformChannel || (exports.InformChannel = InformChannel = {}));
30
+ /**
31
+ * **通知狀態**
32
+ *
33
+ * 定義通知的處理狀態:
34
+ * - **`Pending`**:尚未發送。
35
+ * - **`Sent`**:已發送。
36
+ * - **`Read`**:已讀取。
37
+ * - **`Failed`**:發送失敗。
38
+ */
39
+ var InformStatus;
40
+ (function (InformStatus) {
41
+ /** 通知已建立,尚未發送。 */
42
+ InformStatus["Pending"] = "pending";
43
+ /** 通知已發送。 */
44
+ InformStatus["Sent"] = "sent";
45
+ /** 通知已讀取。 */
46
+ InformStatus["Read"] = "read";
47
+ /** 通知發送失敗。 */
48
+ InformStatus["Failed"] = "failed";
49
+ })(InformStatus || (exports.InformStatus = InformStatus = {}));
50
+ /**
51
+ * **通知策略類型**
52
+ *
53
+ * - `Repeated`:持續通知 X 次,每次間隔 Y 分鐘,直到 Z 分鐘或者被 attachment 標記已處理。
54
+ * - `Difference`:當 event 的同一種類的子類型 T1 和 T0 出現差異時通知。
55
+ */
56
+ var InformStrategyType;
57
+ (function (InformStrategyType) {
58
+ InformStrategyType["Repeated"] = "repeated";
59
+ InformStrategyType["Difference"] = "difference";
60
+ })(InformStrategyType || (exports.InformStrategyType = InformStrategyType = {}));
61
+ //# sourceMappingURL=inform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inform.js","sourceRoot":"","sources":["../../models/inform.ts"],"names":[],"mappings":";;;AAMA;;;;;;;;;;GAUG;AACH,IAAY,aAkBX;AAlBD,WAAY,aAAa;IACvB,WAAW;IACX,gCAAe,CAAA;IAEf,eAAe;IACf,4BAAW,CAAA;IAEX,+BAA+B;IAC/B,4BAAW,CAAA;IAEX,gCAAgC;IAChC,8BAAa,CAAA;IAEb,UAAU;IACV,4BAAW,CAAA;IAEX,cAAc;IACd,oCAAmB,CAAA;AACrB,CAAC,EAlBW,aAAa,6BAAb,aAAa,QAkBxB;AAED;;;;;;;;GAQG;AACH,IAAY,YAYX;AAZD,WAAY,YAAY;IACtB,kBAAkB;IAClB,mCAAmB,CAAA;IAEnB,aAAa;IACb,6BAAa,CAAA;IAEb,aAAa;IACb,6BAAa,CAAA;IAEb,cAAc;IACd,iCAAiB,CAAA;AACnB,CAAC,EAZW,YAAY,4BAAZ,YAAY,QAYvB;AA2DD;;;;;GAKG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;AAC3B,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B"}
@@ -0,0 +1,26 @@
1
+ import { Base } from './utils';
2
+ /**
3
+ * **地圖介面**
4
+ * 用於儲存地圖的基本資訊,例如室內平面圖片及說明等。
5
+ *
6
+ * - **`name`**:地圖名稱。
7
+ * - **`imageUrl`**:地圖圖片的 URL,描述室內平面的圖片。
8
+ * - **`width`**:圖片長。
9
+ * - **`height`**圖片寬。
10
+ * - **`[description]`** _(可選)_:對地圖的附加說明,若無則為 `undefined`。
11
+ *
12
+ * @interface Map
13
+ */
14
+ export interface Map extends Base {
15
+ /** 地圖名稱。 */
16
+ name: string;
17
+ /** 地圖圖片的 URL,描述室內平面的圖片。 */
18
+ imageUrl: string;
19
+ /** 圖片長 */
20
+ width: number;
21
+ /** 圖片寬 */
22
+ height: number;
23
+ /** 對地圖的附加說明,若無則為 `undefined`。 */
24
+ description?: string;
25
+ }
26
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../models/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,GAAI,SAAQ,IAAI;IAC/B,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IAEd,UAAU;IACV,MAAM,EAAE,MAAM,CAAC;IAEf,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../models/map.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * **權限類別 (PermissionCategory)**
3
+ *
4
+ * 列舉所有權限的領域,讓每個權限可以歸屬到特定類別。
5
+ * 定義本系統中所有可能的功能/子系統。
6
+ * 例如:Chatroom, Inform, Event, Group, Server ...
7
+ * 未來若出現新功能,可在此擴充。
8
+ */
9
+ export declare enum PermissionCategory {
10
+ /** 聊天室 */
11
+ Chatroom = "chatroom",
12
+ Inform = "inform",
13
+ Event = "event",
14
+ Report = "report",
15
+ Group = "group",
16
+ Server = "server"
17
+ }
18
+ /**
19
+ * **聊天室可用動作 (ChatroomPermissionAction)**
20
+ */
21
+ export declare enum ChatroomPermissionAction {
22
+ /** 可讀取訊息 */
23
+ ReadMessage = "readMessage",
24
+ /** 可傳送訊息 */
25
+ SendMessage = "sendMessage",
26
+ /** 可編輯/刪除他人訊息 */
27
+ ManageMessages = "manageMessages",
28
+ /** 可管理聊天室 (新增移除成員、修改設定) */
29
+ ManageChatroom = "manageChatroom"
30
+ }
31
+ export declare enum ServerPermissionAction {
32
+ RestartServer = "restartServer",
33
+ ManageUsers = "manageUsers",
34
+ ConfigureSettings = "configureSettings"
35
+ }
36
+ export declare enum ReportPermissionAction {
37
+ ViewReport = "viewReport",
38
+ GenerateReport = "generateReport"
39
+ }
40
+ export declare enum GroupPermissionAction {
41
+ ViewGroup = "viewGroup",
42
+ CreateGroup = "createGroup",
43
+ EditGroup = "editGroup",
44
+ DeleteGroup = "deleteGroup",
45
+ ManageMembers = "manageMembers"
46
+ }
47
+ export declare enum InformPermissionAction {
48
+ ViewNotifications = "viewNotifications",
49
+ SendNotifications = "sendNotifications",
50
+ ManageNotifications = "manageNotifications"
51
+ }
52
+ export declare enum EventPermissionAction {
53
+ ViewEvent = "viewEvent",
54
+ CreateEvent = "createEvent",
55
+ EditEvent = "editEvent",
56
+ DeleteEvent = "deleteEvent",
57
+ ManageParticipants = "manageParticipants"
58
+ }
59
+ export type PermissionAction = ChatroomPermissionAction | ServerPermissionAction | ReportPermissionAction | GroupPermissionAction | InformPermissionAction | EventPermissionAction;
60
+ export declare const PermissionActionMap: Record<PermissionCategory, Record<string, string>>;
61
+ /**
62
+ * **權限 (Permission)**
63
+ *
64
+ * - **`id`**:唯一識別碼,用於標識該物件。
65
+ * - **`category`**:權限所屬的類別
66
+ * - **`action`**:可執行的動作 (如 "read", "create", "manageMessages" ...)
67
+ * - **`[description]`** _(可選)_:補充說明此權限在系統中代表的含義
68
+ */
69
+ export interface Permission {
70
+ /** 唯一識別碼,用於標識該物件。 */
71
+ id: string;
72
+ /** 權限所屬的類別 */
73
+ category: PermissionCategory;
74
+ /**
75
+ * 權限的動作名稱,可用於程式邏輯判斷。
76
+ * 例如 "read", "write", "manageMessages", "viewAnalytics"...
77
+ * 視實際需求而定,可以自由定義。
78
+ */
79
+ action: PermissionAction;
80
+ /** 權限的補充說明,若無則為 `undefined` */
81
+ description?: string;
82
+ }
83
+ //# sourceMappingURL=permission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../models/permission.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AACH,oBAAY,kBAAkB;IAC5B,UAAU;IACV,QAAQ,aAAa;IAErB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CAElB;AAGD;;GAEG;AACH,oBAAY,wBAAwB;IAClC,YAAY;IACZ,WAAW,gBAAgB;IAE3B,YAAY;IACZ,WAAW,gBAAgB;IAE3B,iBAAiB;IACjB,cAAc,mBAAmB;IAEjC,2BAA2B;IAC3B,cAAc,mBAAmB;CAClC;AAED,oBAAY,sBAAsB;IAChC,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,iBAAiB,sBAAsB;CACxC;AAED,oBAAY,sBAAsB;IAChC,UAAU,eAAe;IACzB,cAAc,mBAAmB;CAClC;AAED,oBAAY,qBAAqB;IAC/B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAChC;AAED,oBAAY,sBAAsB;IAChC,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;CAC5C;AAED,oBAAY,qBAAqB;IAC/B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;CAC1C;AAED,MAAM,MAAM,gBAAgB,GAC1B,wBAAwB,GACxB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,CAAA;AAEvB,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IAEX,cAAc;IACd,QAAQ,EAAE,kBAAkB,CAAC;IAE7B;;;;OAIG;IACH,MAAM,EAAE,gBAAgB,CAAC;IAEzB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}