@evercam/api 1.0.0-62d228551 → 1.0.0-63bac8c70

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 (85) hide show
  1. package/README.md +2 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +175 -12
  3. package/dist/api/api/adminApi.d.ts +93 -81
  4. package/dist/api/api/aiApi.d.ts +63 -81
  5. package/dist/api/api/authzApi.d.ts +31 -15
  6. package/dist/api/api/client/axios.d.ts +2 -1
  7. package/dist/api/api/client/swr/Swr.d.ts +1 -1
  8. package/dist/api/api/evercamApi.d.ts +122 -100
  9. package/dist/api/api/evercamLabsApi.d.ts +6 -4
  10. package/dist/api/api/exNvrApi.d.ts +1 -1
  11. package/dist/api/api/ingestApi.d.ts +109 -34
  12. package/dist/api/api/ptzApi.d.ts +12 -3
  13. package/dist/api/api/videoWallApi.d.ts +7 -7
  14. package/dist/api/api/weatherApi.d.ts +2 -2
  15. package/dist/api/types/360.d.ts +190 -8
  16. package/dist/api/types/aconex.d.ts +104 -6
  17. package/dist/api/types/admin.d.ts +51 -0
  18. package/dist/api/types/analytics.d.ts +149 -41
  19. package/dist/api/types/anpr.d.ts +24 -13
  20. package/dist/api/types/auditLogs.d.ts +1 -1
  21. package/dist/api/types/authz.d.ts +61 -0
  22. package/dist/api/types/autodesk.d.ts +7 -7
  23. package/dist/api/types/automation.d.ts +86 -1
  24. package/dist/api/types/axios.d.ts +11 -5
  25. package/dist/api/types/bim.d.ts +11 -5
  26. package/dist/api/types/camera.d.ts +98 -97
  27. package/dist/api/types/comments.d.ts +4 -8
  28. package/dist/api/types/company.d.ts +42 -1
  29. package/dist/api/types/compare.d.ts +20 -5
  30. package/dist/api/types/connector.d.ts +3 -5
  31. package/dist/api/types/coolify.d.ts +20 -2
  32. package/dist/api/types/copilot.d.ts +11 -6
  33. package/dist/api/types/credentials.d.ts +1 -0
  34. package/dist/api/types/detections.d.ts +20 -22
  35. package/dist/api/types/drone.d.ts +92 -3
  36. package/dist/api/types/gateReport.d.ts +49 -158
  37. package/dist/api/types/hdd.d.ts +26 -1
  38. package/dist/api/types/index.d.ts +8 -1
  39. package/dist/api/types/ingest.d.ts +102 -2
  40. package/dist/api/types/kit.d.ts +33 -5
  41. package/dist/api/types/map.d.ts +12 -0
  42. package/dist/api/types/media.d.ts +2 -1
  43. package/dist/api/types/notification.d.ts +32 -2
  44. package/dist/api/types/oauth.d.ts +62 -0
  45. package/dist/api/types/planner.d.ts +102 -1
  46. package/dist/api/types/posthog.d.ts +15 -0
  47. package/dist/api/types/procore.d.ts +13 -6
  48. package/dist/api/types/progressPhoto.d.ts +6 -32
  49. package/dist/api/types/project.d.ts +137 -19
  50. package/dist/api/types/recording.d.ts +6 -4
  51. package/dist/api/types/recycleBin.d.ts +1 -1
  52. package/dist/api/types/ring.d.ts +53 -0
  53. package/dist/api/types/roi.d.ts +2 -2
  54. package/dist/api/types/routeParams.d.ts +2 -1
  55. package/dist/api/types/router.d.ts +20 -1
  56. package/dist/api/types/shared.d.ts +29 -4
  57. package/dist/api/types/shares.d.ts +6 -144
  58. package/dist/api/types/sim.d.ts +6 -6
  59. package/dist/api/types/siteAnalytics.d.ts +191 -46
  60. package/dist/api/types/siteView.d.ts +74 -0
  61. package/dist/api/types/smartSeach.d.ts +5 -0
  62. package/dist/api/types/snapshots.d.ts +42 -1
  63. package/dist/api/types/storageProvider.d.ts +19 -0
  64. package/dist/api/types/storyblok.d.ts +40 -0
  65. package/dist/api/types/streaming.d.ts +3 -3
  66. package/dist/api/types/tag.d.ts +1 -1
  67. package/dist/api/types/time.d.ts +4 -18
  68. package/dist/api/types/timelapse.d.ts +12 -5
  69. package/dist/api/types/user.d.ts +105 -31
  70. package/dist/api/types/videoWall.d.ts +47 -14
  71. package/dist/api/types/weather.d.ts +77 -11
  72. package/dist/api/types/widget.d.ts +76 -15
  73. package/dist/api/types/xweather.d.ts +4 -4
  74. package/dist/api/utils.d.ts +1 -0
  75. package/dist/index.js +1664 -936
  76. package/dist/index.js.map +1 -1
  77. package/dist/index.umd.cjs +1 -1
  78. package/dist/index.umd.cjs.map +1 -1
  79. package/dist/shared/types/components.d.ts +123 -15
  80. package/dist/shared/types/imagePlayer.d.ts +2 -2
  81. package/dist/shared/types/index.d.ts +1 -0
  82. package/dist/shared/types/rbac.d.ts +67 -0
  83. package/dist/shared/types/timeline.d.ts +2 -1
  84. package/package.json +4 -4
  85. package/dist/api/types/storageServers.d.ts +0 -4
