@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.
- package/dist/data_access/base/base.repository.d.ts +29 -0
- package/dist/data_access/base/base.repository.d.ts.map +1 -0
- package/dist/data_access/base/base.repository.js +7 -0
- package/dist/data_access/base/base.repository.js.map +1 -0
- package/dist/data_access/base/index.d.ts +4 -0
- package/dist/data_access/base/index.d.ts.map +1 -0
- package/dist/data_access/base/index.js +20 -0
- package/dist/data_access/base/index.js.map +1 -0
- package/dist/data_access/base/mongo-base.repository.d.ts +34 -0
- package/dist/data_access/base/mongo-base.repository.d.ts.map +1 -0
- package/dist/data_access/base/mongo-base.repository.js +229 -0
- package/dist/data_access/base/mongo-base.repository.js.map +1 -0
- package/dist/data_access/base/sql-base.repository.d.ts +20 -0
- package/dist/data_access/base/sql-base.repository.d.ts.map +1 -0
- package/dist/data_access/base/sql-base.repository.js +180 -0
- package/dist/data_access/base/sql-base.repository.js.map +1 -0
- package/dist/data_access/index.d.ts +3 -0
- package/dist/data_access/index.d.ts.map +1 -0
- package/dist/data_access/index.js +20 -0
- package/dist/data_access/index.js.map +1 -0
- package/dist/data_access/mongo/account-mongo.repository.d.ts +14 -0
- package/dist/data_access/mongo/account-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/account-mongo.repository.js +43 -0
- package/dist/data_access/mongo/account-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/attachment-mongo.repository.d.ts +139 -0
- package/dist/data_access/mongo/attachment-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/attachment-mongo.repository.js +355 -0
- package/dist/data_access/mongo/attachment-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/biometric-cred.repository.d.ts +8 -0
- package/dist/data_access/mongo/biometric-cred.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/biometric-cred.repository.js +32 -0
- package/dist/data_access/mongo/biometric-cred.repository.js.map +1 -0
- package/dist/data_access/mongo/camera-mongo.repository.d.ts +9 -0
- package/dist/data_access/mongo/camera-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/camera-mongo.repository.js +39 -0
- package/dist/data_access/mongo/camera-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/camera-recording-mongo.repository.d.ts +9 -0
- package/dist/data_access/mongo/camera-recording-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/camera-recording-mongo.repository.js +39 -0
- package/dist/data_access/mongo/camera-recording-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/event-mongo.repository.d.ts +23 -0
- package/dist/data_access/mongo/event-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/event-mongo.repository.js +175 -0
- package/dist/data_access/mongo/event-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/event-template-mongo.repository.d.ts +8 -0
- package/dist/data_access/mongo/event-template-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/event-template-mongo.repository.js +36 -0
- package/dist/data_access/mongo/event-template-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/event-template-name-mongo.repository.d.ts +19 -0
- package/dist/data_access/mongo/event-template-name-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/event-template-name-mongo.repository.js +47 -0
- package/dist/data_access/mongo/event-template-name-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/index.d.ts +17 -0
- package/dist/data_access/mongo/index.d.ts.map +1 -0
- package/dist/data_access/mongo/index.js +33 -0
- package/dist/data_access/mongo/index.js.map +1 -0
- package/dist/data_access/mongo/map-mongo.repository.d.ts +9 -0
- package/dist/data_access/mongo/map-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/map-mongo.repository.js +46 -0
- package/dist/data_access/mongo/map-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/password-cred.repository.d.ts +8 -0
- package/dist/data_access/mongo/password-cred.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/password-cred.repository.js +32 -0
- package/dist/data_access/mongo/password-cred.repository.js.map +1 -0
- package/dist/data_access/mongo/permission-mongo.repository.d.ts +8 -0
- package/dist/data_access/mongo/permission-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/permission-mongo.repository.js +32 -0
- package/dist/data_access/mongo/permission-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/report.repository.d.ts +12 -0
- package/dist/data_access/mongo/report.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/report.repository.js +52 -0
- package/dist/data_access/mongo/report.repository.js.map +1 -0
- package/dist/data_access/mongo/role-mongo.repository.d.ts +7 -0
- package/dist/data_access/mongo/role-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/role-mongo.repository.js +35 -0
- package/dist/data_access/mongo/role-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/third-party-cred.repository.d.ts +8 -0
- package/dist/data_access/mongo/third-party-cred.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/third-party-cred.repository.js +32 -0
- package/dist/data_access/mongo/third-party-cred.repository.js.map +1 -0
- package/dist/data_access/mongo/ui-item-mongo.repository.d.ts +7 -0
- package/dist/data_access/mongo/ui-item-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/ui-item-mongo.repository.js +35 -0
- package/dist/data_access/mongo/ui-item-mongo.repository.js.map +1 -0
- package/dist/data_access/mongo/user-mongo.repository.d.ts +8 -0
- package/dist/data_access/mongo/user-mongo.repository.d.ts.map +1 -0
- package/dist/data_access/mongo/user-mongo.repository.js +39 -0
- package/dist/data_access/mongo/user-mongo.repository.js.map +1 -0
- package/dist/data_access/sql/index.d.ts +1 -0
- package/dist/data_access/sql/index.d.ts.map +1 -0
- package/dist/data_access/sql/index.js +3 -0
- package/dist/data_access/sql/index.js.map +1 -0
- package/dist/data_access/sql/user-profiles.repository.d.ts +1 -0
- package/dist/data_access/sql/user-profiles.repository.d.ts.map +1 -0
- package/dist/data_access/sql/user-profiles.repository.js +36 -0
- package/dist/data_access/sql/user-profiles.repository.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/models/account.d.ts +27 -0
- package/dist/models/account.d.ts.map +1 -0
- package/dist/models/account.js +3 -0
- package/dist/models/account.js.map +1 -0
- package/dist/models/attachment.d.ts +147 -0
- package/dist/models/attachment.d.ts.map +1 -0
- package/dist/models/attachment.js +25 -0
- package/dist/models/attachment.js.map +1 -0
- package/dist/models/auth-credential.d.ts +46 -0
- package/dist/models/auth-credential.d.ts.map +1 -0
- package/dist/models/auth-credential.js +10 -0
- package/dist/models/auth-credential.js.map +1 -0
- package/dist/models/camera.d.ts +156 -0
- package/dist/models/camera.d.ts.map +1 -0
- package/dist/models/camera.js +34 -0
- package/dist/models/camera.js.map +1 -0
- package/dist/models/chatroom.d.ts +55 -0
- package/dist/models/chatroom.d.ts.map +1 -0
- package/dist/models/chatroom.js +3 -0
- package/dist/models/chatroom.js.map +1 -0
- package/dist/models/device.d.ts +50 -0
- package/dist/models/device.d.ts.map +1 -0
- package/dist/models/device.js +3 -0
- package/dist/models/device.js.map +1 -0
- package/dist/models/event.d.ts +170 -0
- package/dist/models/event.d.ts.map +1 -0
- package/dist/models/event.js +195 -0
- package/dist/models/event.js.map +1 -0
- package/dist/models/index.d.ts +19 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +35 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/inform.d.ts +146 -0
- package/dist/models/inform.d.ts.map +1 -0
- package/dist/models/inform.js +61 -0
- package/dist/models/inform.js.map +1 -0
- package/dist/models/map.d.ts +26 -0
- package/dist/models/map.d.ts.map +1 -0
- package/dist/models/map.js +3 -0
- package/dist/models/map.js.map +1 -0
- package/dist/models/permission.d.ts +83 -0
- package/dist/models/permission.d.ts.map +1 -0
- package/dist/models/permission.js +78 -0
- package/dist/models/permission.js.map +1 -0
- package/dist/models/report.d.ts +167 -0
- package/dist/models/report.d.ts.map +1 -0
- package/dist/models/report.js +61 -0
- package/dist/models/report.js.map +1 -0
- package/dist/models/role.d.ts +84 -0
- package/dist/models/role.d.ts.map +1 -0
- package/dist/models/role.js +25 -0
- package/dist/models/role.js.map +1 -0
- package/dist/models/schedule.d.ts +39 -0
- package/dist/models/schedule.d.ts.map +1 -0
- package/dist/models/schedule.js +3 -0
- package/dist/models/schedule.js.map +1 -0
- package/dist/models/task.d.ts +97 -0
- package/dist/models/task.d.ts.map +1 -0
- package/dist/models/task.js +24 -0
- package/dist/models/task.js.map +1 -0
- package/dist/models/template.d.ts +197 -0
- package/dist/models/template.d.ts.map +1 -0
- package/dist/models/template.js +64 -0
- package/dist/models/template.js.map +1 -0
- package/dist/models/ui-item.d.ts +40 -0
- package/dist/models/ui-item.d.ts.map +1 -0
- package/dist/models/ui-item.js +17 -0
- package/dist/models/ui-item.js.map +1 -0
- package/dist/models/user.d.ts +125 -0
- package/dist/models/user.d.ts.map +1 -0
- package/dist/models/user.js +22 -0
- package/dist/models/user.js.map +1 -0
- package/dist/models/utils.d.ts +28 -0
- package/dist/models/utils.d.ts.map +1 -0
- package/dist/models/utils.js +3 -0
- package/dist/models/utils.js.map +1 -0
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +18 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/mongo/account-mongo.schema.d.ts +27 -0
- package/dist/schemas/mongo/account-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/account-mongo.schema.js +22 -0
- package/dist/schemas/mongo/account-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/attachment-mongo.schema.d.ts +134 -0
- package/dist/schemas/mongo/attachment-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/attachment-mongo.schema.js +182 -0
- package/dist/schemas/mongo/attachment-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/biometric-cred.schema.d.ts +27 -0
- package/dist/schemas/mongo/biometric-cred.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/biometric-cred.schema.js +24 -0
- package/dist/schemas/mongo/biometric-cred.schema.js.map +1 -0
- package/dist/schemas/mongo/camera-mongo.schema.d.ts +21 -0
- package/dist/schemas/mongo/camera-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/camera-mongo.schema.js +54 -0
- package/dist/schemas/mongo/camera-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/camera-recording-mongo.schema.d.ts +21 -0
- package/dist/schemas/mongo/camera-recording-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/camera-recording-mongo.schema.js +24 -0
- package/dist/schemas/mongo/camera-recording-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/event-mongo.schema.d.ts +51 -0
- package/dist/schemas/mongo/event-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/event-mongo.schema.js +63 -0
- package/dist/schemas/mongo/event-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/event-template-mongo.schema.d.ts +39 -0
- package/dist/schemas/mongo/event-template-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/event-template-mongo.schema.js +33 -0
- package/dist/schemas/mongo/event-template-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/index.d.ts +16 -0
- package/dist/schemas/mongo/index.d.ts.map +1 -0
- package/dist/schemas/mongo/index.js +32 -0
- package/dist/schemas/mongo/index.js.map +1 -0
- package/dist/schemas/mongo/map-mongo.schema.d.ts +20 -0
- package/dist/schemas/mongo/map-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/map-mongo.schema.js +16 -0
- package/dist/schemas/mongo/map-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/password-cred.schema.d.ts +27 -0
- package/dist/schemas/mongo/password-cred.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/password-cred.schema.js +22 -0
- package/dist/schemas/mongo/password-cred.schema.js.map +1 -0
- package/dist/schemas/mongo/permission-mongo.schema.d.ts +21 -0
- package/dist/schemas/mongo/permission-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/permission-mongo.schema.js +70 -0
- package/dist/schemas/mongo/permission-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/report-mongo.schema.d.ts +41 -0
- package/dist/schemas/mongo/report-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/report-mongo.schema.js +71 -0
- package/dist/schemas/mongo/report-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/role-mongo.schema.d.ts +22 -0
- package/dist/schemas/mongo/role-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/role-mongo.schema.js +73 -0
- package/dist/schemas/mongo/role-mongo.schema.js.map +1 -0
- package/dist/schemas/mongo/third-party-cred.schema.d.ts +27 -0
- package/dist/schemas/mongo/third-party-cred.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/third-party-cred.schema.js +30 -0
- package/dist/schemas/mongo/third-party-cred.schema.js.map +1 -0
- package/dist/schemas/mongo/ui-item.schema.d.ts +23 -0
- package/dist/schemas/mongo/ui-item.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/ui-item.schema.js +61 -0
- package/dist/schemas/mongo/ui-item.schema.js.map +1 -0
- package/dist/schemas/mongo/user-mongo.schema.d.ts +24 -0
- package/dist/schemas/mongo/user-mongo.schema.d.ts.map +1 -0
- package/dist/schemas/mongo/user-mongo.schema.js +34 -0
- package/dist/schemas/mongo/user-mongo.schema.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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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"}
|