@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 @@
1
+ {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../models/attachment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.imagePurposeArray = exports.textPurposeArray = void 0;
4
+ // note = 人工備註(人員輸入的說明)
5
+ // analysis = 系統自動分析結論(例如 AI summary)
6
+ // ocr = 影像轉文字結果
7
+ // systemLog = 系統內部 log/trace
8
+ exports.textPurposeArray = ["note", "analysis", "ocr", "systemLog"];
9
+ /**
10
+ * **圖片用途類型**
11
+ *
12
+ * 定義圖片在系統中的不同用途分類:
13
+ * - **`cover`**:封面圖片 - 用作事件、報告或內容的主要展示圖片
14
+ * - **`reference`**:參考圖片 - 提供額外的參考信息或背景資料
15
+ * - **`evidence`**:證據圖片 - 用於記錄或證明特定事實、狀況的圖片
16
+ * - **`derived`**:衍生圖片 - 從其他圖片處理、分析或生成的圖片
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const coverImage: ImagePurpose = "cover";
21
+ * const evidencePhoto: ImagePurpose = "evidence";
22
+ * ```
23
+ */
24
+ exports.imagePurposeArray = ["cover", "reference", "evidence", "derived"];
25
+ //# sourceMappingURL=attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../models/attachment.ts"],"names":[],"mappings":";;;AA6CA,uBAAuB;AACvB,qCAAqC;AACrC,gBAAgB;AAChB,6BAA6B;AAChB,QAAA,gBAAgB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;AAkBxE;;;;;;;;;;;;;;GAcG;AACU,QAAA,iBAAiB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { User } from "./user";
2
+ import { Base } from "./utils";
3
+ export declare enum BiometricType {
4
+ Face = "face",
5
+ Voice = "voice",
6
+ Fingerprint = "fingerprint"
7
+ }
8
+ export interface PasswordCredential extends Base {
9
+ /** 關聯的使用者 ID。 */
10
+ userId: User["id"];
11
+ /** 密碼 */
12
+ passwordHash: string;
13
+ /** 是否啟用此密碼登入 */
14
+ isActive: boolean;
15
+ }
16
+ export interface BiometricCredential extends Base {
17
+ /** 關聯的使用者 ID。 */
18
+ userId: User["id"];
19
+ /** 生物識別憑證類型 */
20
+ biometricType: BiometricType;
21
+ /** 特徵檔案的儲存路徑 */
22
+ embeddingFilePath: string;
23
+ /** 原始檔案的儲存路徑 */
24
+ rawFilePath: string;
25
+ /** 是否啟用此生物識別憑證 */
26
+ isActive: boolean;
27
+ /** 描述此生物識別憑證 (例如: 右手食指) */
28
+ description: string;
29
+ }
30
+ export interface ThirdPartyCredential extends Base {
31
+ /** 關聯的使用者 ID。 */
32
+ userId: User["id"];
33
+ /** 第三方服務提供者名稱 (例如: Google, Facebook) */
34
+ providerName: string;
35
+ /** 第三方服務提供者的使用者 ID */
36
+ providerUserId: string;
37
+ /** 第三方服務提供者的電子郵件地址 */
38
+ providerEmail: string;
39
+ /** 第三方服務提供者的顯示名稱 */
40
+ providerDisplayName: string;
41
+ /** 第三方服務提供者的頭像 URL */
42
+ providerAvatarUrl: string;
43
+ /** 是否啟用此第三方登入憑證 */
44
+ isActive: boolean;
45
+ }
46
+ //# sourceMappingURL=auth-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-credential.d.ts","sourceRoot":"","sources":["../../models/auth-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI;IAC9C,iBAAiB;IACjB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnB,SAAS;IACT,YAAY,EAAE,MAAM,CAAC;IAErB,gBAAgB;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI;IAC/C,iBAAiB;IACjB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnB,eAAe;IACf,aAAa,EAAE,aAAa,CAAC;IAE7B,gBAAgB;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,gBAAgB;IAChB,WAAW,EAAE,MAAM,CAAC;IAEpB,kBAAkB;IAClB,QAAQ,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI;IAChD,iBAAiB;IACjB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IAErB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IAEvB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;IAEtB,oBAAoB;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,sBAAsB;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,mBAAmB;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BiometricType = void 0;
4
+ var BiometricType;
5
+ (function (BiometricType) {
6
+ BiometricType["Face"] = "face";
7
+ BiometricType["Voice"] = "voice";
8
+ BiometricType["Fingerprint"] = "fingerprint";
9
+ })(BiometricType || (exports.BiometricType = BiometricType = {}));
10
+ //# sourceMappingURL=auth-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-credential.js","sourceRoot":"","sources":["../../models/auth-credential.ts"],"names":[],"mappings":";;;AAGA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,4CAA2B,CAAA;AAC7B,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
@@ -0,0 +1,156 @@
1
+ import { Device } from './device';
2
+ import { Base } from './utils';
3
+ import { Map } from './map';
4
+ /**
5
+ * **攝影機狀態 (CameraStatus)**
6
+ * - **`Inactive`**:系統層面「禁用」此攝影機
7
+ * - **`NoStream`**:尚未開始串流
8
+ * - **`Offline`**:已開始串流,但物理/網路層無法連線
9
+ * - **`Online`**:攝影機正在串流
10
+ */
11
+ export declare enum CameraStatus {
12
+ Inactive = "inactive",
13
+ NoStream = "no_stream",
14
+ Offline = "offline",
15
+ Online = "online"
16
+ }
17
+ export declare const CameraStatusMap: Record<string, CameraStatus>;
18
+ /**
19
+ * **攝影機類型 (CameraType)**
20
+ * - **`Shotgun`**:槍型攝影機
21
+ * - **`Panoramic`**:全景攝影機
22
+ */
23
+ export declare enum CameraType {
24
+ SHOTGUN = "shotgun",
25
+ PANORAMIC = "panoramic"
26
+ }
27
+ /**
28
+ * **攝影機 (Camera)**
29
+ *
30
+ * 繼承自通用的 `Device`,並額外加入攝影機相關的欄位:
31
+ * - **`[rtspUrl]`** (若為 RTSP 型)
32
+ * - **`status`** (Disabled/Offline/NoStream/Online)
33
+ * - **`fps`** _(可選)_: 每秒影格數 (Frames Per Second)
34
+ * - **`encodingFormat`** _(可選)_: 影像編碼格式 (例如 "H.264", "H.265")
35
+ * - **`[mapId]`, `[x]`, `[y]`** _(可選)_: 地圖、定位X, Y座標
36
+ * - **`resolutionWidth`, `resolutionHeight`** _(可選)_: 解析度寬、長
37
+ */
38
+ export interface Camera extends Device {
39
+ /**
40
+ * 攝影機類型 (槍型/全景)
41
+ * @default CameraType.SHOTGUN
42
+ */
43
+ type: CameraType;
44
+ /**
45
+ * 攝影機串流 URL (若為 RTSP)
46
+ * @example "rtsp://192.168.1.100/live/1"
47
+ *
48
+ * - 對 USB 來說可能不適用,可以選擇性處理
49
+ */
50
+ rtspUrl?: string;
51
+ /**
52
+ * 攝影機狀態
53
+ * @default CameraStatus.Offline
54
+ */
55
+ status: CameraStatus;
56
+ /**
57
+ * 解析度寬度 (px)
58
+ * @example 1920
59
+ */
60
+ resolutionWidth?: number;
61
+ /**
62
+ * 解析度高度 (px)
63
+ * @example 1080
64
+ */
65
+ resolutionHeight?: number;
66
+ /**
67
+ * 每秒影格數 (Frames Per Second)。
68
+ * @example 30
69
+ */
70
+ fps?: number;
71
+ /**
72
+ * 影像編碼格式,例如 "H.264" 或 "H.265"。
73
+ * @example "H.264"
74
+ */
75
+ encodingFormat?: string;
76
+ /**
77
+ * 攝影機名稱 (可選)
78
+ * @example "Front Door Camera"
79
+ */
80
+ name: string;
81
+ /**
82
+ * 攝影機代碼 (可選)
83
+ * @example "CAM001"
84
+ */
85
+ code: string;
86
+ /**
87
+ * 攝影機的型號 (DeviceModel)
88
+ * @example "D-Link DCS-930L"
89
+ */
90
+ deviceModel: string;
91
+ /**
92
+ * 裝置/攝影機描述
93
+ * @example "監看大門人流,連接至 NVR-01"
94
+ */
95
+ description?: string;
96
+ location?: {
97
+ coordinates: [string, string];
98
+ area?: string;
99
+ };
100
+ /**
101
+ * 對應的地圖 ID,用於標識此攝影機隸屬哪個地圖
102
+ */
103
+ mapId?: Map['id'];
104
+ localPosition?: {
105
+ /**
106
+ * 攝影機在地圖上的 X 座標 (可選)
107
+ * @example 150
108
+ */
109
+ x: number;
110
+ /**
111
+ * 攝影機在地圖上的 Y 座標 (可選)
112
+ * @example 80
113
+ */
114
+ y: number;
115
+ };
116
+ }
117
+ /**
118
+ * **攝影機歷史影像 (CameraRecording)**
119
+ *
120
+ * 繼承自通用的 `Base`,並額外加入攝影機相關的欄位:
121
+ */
122
+ export interface CameraRecording extends Base {
123
+ /**
124
+ * 攝影機 ID
125
+ */
126
+ cameraId: Camera['id'];
127
+ /**
128
+ * 開始時間
129
+ */
130
+ startTime: Date;
131
+ /**
132
+ * 結束時間
133
+ */
134
+ endTime: Date;
135
+ /**
136
+ * 錄影時長 (單位: 秒)
137
+ * @example 300 // 5分鐘
138
+ */
139
+ during: number;
140
+ /**
141
+ * 影片檔案路徑
142
+ * @example "https://example.com/recordings/video123.mp4"
143
+ */
144
+ videoUrl: string;
145
+ /**
146
+ * 縮圖路徑
147
+ * @example "https://example.com/recordings/snapshot123.jpg"
148
+ */
149
+ snapshotUrl: string;
150
+ /**
151
+ * 影片解析度
152
+ * @example "1920x1080"
153
+ */
154
+ resolution: string;
155
+ }
156
+ //# sourceMappingURL=camera.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../models/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B;;;;;;GAMG;AACH,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,QAAQ,cAAc;IACtB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKxD,CAAC;AAEF;;;;GAIG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAGD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,MAAO,SAAQ,MAAM;IACpC;;;OAGG;IACH,IAAI,EAAE,UAAU,CAAC;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAIF;;MAEE;IACF,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE;QACd;;;SAGC;QACD,CAAC,EAAE,MAAM,CAAC;QAEV;;;WAGG;QACH,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH;AAED;;;;GAIG;AAEH,MAAM,WAAW,eAAgB,SAAQ,IAAI;IAC3C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;IAEd;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CameraType = exports.CameraStatusMap = exports.CameraStatus = void 0;
4
+ /**
5
+ * **攝影機狀態 (CameraStatus)**
6
+ * - **`Inactive`**:系統層面「禁用」此攝影機
7
+ * - **`NoStream`**:尚未開始串流
8
+ * - **`Offline`**:已開始串流,但物理/網路層無法連線
9
+ * - **`Online`**:攝影機正在串流
10
+ */
11
+ var CameraStatus;
12
+ (function (CameraStatus) {
13
+ CameraStatus["Inactive"] = "inactive";
14
+ CameraStatus["NoStream"] = "no_stream";
15
+ CameraStatus["Offline"] = "offline";
16
+ CameraStatus["Online"] = "online";
17
+ })(CameraStatus || (exports.CameraStatus = CameraStatus = {}));
18
+ exports.CameraStatusMap = {
19
+ '在線': CameraStatus.Online,
20
+ '離線': CameraStatus.Offline,
21
+ '無串流': CameraStatus.NoStream,
22
+ '未啟用': CameraStatus.Inactive,
23
+ };
24
+ /**
25
+ * **攝影機類型 (CameraType)**
26
+ * - **`Shotgun`**:槍型攝影機
27
+ * - **`Panoramic`**:全景攝影機
28
+ */
29
+ var CameraType;
30
+ (function (CameraType) {
31
+ CameraType["SHOTGUN"] = "shotgun";
32
+ CameraType["PANORAMIC"] = "panoramic";
33
+ })(CameraType || (exports.CameraType = CameraType = {}));
34
+ //# sourceMappingURL=camera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.js","sourceRoot":"","sources":["../../models/camera.ts"],"names":[],"mappings":";;;AAIA;;;;;;GAMG;AACH,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,sCAAsB,CAAA;IACtB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;AACnB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAEY,QAAA,eAAe,GAAiC;IAC3D,IAAI,EAAE,YAAY,CAAC,MAAM;IACzB,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,KAAK,EAAE,YAAY,CAAC,QAAQ;IAC5B,KAAK,EAAE,YAAY,CAAC,QAAQ;CAC7B,CAAC;AAEF;;;;GAIG;AACH,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;AACzB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
@@ -0,0 +1,55 @@
1
+ import { Base } from './utils';
2
+ import { Membership } from './role';
3
+ import { Attachment } from './attachment';
4
+ /**
5
+ * **聊天室 (Chatroom)**
6
+ *
7
+ * - **`name`**:聊天室名稱
8
+ */
9
+ export interface Chatroom extends Base {
10
+ /** 聊天室名稱 */
11
+ name: string;
12
+ }
13
+ export type Message = Attachment & {
14
+ attachTo?: never;
15
+ chatroomId: Chatroom['id'];
16
+ };
17
+ export type ChatroomMember = Membership & {
18
+ ownerType?: never;
19
+ ownerId?: never;
20
+ chatroomId: Chatroom['id'];
21
+ };
22
+ /**
23
+ * ======================================
24
+ * Channel / Category
25
+ * ======================================
26
+ *
27
+ * 若您需要像 Discord 一樣,在 Server 底下有多個 Category (分類),
28
+ * 在 Category 底下再有多個 Channel (頻道)。
29
+ */
30
+ /**
31
+ * **分類 (Category)**
32
+ * - `serverId`: 隸屬哪個伺服器
33
+ * - `name`: 分類名稱,如 "文字頻道", "語音頻道"
34
+ */
35
+ export interface Category extends Base {
36
+ /** 隸屬哪個伺服器 */
37
+ serverId: string;
38
+ /** 分類名稱 */
39
+ name: string;
40
+ }
41
+ /**
42
+ * **頻道 (Channel)**
43
+ * - `serverId`: 隸屬哪個伺服器
44
+ * - `categoryId`: 所屬的分類 (可選,可能有些頻道不屬於分類)
45
+ * - `name`: 頻道名稱,如 "公告", "閒聊"
46
+ */
47
+ export interface Channel extends Base {
48
+ /** 隸屬哪個伺服器 */
49
+ serverId: string;
50
+ /** 所屬分類 ID,若無則為 undefined */
51
+ categoryId?: Category['id'];
52
+ /** 頻道名稱 */
53
+ name: string;
54
+ }
55
+ //# sourceMappingURL=chatroom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatroom.d.ts","sourceRoot":"","sources":["../../models/chatroom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAQ,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,QAAS,SAAQ,IAAI;IACpC,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;CAC3B,CAAA;AAGD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAA;AAED;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,WAAW,QAAS,SAAQ,IAAI;IACpC,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAQ,SAAQ,IAAI;IACnC,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE5B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=chatroom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatroom.js","sourceRoot":"","sources":["../../models/chatroom.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import { Base } from './utils';
2
+ /**
3
+ * **裝置 (Device)**
4
+ *
5
+ * 作為所有可管理設備的基礎介面,包含通用的欄位:
6
+ * - 名稱、廠牌、型號
7
+ * - 序號、韌體版本
8
+ * - 安裝日期
9
+ * - 心跳時間 (只暫存於記憶體,不進 DB)
10
+ */
11
+ export interface Device extends Base {
12
+ /**
13
+ * 設備名稱
14
+ * @example "大門口攝影機" 或 "溫度感測器 #1"
15
+ */
16
+ name: string;
17
+ /**
18
+ * 廠牌 (如 Dahua, HikVision, 自家廠牌)
19
+ * @example "Dahua"
20
+ */
21
+ manufacturer?: string;
22
+ /**
23
+ * 型號 (如 IPC-HDW2431T-AS)
24
+ * @example "IPC-HDW2431T-AS"
25
+ */
26
+ model?: string;
27
+ /**
28
+ * 設備序號,方便設備管理
29
+ * @example "SN1234567890"
30
+ */
31
+ serialNumber?: string;
32
+ /**
33
+ * 韌體版本,用於維護或更新追蹤
34
+ * @example "v2.3.4"
35
+ */
36
+ firmwareVersion?: string;
37
+ /**
38
+ * 安裝日期,用於記錄何時開始使用
39
+ * @example new Date("2025-01-15")
40
+ */
41
+ installationDate?: Date;
42
+ /**
43
+ * 最後一次健康檢查或心跳 (heartbeat) 時間
44
+ * - **只存在於 RAM 中,不會寫入資料庫**
45
+ * - 可用於判斷裝置是否長期未回報
46
+ * @example new Date()
47
+ */
48
+ lastHeartbeatAt?: Date;
49
+ }
50
+ //# sourceMappingURL=device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../models/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAO,SAAQ,IAAI;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,IAAI,CAAC;IAExB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../models/device.ts"],"names":[],"mappings":""}
@@ -0,0 +1,170 @@
1
+ import { EventCategory, EventType, EventTemplate } from './template';
2
+ import { Base } from './utils';
3
+ /**
4
+ * 視覺辨識類事件子類型 (VisualSubType)
5
+ *
6
+ * @enum {string}
7
+ * @description
8
+ * 此枚舉列出所有視覺辨識相關的事件子類型,
9
+ * 例如超速、車禍、倒地等。
10
+ */
11
+ export declare enum VisualSubType {
12
+ /** 超速 */
13
+ OverSpeed = "overSpeed",
14
+ /** 車禍 */
15
+ CarAccident = "carAccident",
16
+ /** 倒地 */
17
+ FallDown = "fallDown",
18
+ /** 違規右轉 */
19
+ IllegalRightTurn = "illegalRightTurn",
20
+ /** 異常停留 */
21
+ AbnormalStay = "abnormalStay",
22
+ /** 穿著不正確 */
23
+ ImproperDress = "improperDress",
24
+ /** 器械數量錯誤 */
25
+ EquipmentCountError = "equipmentCountError",
26
+ /** 器械順序錯誤 */
27
+ EquipmentOrderError = "equipmentOrderError"
28
+ }
29
+ /**
30
+ * 系統類事件子類型 (SystemSubType)
31
+ *
32
+ * @enum {string}
33
+ * @description
34
+ * 此枚舉列出所有系統相關的事件子類型,
35
+ * 例如設備故障、服務崩潰、數據異常等。
36
+ */
37
+ export declare enum SystemSubType {
38
+ /** 設備故障 */
39
+ DeviceFailure = "deviceFailure",
40
+ /** 服務崩潰 */
41
+ ServiceCrash = "serviceCrash",
42
+ /** 數據異常 */
43
+ DataAnomaly = "dataAnomaly"
44
+ }
45
+ /**
46
+ * 使用者行為類事件子類型 (UserBehaviorSubType)
47
+ *
48
+ * @enum {string}
49
+ * @description
50
+ * 此枚舉列出所有使用者行為相關的事件子類型,
51
+ * 例如異常登入、權限違規操作等。
52
+ */
53
+ export declare enum UserBehaviorSubType {
54
+ /** 異常登入 */
55
+ AbnormalLogin = "abnormalLogin",
56
+ /** 權限違規操作 */
57
+ PermissionViolation = "permissionViolation"
58
+ }
59
+ /**
60
+ * 醫療類事件子類型 (MedicalSubType)
61
+ *
62
+ * @enum {string}
63
+ * @description
64
+ * 此枚舉列出所有醫療相關的事件子類型,
65
+ * 例如抵達等候室時間、手術開始時間等。
66
+ */
67
+ export declare enum MedicalSubType {
68
+ /** 抵達等候室時間 */
69
+ ArriveWaitingRoomTime = "arriveWaitingRoomTime",
70
+ /** 入手術房時間 */
71
+ EnterOperatingRoomTime = "enterOperatingRoomTime",
72
+ /** 麻醉開始時間 */
73
+ AnesthesiaStartTime = "anesthesiaStartTime",
74
+ /** 手術開始時間 */
75
+ SurgeryStartTime = "surgeryStartTime",
76
+ /** 手術結束時間 */
77
+ SurgeryEndTime = "surgeryEndTime",
78
+ /** 病人至下個單位時間 */
79
+ PatientToNextUnitTime = "patientToNextUnitTime",
80
+ /** 手術類別 */
81
+ SurgeryType = "surgeryType",
82
+ /** 麻醉方式 */
83
+ AnesthesiaType = "anesthesiaType",
84
+ /** 照會其他科手術 */
85
+ ConsultOtherDepartmentSurgery = "consultOtherDepartmentSurgery",
86
+ /** 擺位正確 */
87
+ CorrectPositioning = "correctPositioning",
88
+ /** 植入物 */
89
+ Implant = "implant",
90
+ /** Timeout查核項目/時間 */
91
+ TimeoutCheckItemTime = "timeoutCheckItemTime",
92
+ /** 確認血品 */
93
+ ConfirmBloodProduct = "confirmBloodProduct",
94
+ /** 畫刀前六十分鐘內給予預防性抗生素 */
95
+ AdministerProphylacticAntibioticWithin60MinutesBeforeIncision = "administerProphylacticAntibioticWithin60MinutesBeforeIncision"
96
+ }
97
+ /**
98
+ * 統合的事件子類型 (EventSubType)
99
+ *
100
+ * @typedef {VisualSubType | SystemSubType | UserBehaviorSubType} EventSubType
101
+ * @description
102
+ * 利用 TypeScript 聯合型別 (Union) 將三個不同的大類事件子類型合併。
103
+ * 若程式中某處需要一個既能表示「視覺辨識類」、
104
+ * 「系統異常類」或「使用者行為類」的子類型,則可使用本型別。
105
+ */
106
+ export declare const EventSubTypeEnum: readonly (VisualSubType | SystemSubType | UserBehaviorSubType | MedicalSubType)[];
107
+ export type EventSubType = (typeof EventSubTypeEnum)[number];
108
+ /**
109
+ * **事件狀態 (EventStatus)**
110
+ *
111
+ * 定義事件處理的常見狀態:
112
+ * - **`Unprocessed`**:事件尚未處理(初始狀態)。
113
+ * - **`Notified`**:事件已通知相關人員,但尚未開始處理。
114
+ * - **`Processing`**:事件正在處理中。
115
+ * - **`Completed`**:事件處理完成。
116
+ *
117
+ * @enum {string}
118
+ */
119
+ export declare enum EventStatus {
120
+ Unprocessed = "unprocessed",
121
+ Notified = "notified",
122
+ Processing = "processing",
123
+ Completed = "completed"
124
+ }
125
+ export declare enum SubjectType {
126
+ Entrance = "Entrance",
127
+ Camera = "Camera",
128
+ Device = "Device",
129
+ User = "User"
130
+ }
131
+ export interface Event extends Base {
132
+ /** 關聯樣板 */
133
+ readonly templateId: EventTemplate['id'];
134
+ /** 冗餘寫入,便於查詢(避免 Join/Lookup) */
135
+ readonly category: EventCategory;
136
+ readonly type: EventType;
137
+ /** 主體(來源) */
138
+ readonly subjectType: SubjectType;
139
+ readonly subjectId: string;
140
+ /** 嚴重度(可覆蓋 Template 預設;建議一經寫入不再改動) */
141
+ readonly severity?: number;
142
+ /** (可選)事件狀態;若遵循「事件不可動」可不放此欄位,改由 Note 追蹤 */
143
+ readonly status?: EventStatus;
144
+ /** 描述文(AI 或人為產生);建議寫入後不再變更 */
145
+ readonly description?: string | null;
146
+ /** 事件實際發生時間(來源設備/AI 的時間) */
147
+ readonly occurredAt: Date;
148
+ /** (可選)事件群組/事故 ID(做關聯彙整) */
149
+ readonly groupId?: string | null;
150
+ /** (可選)去重指紋,用於抑制重複事件 */
151
+ readonly fingerprint?: string | null;
152
+ /** (可選)標準化子型與自由標籤(若需要可加在 event_data.norm) */
153
+ readonly subTypes?: string[];
154
+ readonly freeTags?: string[];
155
+ /** (可選)人臉reid */
156
+ readonly reId?: string | null;
157
+ /** (可選)處理截圖URL */
158
+ readonly snapshotUrl?: string | null;
159
+ }
160
+ export interface EventData {
161
+ id: string;
162
+ eventId: Event['id'];
163
+ schemaRef?: string | null;
164
+ version: string;
165
+ payload: {
166
+ norm?: Record<string, unknown>;
167
+ raw?: Record<string, unknown>;
168
+ };
169
+ }
170
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../models/event.ts"],"names":[],"mappings":"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"}