@@ -0,0 +1,74 @@
1
+ import { ForgeView } from "@evercam/api/types/360";
2
+ import { Point2D, Point3D } from "@evercam/api/types/shared";
3
+ export declare enum SiteViewSoftwareType {
4
+ Revit = "Revit",
5
+ Navisworks = "Navisworks",
6
+ Drone = "Drone",
7
+ Synchro = "Synchro"
8
+ }
9
+ export declare enum SiteViewerType {
10
+ ITwin = "iTwin",
11
+ Cesium = "Cesium",
12
+ Forge = "Forge"
13
+ }
14
+ export type SiteViewCameraListItem = {
15
+ projectId: string;
16
+ projectName: string;
17
+ software: SiteViewSoftwareType;
18
+ type: SiteViewerType;
19
+ uniqueId: string;
20
+ integrationType?: string;
21
+ };
22
+ export type ForgeUrn = {
23
+ displayName: string;
24
+ urn: string;
25
+ isModelHostedByEvercamACC?: boolean;
26
+ };
27
+ export type ForgeAccAlignmentData = {
28
+ bbox: {
29
+ min: Point2D;
30
+ max: Point2D;
31
+ };
32
+ transform: number[];
33
+ };
34
+ export type TimelineItem = {
35
+ taskNumber: number;
36
+ taskID: string;
37
+ actualStartDate: string;
38
+ actualEndDate: string;
39
+ plannedStartDate: string;
40
+ plannedEndDate: string;
41
+ objectIDs: number[];
42
+ };
43
+ export type ForgeMarkerTransform = {
44
+ default: {
45
+ position: Point3D;
46
+ type: string;
47
+ };
48
+ };
49
+ export type ForgeMarker = {
50
+ name: string;
51
+ cameraExid: string;
52
+ transforms: ForgeMarkerTransform;
53
+ };
54
+ export type ForgeProjectData = {
55
+ urns?: ForgeUrn[];
56
+ isEvercamAccount?: boolean;
57
+ accDrawingsAlignments?: Record<string, ForgeAccAlignmentData>;
58
+ timeline?: TimelineItem[];
59
+ savedView?: ForgeView;
60
+ markers?: ForgeMarker[];
61
+ };
62
+ export type ItwinModel = {
63
+ name: string;
64
+ iTwinId: string;
65
+ iModelId: string;
66
+ changeSetId?: string;
67
+ isIModel: boolean;
68
+ height?: number;
69
+ cesiumId?: number;
70
+ markerDistanceThreshold: number;
71
+ };
72
+ export type ItwinProjectData = {
73
+ models: ItwinModel[];
74
+ };
@@ -0,0 +1,5 @@
1
+ import { CameraExid } from "@evercam/api/types";
2
+ export type SmartSearchQueriesRequestPayload = {
3
+ camerasExid: CameraExid[];
4
+ name?: string;
5
+ };
@@ -1,4 +1,4 @@
1
- import { CameraExid, DateType, PaginationParams, Schedule } from "@/types";
1
+ import { CameraExid, DateType, PaginationParams, Schedule } from "@evercam/api/types";
2
2
  export type SnapshotExtractionQyeryParams = PaginationParams & {
3
3
  camera: string;
4
4
  cameraExid: CameraExid;
@@ -48,3 +48,44 @@ export type DeleteSnapshotQueryParams = {
48
48
  adminEmail: string;
49
49
  adminFullname: string;
50
50
  };
51
+ export type SnapshotTransfer = {
52
+ id: number;
53
+ sourceCamera: SnapshotTransferCamera;
54
+ targetCamera: SnapshotTransferCamera;
55
+ fromDate: DateType;
56
+ toDate: DateType;
57
+ overwriteExisting?: boolean | null;
58
+ deleteSource?: boolean | null;
59
+ requestor: SnapshotTransferRequestor;
60
+ status: SnapshotTransferStatus;
61
+ insertedAt: DateType;
62
+ attempts?: number | null;
63
+ errorMessage?: string | null;
64
+ snapshotsTransferred?: number | null;
65
+ };
66
+ export type SnapshotTransferCamera = {
67
+ id: number;
68
+ exid: CameraExid;
69
+ name: string;
70
+ };
71
+ export type SnapshotTransferRequestor = {
72
+ email: string;
73
+ firstname: string;
74
+ lastname: string;
75
+ };
76
+ export declare enum SnapshotTransferStatus {
77
+ Completed = "completed",
78
+ Failed = "failed",
79
+ Processing = "processing",
80
+ Pending = "pending",
81
+ Cancelled = "cancelled"
82
+ }
83
+ export type TransferCloudRecordingsQueryParams = PaginationParams & {
84
+ targetCameraExid: CameraExid;
85
+ fromDate: DateType;
86
+ toDate: DateType;
87
+ overwriteExisting?: boolean;
88
+ deleteSource?: boolean;
89
+ adminEmail?: string;
90
+ adminFullname?: string;
91
+ };
@@ -0,0 +1,19 @@
1
+ import type { DateType } from "@evercam/api/types";
2
+ export type StorageProvider = {
3
+ id?: number;
4
+ cameraId: number;
5
+ type: string;
6
+ provider: string;
7
+ url: string;
8
+ startDate: DateType;
9
+ endDate: DateType;
10
+ config: Record<string, any>;
11
+ insertedAt?: DateType;
12
+ };
13
+ export type StorageProvidersResponsePayload = {
14
+ providers: StorageProvider[];
15
+ };
16
+ export declare enum ProjectStorageProvider {
17
+ Seaweedfs = "seaweedfs",
18
+ S3 = "s3"
19
+ }
@@ -0,0 +1,40 @@
1
+ import type { JsonObject, JsonValue } from "@evercam/api/types";
2
+ export type StoryblokAsset = {
3
+ id: number | null;
4
+ alt: string | null;
5
+ name: string;
6
+ focus: string | null;
7
+ title: string | null;
8
+ filename: string;
9
+ copyright: string | null;
10
+ fieldtype: "asset";
11
+ source?: string;
12
+ metaData?: JsonObject;
13
+ isExternalUrl?: boolean;
14
+ };
15
+ export type StoryblokStory<TContent extends JsonObject = JsonObject> = {
16
+ id: number;
17
+ uuid: string;
18
+ name: string;
19
+ slug: string;
20
+ fullSlug: string;
21
+ content: TContent;
22
+ createdAt: string;
23
+ publishedAt: string | null;
24
+ updatedAt: string;
25
+ position: number;
26
+ tagList: string[];
27
+ isStartpage: boolean;
28
+ parentId: number | null;
29
+ groupId: string;
30
+ firstPublishedAt: string | null;
31
+ releaseId: number | null;
32
+ lang: string;
33
+ path: string;
34
+ };
35
+ export type StoryblokResponse<TContent extends JsonObject = JsonObject> = {
36
+ story: StoryblokStory<TContent>;
37
+ cv: number;
38
+ rels: JsonValue[];
39
+ links: JsonValue[];
40
+ };
@@ -1,11 +1,11 @@
1
- import { DateTime_Z_micros, KitMetricData } from "@/types";
1
+ import { KitMetricData } from "@evercam/api/types";
2
2
  export type ExNvrLoginResponse = {
3
3
  accessToken: string;
4
4
  };
5
5
  export type ExNvrRecordingInterval = {
6
6
  active: boolean;
7
- startDate: DateTime_Z_micros;
8
- endDate: DateTime_Z_micros;
7
+ startDate: string;
8
+ endDate: string;
9
9
  };
10
10
  export type ExNvrDeviceConfig = {
11
11
  id: string;
@@ -1,4 +1,4 @@
1
- import { Kit } from "@/types/kit";
1
+ import { Kit } from "@evercam/api/types/kit";
2
2
  export type Tag<T = string> = {
3
3
  id?: number;
4
4
  name: T;
@@ -1,21 +1,7 @@
1
1
  import { Moment } from "moment-timezone";
2
2
  export type DateType = Date | string | number;
3
3
  export type ExtendedDateType = Moment | DateType;
4
- type YYYY = number;
5
- type MM = number;
6
- type DD = number;
7
- type HH = number;
8
- type mm = number;
9
- type ss = number;
10
- type microS = number;
11
- export type Date_YYYY = `${YYYY}` | string;
12
- export type Date_YYYY_MM = `${YYYY}-${MM}` | string;
13
- export type Date_YYYY_MM_DD = `${YYYY}-${MM}-${DD}` | string;
14
- export type Time_HH_mm_ss = `${HH}:${mm}:${ss}` | string;
15
- export type Date_HH = `${HH}` | string;
16
- export type DateTime = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}` | string;
17
- export type DateTime_tz = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}${"+" | "-"}${HH}:${mm}` | string;
18
- export type DateTime_Z = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}Z` | string;
19
- export type DateTime_Z_micros = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}.${microS}Z` | string;
20
- export type DateTimeSpaceSeparated = `${Date_YYYY_MM_DD} ${Time_HH_mm_ss}` | string;
21
- export {};
4
+ export type DateRangeFilter = {
5
+ fromDate: DateType;
6
+ toDate: DateType;
7
+ };
@@ -1,4 +1,4 @@
1
- import { DateType, Schedule } from "@/types";
1
+ import { DateType, Schedule } from "@evercam/api/types";
2
2
  export declare enum TimelapseStatus {
3
3
  Pending = 11,
4
4
  Completed = 5,
@@ -7,7 +7,8 @@ export declare enum TimelapseStatus {
7
7
  export declare enum TimelapseDuration {
8
8
  ThirtySeconds = 30,
9
9
  SixtySeconds = 60,
10
- NintySeconds = 90
10
+ NintySeconds = 90,
11
+ TwoMinutes = 120
11
12
  }
12
13
  export type TimelapseVideoOptions = {
13
14
  width?: number;
@@ -15,7 +16,9 @@ export type TimelapseVideoOptions = {
15
16
  removeTimestamp: boolean;
16
17
  smoothTransition: boolean;
17
18
  evercamWatermark: boolean;
19
+ sectionBlur?: boolean;
18
20
  timestampPosition?: TimestampPositionCoordinates;
21
+ blurRegions?: BlurRegionCoordinates[];
19
22
  };
20
23
  export type TimestampPositionCoordinates = {
21
24
  x: number;
@@ -23,14 +26,18 @@ export type TimestampPositionCoordinates = {
23
26
  w: number;
24
27
  h: number;
25
28
  };
29
+ export type BlurRegionPoint = {
30
+ x: number;
31
+ y: number;
32
+ };
33
+ export type BlurRegionCoordinates = BlurRegionPoint[];
26
34
  export type TimelapseLogoOptions = {
27
- id: number;
35
+ id?: number;
28
36
  x: number;
29
37
  y: number;
30
38
  width: number;
31
39
  height: number;
32
40
  };
33
- export type TimelapseSchedules = string | Schedule;
34
41
  export declare enum TimelapseScheduleType {
35
42
  Continuous = "continuous",
36
43
  WorkingHours = "workingHours",
@@ -56,7 +63,7 @@ export type TimelapseFilterQueryParams = {
56
63
  to?: DateType;
57
64
  period?: TimelapsePeriod;
58
65
  duration?: number;
59
- schedule?: TimelapseSchedules;
66
+ schedule?: Schedule;
60
67
  };
61
68
  export type TimelapseCreationRequestPayload = {
62
69
  title: string;
@@ -1,4 +1,5 @@
1
- import type { DateTime, PaginationParams } from "@/types";
1
+ import type { CameraExid, PaginationParams } from "@evercam/api/types";
2
+ import { Role, RoleSubRole } from "@evercam/api/types/authz";
2
3
  export type User = {
3
4
  id?: number;
4
5
  fullname?: string;
@@ -9,10 +10,16 @@ export type User = {
9
10
  country: string;
10
11
  isAdmin: boolean;
11
12
  persona: Persona;
12
- companyId?: string;
13
+ companyId?: string | number;
13
14
  companyName?: string;
14
15
  companyExid?: string;
15
16
  features?: Array<UserFeatureFlag>;
17
+ confirmedAt?: string;
18
+ createdAt?: string;
19
+ lastLoginAt?: string;
20
+ token?: string;
21
+ updatedAt?: string;
22
+ evercamAccount?: boolean;
16
23
  };
17
24
  export type AdminUser = {
18
25
  id: number;
@@ -32,9 +39,9 @@ export type AdminUser = {
32
39
  camerasOwned: number;
33
40
  countryId: number;
34
41
  countryName: string;
35
- createdAt: DateTime;
42
+ createdAt: string;
36
43
  integrations: string[];
37
- lastSeenAt: DateTime;
44
+ lastSeenAt: string;
38
45
  lastLoginAt: string;
39
46
  lastname: string;
40
47
  persona: string;
@@ -48,7 +55,6 @@ export declare enum UserFeatureFlag {
48
55
  CompanyAdmin = "company-admin",
49
56
  VideoWalls = "video-walls",
50
57
  MassCameraSharing = "mass-camera-sharing",
51
- Copilot = "copilot",
52
58
  ProjectSharing = "project-sharing"
53
59
  }
54
60
  export type ProjectUser = User & {
@@ -59,6 +65,10 @@ export type ProjectUser = User & {
59
65
  cameraExid: string;
60
66
  cameraRights: string;
61
67
  };
68
+ export declare enum ContactRole {
69
+ SalesExecutive = "Sales Executive",
70
+ CustomerSuccessManager = "Customer Success Manager"
71
+ }
62
72
  export declare enum Persona {
63
73
  HQ = "HQ",
64
74
  PM = "PM",
@@ -85,26 +95,44 @@ export type RemotePasswordUpdateRequestPayload = {
85
95
  currentPassword: string;
86
96
  newPassword: string;
87
97
  };
88
- export type LoginResponsePayload = {
89
- confirmedAt?: string;
90
- country?: string;
91
- createdAt?: string;
92
- email?: string;
93
- firstname?: string;
94
- id?: string;
95
- isAdmin?: boolean;
96
- lastLoginAt?: string;
97
- lastname?: string;
98
- persona?: Persona;
99
- telephone?: string;
100
- token?: string;
101
- updatedAt?: string;
102
- evercamAccount?: string;
98
+ export type AuthPasswordOption = {
99
+ type: "password";
100
+ };
101
+ export type AuthSsoOption = {
102
+ type: "sso";
103
+ name: string;
104
+ scope: string;
105
+ prompt: string | null;
106
+ exid: string;
107
+ clientId: string;
108
+ iconUrl: string;
109
+ loginUrl: string;
110
+ responseType: string;
111
+ };
112
+ export type AuthOption = AuthPasswordOption | AuthSsoOption;
113
+ export type AuthOptionsResponsePayload = {
114
+ options: AuthOption[];
115
+ };
116
+ export type AuthProviderConfigPayload = {
117
+ name: string;
118
+ scope: string;
119
+ prompt: string | null;
120
+ exid: string;
121
+ clientId: string;
122
+ iconUrl: string;
123
+ loginUrl: string;
124
+ responseType: string;
103
125
  };
104
126
  export type LogoutParams = {
105
127
  token: string;
106
128
  fromAdmin?: boolean;
107
129
  };
130
+ export type ConfirmUserRequestPayload = {
131
+ c: string;
132
+ };
133
+ export type DeleteActiveSessionRequestPayload = {
134
+ authorization: string;
135
+ };
108
136
  export type UserSession = {
109
137
  browser: string;
110
138
  createdAt: string;
@@ -173,6 +201,16 @@ export type GoogleAuthRequestPayload = {
173
201
  code: string;
174
202
  redirectUri: string;
175
203
  };
204
+ export type ProjectContact = {
205
+ name: string;
206
+ role: ContactRole | string;
207
+ email?: string;
208
+ phone?: string;
209
+ photo?: string;
210
+ };
211
+ export type ProjectContactsResponsePayload = {
212
+ data: ProjectContact[];
213
+ };
176
214
  export type UserStatsResponse = {
177
215
  data: {
178
216
  userStats: AdminUser;
@@ -193,7 +231,7 @@ export type UserProject = {
193
231
  id: number;
194
232
  exid: string;
195
233
  name: string;
196
- startedAt: DateTime;
234
+ startedAt: string;
197
235
  };
198
236
  export type UserProjectResponse = {
199
237
  data: UserProject[];
@@ -213,9 +251,9 @@ export type Admin = {
213
251
  id: number;
214
252
  fullname: string;
215
253
  email: string;
216
- createdAt: DateTime;
217
- updatedAt: DateTime;
218
- lastSignInAt: DateTime;
254
+ createdAt: string;
255
+ updatedAt: string;
256
+ lastSignInAt: string;
219
257
  signInCount: number;
220
258
  lastSignInIp: string;
221
259
  apiId: string;
@@ -227,17 +265,17 @@ export type ImpersonateUserResponse = {
227
265
  lastname: string;
228
266
  telephone: string;
229
267
  email: string;
230
- is_admin: boolean;
268
+ isAdmin: boolean;
231
269
  persona: Persona;
232
270
  country: string;
233
271
  companyId: number;
234
272
  companyExid: string;
235
273
  companyName: string;
236
274
  evercamAccount: boolean;
237
- createdAt: DateTime;
238
- updatedAt: DateTime;
239
- confirmedAt: DateTime;
240
- last_loginAt: DateTime;
275
+ createdAt: string;
276
+ updatedAt: string;
277
+ confirmedAt: string;
278
+ lastLoginAt: string;
241
279
  features: UserFeatureFlag[];
242
280
  token: string;
243
281
  };
@@ -266,6 +304,42 @@ export type Suppression = {
266
304
  id: number;
267
305
  email: string;
268
306
  source: string;
269
- insertedAt: DateTime;
270
- updatedAt: DateTime;
307
+ insertedAt: string;
308
+ updatedAt: string;
309
+ };
310
+ type Email = string;
311
+ export type WsAccessRestrictionUpdate = {
312
+ camera_id: CameraExid;
313
+ is_access_restricted: boolean;
314
+ };
315
+ export type WsUserRestrictionItem = {
316
+ user_id: number;
317
+ camera_id: CameraExid;
318
+ is_user_access_restricted: boolean;
319
+ };
320
+ export type WsUserRestrictionUpdate = WsUserRestrictionItem[];
321
+ /**
322
+ * Backend WebSocket event payload:
323
+ * {
324
+ * user: {
325
+ * "someone@domain.com": {camera_id, is_access_restricted} OR [{...}, {...}]
326
+ * }
327
+ * }
328
+ */
329
+ export type WsRestrictionChangedPayload = {
330
+ user: Record<Email, WsAccessRestrictionUpdate | WsUserRestrictionUpdate>;
331
+ };
332
+ export type ProjectUserWithRole = {
333
+ id: number;
334
+ email: string;
335
+ fullname: string;
336
+ company: {
337
+ id: number;
338
+ name: string;
339
+ exid: string;
340
+ };
341
+ permissions: string[];
342
+ role: Role;
343
+ subRoles: RoleSubRole[];
271
344
  };
345
+ export {};
@@ -1,25 +1,16 @@
1
- import { Camera, Media } from "@/types";
1
+ import { Camera, Media, PaginationParams } from "@evercam/api/types";
2
2
  export declare enum VideoWallItemType {
3
3
  LiveView = "live",
4
4
  Video = "video",
5
5
  Image = "image"
6
6
  }
7
- export type VideoWallItem<T extends Camera | Media> = {
7
+ export type VideoWallItem<T extends Camera | Media = Camera> = {
8
8
  value: T;
9
9
  type: VideoWallItemType;
10
10
  };
11
- export type VideoWallPresetItemConfig = {
12
- camera: Camera;
13
- h: number;
14
- i: string | number;
15
- moved: boolean;
16
- w: number;
17
- x: number;
18
- y: number;
19
- };
20
- export type VideoWallPreset = {
21
- name?: string;
22
- configuration: Array<VideoWallPresetItemConfig>;
11
+ export type VideoWallPresetGridConfig = {
12
+ items: VideoWallPresetItem[];
13
+ meta?: VideoWallPresetMeta;
23
14
  };
24
15
  export type VideoWallPresetItem = {
25
16
  i: string | number;
@@ -30,4 +21,46 @@ export type VideoWallPresetItem = {
30
21
  camera: Camera;
31
22
  weather?: Record<string, unknown>;
32
23
  media?: Media;
24
+ moved?: boolean;
25
+ };
26
+ export type VideoWallPresetMeta = {
27
+ colNum: number;
28
+ rowCount: number;
29
+ tile: number;
30
+ template: string;
31
+ gridSize: number;
32
+ };
33
+ export type VideoWallSource = "default" | "widget";
34
+ export interface VideoWall {
35
+ id: number;
36
+ exid: string;
37
+ name: string;
38
+ source: VideoWallSource;
39
+ config: Record<string, any>;
40
+ insertedAt: string;
41
+ updatedAt: string;
42
+ user: {
43
+ id: number;
44
+ firstname: string;
45
+ lastname: string;
46
+ email: string;
47
+ };
48
+ }
49
+ export interface VideoWallListParams extends PaginationParams {
50
+ projectExid?: string;
51
+ id?: number;
52
+ exid?: string;
53
+ projectId?: number;
54
+ userId?: number;
55
+ name?: string;
56
+ project?: string;
57
+ user?: string;
58
+ source?: VideoWallSource;
59
+ }
60
+ export type VideoWallCreateUpdatePayload = {
61
+ projectExid?: string;
62
+ name: string;
63
+ source?: VideoWallSource;
64
+ config: Record<string, unknown>;
65
+ scope?: string;
33
66
  };