@evercam/api 1.0.0-9a767ebbe → 1.0.0-9c7d9f97f

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 (68) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +67 -35
  3. package/dist/api/api/adminApi.d.ts +25 -20
  4. package/dist/api/api/aiApi.d.ts +125 -2
  5. package/dist/api/api/authzApi.d.ts +4 -1
  6. package/dist/api/api/evercamApi.d.ts +41 -13
  7. package/dist/api/api/evercamLabsApi.d.ts +5 -16
  8. package/dist/api/api/index.d.ts +1 -0
  9. package/dist/api/api/ingestApi.d.ts +22 -9
  10. package/dist/api/api/workflowsApi.d.ts +15 -0
  11. package/dist/api/types/360.d.ts +126 -43
  12. package/dist/api/types/aiConfigs.d.ts +244 -0
  13. package/dist/api/types/analytics.d.ts +48 -33
  14. package/dist/api/types/anpr.d.ts +31 -2
  15. package/dist/api/types/auditLogs.d.ts +18 -1
  16. package/dist/api/types/authz.d.ts +71 -0
  17. package/dist/api/types/automation.d.ts +32 -4
  18. package/dist/api/types/axios.d.ts +9 -9
  19. package/dist/api/types/bim.d.ts +29 -6
  20. package/dist/api/types/camera.d.ts +34 -24
  21. package/dist/api/types/comments.d.ts +16 -7
  22. package/dist/api/types/company.d.ts +1 -2
  23. package/dist/api/types/compare.d.ts +1 -1
  24. package/dist/api/types/connector.d.ts +2 -0
  25. package/dist/api/types/detections.d.ts +3 -10
  26. package/dist/api/types/drone.d.ts +7 -7
  27. package/dist/api/types/errors.d.ts +13 -1
  28. package/dist/api/types/gateReport.d.ts +1 -11
  29. package/dist/api/types/gateReportManagement.d.ts +170 -0
  30. package/dist/api/types/hammertech.d.ts +98 -0
  31. package/dist/api/types/index.d.ts +8 -2
  32. package/dist/api/types/ingest.d.ts +90 -3
  33. package/dist/api/types/kit.d.ts +43 -51
  34. package/dist/api/types/media.d.ts +7 -2
  35. package/dist/api/types/notification.d.ts +52 -2
  36. package/dist/api/types/observationEvents.d.ts +141 -0
  37. package/dist/api/types/observations.d.ts +84 -0
  38. package/dist/api/types/planner.d.ts +3 -11
  39. package/dist/api/types/posthog.d.ts +20 -0
  40. package/dist/api/types/project.d.ts +14 -2
  41. package/dist/api/types/recording.d.ts +7 -13
  42. package/dist/api/types/ring.d.ts +16 -16
  43. package/dist/api/types/roi.d.ts +2 -10
  44. package/dist/api/types/routeParams.d.ts +1 -0
  45. package/dist/api/types/shared.d.ts +3 -23
  46. package/dist/api/types/shares.d.ts +0 -13
  47. package/dist/api/types/siteAnalytics.d.ts +3 -5
  48. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -0
  49. package/dist/api/types/siteView.d.ts +6 -2
  50. package/dist/api/types/snapshots.d.ts +13 -0
  51. package/dist/api/types/socket.d.ts +4 -0
  52. package/dist/api/types/storyblok.d.ts +0 -13
  53. package/dist/api/types/timelapse.d.ts +2 -13
  54. package/dist/api/types/user.d.ts +16 -4
  55. package/dist/api/types/workflows.d.ts +108 -0
  56. package/dist/api/utils.d.ts +1 -1
  57. package/dist/index.js +1555 -862
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.umd.cjs +1 -1
  60. package/dist/index.umd.cjs.map +1 -1
  61. package/dist/shared/types/components.d.ts +246 -35
  62. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  63. package/dist/shared/types/imagePlayer.d.ts +8 -1
  64. package/dist/shared/types/index.d.ts +2 -0
  65. package/dist/shared/types/observations.d.ts +25 -0
  66. package/package.json +4 -2
  67. package/dist/api/types/copilot.d.ts +0 -162
  68. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -4,8 +4,7 @@ export type CompanyUser = {
4
4
  fullname: string;
5
5
  email: string;
6
6
  eventsCount: number;
7
- lastSeenAt: string;
8
- active: boolean;
7
+ lastLoginAt: string;
9
8
  };
10
9
  export type AdminCompanyUser = {
11
10
  id: number;
@@ -33,7 +33,7 @@ export type CompareRequestPayload = {
33
33
  beforeDate: string;
34
34
  afterDate: string;
35
35
  cameraExid: string;
36
- embed: string;
36
+ embed?: string;
37
37
  bim?: boolean;
38
38
  custom?: boolean;
39
39
  options?: {
@@ -10,6 +10,8 @@ export declare enum Connector {
10
10
  AutodeskViewer = "autodesk_viewer",
11
11
  VoyageControl = "voyage_control",
12
12
  Ring = "ring",
13
+ Email = "email",
14
+ Hammertech = "hammertech",
13
15
  XWeather = "xweather"
14
16
  }
15
17
  export declare enum ProcoreType {
@@ -13,15 +13,6 @@ export type SegmentsFilters = BaseDetectionsFilters & {
13
13
  cameraExid: CameraExid;
14
14
  };
15
15
  export type BBox = number[];
16
- export type SelectedObjectPath = {
17
- label: string;
18
- trackId: string;
19
- paths: Array<{
20
- timestamp: number;
21
- center: [number, number];
22
- bbox: BBox;
23
- }>;
24
- };
25
16
  export type Label = DetectionLabel | PpeLabel;
26
17
  export type Detection = {
27
18
  bbox: BBox;
@@ -111,6 +102,7 @@ export declare enum PpeLabel {
111
102
  Helmet = "helmet",
112
103
  HighVisibilityVest = "high-visibility-vest",
113
104
  SafetyGlasses = "safety-glasses",
105
+ Gloves = "gloves",
114
106
  Person = "person",
115
107
  Man = "man",
116
108
  Woman = "woman"
@@ -120,5 +112,6 @@ export declare enum DetectionModel {
120
112
  Yolov11 = 2,
121
113
  Yolov112 = 3,
122
114
  GroundingDino = 4,
123
- Owlv2 = 5
115
+ Owlv2 = 5,
116
+ PpeV2 = 6
124
117
  }
@@ -6,20 +6,19 @@ export type DroneCameraTransform = {
6
6
  right: Point3D;
7
7
  };
8
8
  export type DroneModel = {
9
- cesiumId: string;
10
- cesiumId2D: string;
9
+ cesiumId: number;
10
+ cesiumId2D: number;
11
11
  date: string;
12
12
  cesiumPointCloudId: string;
13
13
  cesiumGausianSplatId: string;
14
14
  pointSize: string;
15
- maximumScreenSpaceError: string;
15
+ maximumScreenSpaceError: number;
16
16
  link: string;
17
17
  trueIndex: number;
18
18
  };
19
19
  export type DroneProjectTransform = {
20
20
  initialCameraTransform?: DroneCameraTransform;
21
21
  initial2DCameraTransform?: DroneCameraTransform;
22
- blackListIds?: string;
23
22
  markers?: Record<string, DroneMarker>;
24
23
  imageryPlans?: Record<string, DroneImageryPlan>;
25
24
  bimData?: DroneBimData;
@@ -29,10 +28,11 @@ export type DroneProjectTransform = {
29
28
  };
30
29
  export type DroneProjectData = {
31
30
  models?: DroneModel[];
31
+ transform?: DroneProjectTransform;
32
32
  integrationType?: DroneProvider;
33
33
  origin?: string;
34
- params?: Record<string, unknown>;
35
- pointSize?: string;
34
+ params?: string;
35
+ pointSize?: number;
36
36
  };
37
37
  export type DroneProjectDataPatch = {
38
38
  models?: Record<number, Partial<DroneModel>>;
@@ -56,7 +56,7 @@ export type DroneTag<T extends DroneTagType = DroneTagType> = {
56
56
  type: T;
57
57
  comment: string;
58
58
  position?: Point3D;
59
- cameraTransform?: DroneCameraTransform;
59
+ cameraTransform?: string;
60
60
  creationDate: string;
61
61
  hyperlink?: string;
62
62
  height?: number;
@@ -23,7 +23,8 @@ export declare enum ErrorCode {
23
23
  UnauthorizedError = 401,
24
24
  ForbiddenError = 403,
25
25
  NotFoundError = 404,
26
- ConflictError = 409
26
+ ConflictError = 409,
27
+ GoneError = 410
27
28
  }
28
29
  export declare enum EvercamApiErrorCode {
29
30
  IntegrationError = "INTEGRATION_ERROR",
@@ -46,4 +47,15 @@ type _EvercamApiError = {
46
47
  innerError?: _EvercamApiError;
47
48
  };
48
49
  export type EvercamApiError = AxiosError<_EvercamApiError>;
50
+ export type AppError = {
51
+ statusCode?: number;
52
+ message?: string;
53
+ redirect?: {
54
+ url?: string;
55
+ label?: string;
56
+ delay?: number;
57
+ };
58
+ withSupportMessage?: boolean;
59
+ isWidget?: boolean;
60
+ };
49
61
  export {};
@@ -166,12 +166,6 @@ export type GateReportEvent = {
166
166
  truckType: GateReportVehicleType;
167
167
  thumbnailUrl?: string;
168
168
  };
169
- export type GateReportArrivedEvent = GateReportEvent & {
170
- eventType: GateReportEventType.Arrived;
171
- };
172
- export type GateReportLeftEvent = GateReportEvent & {
173
- eventType: GateReportEventType.Left;
174
- };
175
169
  export type GateReportVerifiedDay = {
176
170
  id: number;
177
171
  day: string;
@@ -188,7 +182,6 @@ export type BoundingBox = {
188
182
  ymax: number;
189
183
  ymin: number;
190
184
  };
191
- export type EventsCountsByVehicleType = Record<GateReportVehicleType, number>;
192
185
  export type EventsCount = {
193
186
  in: number;
194
187
  out: number;
@@ -203,10 +196,6 @@ export type MonthlyEventCount = EventsCount & {
203
196
  export type DailyEventCount = EventsCount & {
204
197
  day: string;
205
198
  };
206
- export type HourlyEventCount = {
207
- hour: string;
208
- count: number;
209
- };
210
199
  export type EventCountRequestPayload = {
211
200
  vehicleTypes?: GateReportVehicleType[];
212
201
  isPublic?: boolean;
@@ -249,6 +238,7 @@ export type AnprExportBaseParams = {
249
238
  toDate?: string;
250
239
  camerasExid?: CameraExid[];
251
240
  isPublic?: boolean;
241
+ columns?: string[];
252
242
  };
253
243
  export type EventsExportRequestParameters = AnprExportBaseParams & {
254
244
  eventType: GateReportEventType;
@@ -0,0 +1,170 @@
1
+ import { CameraExid, DateType, PaginationParams, ProjectExid } from "@evercam/api/types";
2
+ export declare enum VehicleClassifierSource {
3
+ Local = "local",
4
+ Api = "api"
5
+ }
6
+ export type GateReportCoolifyStatus = {
7
+ appUuid: string | null;
8
+ name: string | null;
9
+ serverUuid: string | null;
10
+ serverName: string | null;
11
+ appUrl: string | null;
12
+ status: string | null;
13
+ isRunning: boolean;
14
+ imageTag?: string | null;
15
+ fqdn: string | null;
16
+ updatedAt: string | null;
17
+ };
18
+ export type GateReportProjectMeta = {
19
+ exid: ProjectExid;
20
+ name: string | null;
21
+ timezone: string | null;
22
+ featureFlags: string[] | null;
23
+ };
24
+ export type GateReportCameraMeta = {
25
+ exid: CameraExid;
26
+ name: string | null;
27
+ status: string | null;
28
+ kitSerial: string | null;
29
+ kitAlarms: string[] | Record<string, unknown> | null;
30
+ };
31
+ export type GateReportManagedApp = {
32
+ id: number;
33
+ projectExid: ProjectExid;
34
+ anprCameraExid: CameraExid;
35
+ contextCameraExid: CameraExid | null;
36
+ coolifyAppId: string | null;
37
+ startDate: DateType | null;
38
+ endDate: DateType | null;
39
+ startHour: number;
40
+ endHour: number;
41
+ enabled: boolean;
42
+ enableEnrichments: boolean;
43
+ enableGemini: boolean;
44
+ geminiStartHour: number;
45
+ geminiEndHour: number;
46
+ reviewModel: string;
47
+ enrichmentModel: string;
48
+ reviewerPromptSlug: string | null;
49
+ geminiTimeoutSeconds: number;
50
+ geminiMaxAttempts: number;
51
+ vehicleClassifierSource: VehicleClassifierSource;
52
+ snapshotDelaySeconds: number;
53
+ snapshotRequestTimeout: number;
54
+ plateClassifierThreshold: number;
55
+ plateClassifierHighConfidence: number;
56
+ maxPriorEvents: number;
57
+ recordsFetchInterval: number;
58
+ priorRecentLimit: number;
59
+ priorSimilarLimit: number;
60
+ insertedAt: DateType;
61
+ updatedAt: DateType;
62
+ coolify: GateReportCoolifyStatus | null;
63
+ project: GateReportProjectMeta | null;
64
+ anprCamera: GateReportCameraMeta | null;
65
+ contextCamera: GateReportCameraMeta | null;
66
+ anprHasRoi: boolean;
67
+ contextHasRoi: boolean;
68
+ lastProcessedEventAt: DateType | null;
69
+ lastUnprocessedEventAt: DateType | null;
70
+ };
71
+ export type GateReportAppEvents = {
72
+ anprCameraExid: CameraExid;
73
+ lastProcessedEventAt: DateType | null;
74
+ lastUnprocessedEventAt: DateType | null;
75
+ };
76
+ export type AppConfigFormValue = {
77
+ contextCameraExid: string | null;
78
+ startDate: DateType | null;
79
+ endDate: DateType | null;
80
+ startHour: number;
81
+ endHour: number;
82
+ enabled: boolean;
83
+ enableEnrichments: boolean;
84
+ enableGemini: boolean;
85
+ geminiStartHour: number;
86
+ geminiEndHour: number;
87
+ reviewModel: string;
88
+ enrichmentModel: string;
89
+ reviewerPromptSlug: string | null;
90
+ geminiTimeoutSeconds: number;
91
+ geminiMaxAttempts: number;
92
+ vehicleClassifierSource: VehicleClassifierSource;
93
+ snapshotDelaySeconds: number;
94
+ snapshotRequestTimeout: number;
95
+ plateClassifierThreshold: number;
96
+ plateClassifierHighConfidence: number;
97
+ recordsFetchInterval: number;
98
+ priorRecentLimit: number;
99
+ priorSimilarLimit: number;
100
+ };
101
+ export type CreateGateReportAppPayload = {
102
+ projectExid: ProjectExid;
103
+ anprCameraExid: CameraExid;
104
+ contextCameraExid?: CameraExid | null;
105
+ coolifyServerUuid: string;
106
+ imageTag?: string;
107
+ geminiApiKey?: string | null;
108
+ startDate?: DateType | null;
109
+ endDate?: DateType | null;
110
+ startHour?: number;
111
+ endHour?: number;
112
+ enabled?: boolean;
113
+ enableEnrichments?: boolean;
114
+ enableGemini?: boolean;
115
+ geminiStartHour?: number;
116
+ geminiEndHour?: number;
117
+ reviewModel?: string;
118
+ enrichmentModel?: string;
119
+ reviewerPromptSlug?: string | null;
120
+ geminiTimeoutSeconds?: number;
121
+ geminiMaxAttempts?: number;
122
+ vehicleClassifierSource?: VehicleClassifierSource;
123
+ snapshotDelaySeconds?: number;
124
+ snapshotRequestTimeout?: number;
125
+ plateClassifierThreshold?: number;
126
+ plateClassifierHighConfidence?: number;
127
+ maxPriorEvents?: number;
128
+ recordsFetchInterval?: number;
129
+ priorRecentLimit?: number;
130
+ priorSimilarLimit?: number;
131
+ };
132
+ export type UpdateGateReportAppPayload = Partial<Omit<CreateGateReportAppPayload, "projectExid" | "anprCameraExid" | "coolifyServerUuid" | "geminiApiKey">>;
133
+ export type GateReportAppsQueryParams = PaginationParams & {
134
+ projectExid?: ProjectExid;
135
+ includeStatus?: boolean;
136
+ };
137
+ export type CoolifyProjectOption = {
138
+ uuid: string;
139
+ name: string;
140
+ description: string | null;
141
+ };
142
+ export type CoolifyServerOption = {
143
+ uuid: string;
144
+ name: string;
145
+ isReachable: boolean;
146
+ isUsable: boolean;
147
+ };
148
+ export declare enum AppRuntimeState {
149
+ Running = "running",
150
+ Stopped = "stopped",
151
+ Restarting = "restarting"
152
+ }
153
+ export type AppActionResponse = {
154
+ success: boolean;
155
+ message: string | null;
156
+ appUuid: string | null;
157
+ state: AppRuntimeState | null;
158
+ };
159
+ export type APIEnvelope<T> = {
160
+ success: boolean;
161
+ data: T | null;
162
+ message: string;
163
+ };
164
+ export type CreateGateReportAppResponse = {
165
+ created: boolean;
166
+ id: number | null;
167
+ data: GateReportManagedApp | null;
168
+ count: number | null;
169
+ message: string;
170
+ };
@@ -0,0 +1,98 @@
1
+ export declare enum HammertechRegion {
2
+ US = "us",
3
+ AU = "au",
4
+ EU = "eu"
5
+ }
6
+ export type HammertechConnectPayload = {
7
+ email: string;
8
+ password: string;
9
+ tenant: string;
10
+ region: HammertechRegion;
11
+ };
12
+ export type HammertechProject = {
13
+ projectId: string;
14
+ name: string;
15
+ };
16
+ export type HammertechLocation = {
17
+ id: string;
18
+ name: string;
19
+ parentId: string | null;
20
+ };
21
+ export type HammertechCustomFieldDataType = "FreeText" | "TextArea" | "Number" | "Date" | "Time" | "DateTime" | "ExpiryDate" | "Checkbox" | "YesNoRadio" | "YesNoNaRadio" | "Dropdown" | "Radio" | "MultiSelectDropdown" | "ImageUpload" | "FileUpload" | "Signature" | "SignatureWithName" | "Heading" | "BigLabel" | "ExpandingLabel" | "Separator" | "NoMargin" | "Image" | "FileDownload" | "ChildForm" | "SectionStart" | "SectionEnd" | "SystemField" | string;
22
+ export type HammertechCustomField = {
23
+ id: string;
24
+ internalName: string;
25
+ name?: string;
26
+ customFieldType: HammertechCustomFieldDataType;
27
+ isRequired?: boolean;
28
+ answerOptions?: string[];
29
+ };
30
+ export type HammertechCustomFieldForm = {
31
+ id: string;
32
+ customFields: HammertechCustomField[];
33
+ };
34
+ export declare enum HammertechPriority {
35
+ Low = "Low",
36
+ Medium = "Medium",
37
+ High = "High",
38
+ Critical = "Critical"
39
+ }
40
+ export declare enum HammertechClassification {
41
+ Undefined = "Undefined",
42
+ Positive = "Positive",
43
+ Negative = "Negative",
44
+ Neutral = "Neutral"
45
+ }
46
+ export type HammertechIssueType = {
47
+ id: string;
48
+ name: string;
49
+ forcePriority?: boolean;
50
+ suggestedPriority?: HammertechPriority | null;
51
+ canBeNegative?: boolean;
52
+ canBeNeutral?: boolean;
53
+ canBePositive?: boolean;
54
+ openIssueCustomFieldForm?: HammertechCustomFieldForm | null;
55
+ };
56
+ export type HammertechCustomFieldValue = {
57
+ customFieldId: string;
58
+ value?: unknown;
59
+ storedFileId?: string;
60
+ };
61
+ export declare const HAMMERTECH_FILE_FIELD_TYPES: string[];
62
+ export declare function isHammertechFileFieldType(type?: string): boolean;
63
+ export declare function isHammertechSignatureWithName(type?: string): boolean;
64
+ export type HammertechStoredFilePayload = {
65
+ fileName?: string;
66
+ base64FileContent: string;
67
+ annotation?: string;
68
+ id?: string;
69
+ };
70
+ export type HammertechStoredFileResponse = {
71
+ isSuccess: boolean;
72
+ httpStatusCode: number;
73
+ messageText: string;
74
+ createdEntityId: string;
75
+ xRequestId: string;
76
+ };
77
+ export type HammertechFileFieldValue = {
78
+ file: File | null;
79
+ name: string;
80
+ };
81
+ export type HammertechCreateIssuePayload = {
82
+ projectId: string;
83
+ issueTypeId: string;
84
+ snapshot: string;
85
+ issueDate?: string;
86
+ description?: string;
87
+ priority?: HammertechPriority;
88
+ dueDate?: string;
89
+ classification?: HammertechClassification;
90
+ locationId?: string;
91
+ isPositiveObservation?: boolean;
92
+ isPhotoForFixRequired?: boolean;
93
+ openIssueCustomFieldFormId?: string;
94
+ openIssueCustomFieldValues?: HammertechCustomFieldValue[];
95
+ };
96
+ export type HammertechIssueResponse = {
97
+ id: string;
98
+ };
@@ -8,7 +8,6 @@ export * from "./autodesk";
8
8
  export * from "./bim";
9
9
  export * from "./camera";
10
10
  export * from "./compare";
11
- export * from "./copilot";
12
11
  export * from "./credentials";
13
12
  export * from "./drone";
14
13
  export * from "./errors";
@@ -36,12 +35,13 @@ export * from "./storyblok";
36
35
  export * from "./time";
37
36
  export * from "./timelapse";
38
37
  export * from "./user";
39
- export * from "./vendorModel";
40
38
  export * from "./videoWall";
41
39
  export * from "./voyageControl";
40
+ export * from "./hammertech";
42
41
  export * from "./weather";
43
42
  export * from "./comments";
44
43
  export * from "./detections";
44
+ export * from "./observations";
45
45
  export * from "./axios";
46
46
  export * from "./shared";
47
47
  export * from "./company";
@@ -49,6 +49,7 @@ export * from "./kit";
49
49
  export * from "./auditLogs";
50
50
  export * from "./snapshots";
51
51
  export * from "./siteAnalytics";
52
+ export * from "./siteAnalyticsManagement";
52
53
  export * from "./widget";
53
54
  export * from "./countries";
54
55
  export * from "./automation";
@@ -63,3 +64,8 @@ export * from "./oauth";
63
64
  export * from "./ring";
64
65
  export * from "./smartSeach";
65
66
  export * from "./siteView";
67
+ export * from "./aiConfigs";
68
+ export * from "./gateReportManagement";
69
+ export * from "./socket";
70
+ export * from "./workflows";
71
+ export * from "./observationEvents";
@@ -1,4 +1,4 @@
1
- import { PaginationParams, DateType, JsonValue } from "@evercam/api/types";
1
+ import { PaginationParams, DateType, JsonValue, TuplePoint2D } from "@evercam/api/types";
2
2
  import type { _360FloorV2, _360WalkV2 } from "@evercam/api/types/360";
3
3
  export declare enum IngestProcessingStatus {
4
4
  Completed = "completed",
@@ -8,7 +8,8 @@ export declare enum IngestProcessingStatus {
8
8
  Aborted = "aborted",
9
9
  Paused = "paused",
10
10
  InProgress = "inprogress",
11
- Pending = "pending"
11
+ Pending = "pending",
12
+ Downloading = "downloading"
12
13
  }
13
14
  export declare enum MobileAssetsType {
14
15
  Audio = "mobile_audios",
@@ -38,6 +39,80 @@ export type IngestPaginatedResponse<T> = {
38
39
  total: number;
39
40
  pageCount?: number;
40
41
  };
42
+ export declare enum IngestProcessingStepStatus {
43
+ Running = "running",
44
+ Completed = "completed",
45
+ Failed = "failed",
46
+ Skipped = "skipped"
47
+ }
48
+ export declare enum IngestProcessingRunStatus {
49
+ Processing = "processing",
50
+ Completed = "completed",
51
+ Failed = "failed"
52
+ }
53
+ export type IngestProcessingMetricStat = {
54
+ avg?: number;
55
+ peak?: number;
56
+ };
57
+ export type IngestProcessingStepMetrics = {
58
+ cpu?: IngestProcessingMetricStat;
59
+ ram?: IngestProcessingMetricStat;
60
+ gpuUtil?: IngestProcessingMetricStat;
61
+ gpuMemDevice?: IngestProcessingMetricStat;
62
+ gpuMemStep?: IngestProcessingMetricStat;
63
+ ramTotalMb?: number;
64
+ diskTotalMb?: number;
65
+ };
66
+ export type IngestProcessingStepDetail = {
67
+ input?: Record<string, JsonValue>;
68
+ params?: Record<string, JsonValue>;
69
+ output?: Record<string, JsonValue>;
70
+ metrics?: IngestProcessingStepMetrics;
71
+ error?: string;
72
+ };
73
+ export type IngestProcessingStep = {
74
+ name: string;
75
+ tool?: string;
76
+ status: IngestProcessingStepStatus | string;
77
+ startedAt?: string;
78
+ endedAt?: string;
79
+ durationSec?: number;
80
+ durationPct?: number;
81
+ detail?: IngestProcessingStepDetail;
82
+ };
83
+ export type IngestProcessingDiskUsage = {
84
+ sourceMb?: number;
85
+ framesMb?: number;
86
+ resultMb?: number;
87
+ totalMb?: number;
88
+ };
89
+ export type IngestProcessingPeakUsage = {
90
+ cpu?: number;
91
+ ram?: number;
92
+ gpuUtil?: number;
93
+ gpuMemDevice?: number;
94
+ gpuMemStep?: number;
95
+ };
96
+ export type IngestProcessingFootprint = {
97
+ disk?: IngestProcessingDiskUsage;
98
+ peak?: IngestProcessingPeakUsage;
99
+ };
100
+ export type IngestProcessingProgress = {
101
+ available: boolean;
102
+ status?: IngestProcessingRunStatus | string;
103
+ processingStatus?: IngestProcessingStatus | string;
104
+ currentStep?: string | null;
105
+ error?: string | null;
106
+ startedAt?: string;
107
+ steps: IngestProcessingStep[];
108
+ footprint?: IngestProcessingFootprint;
109
+ };
110
+ export type IngestTrackedAsset = {
111
+ id: number;
112
+ projectId: string;
113
+ name?: string;
114
+ processingStatus?: IngestProcessingStatus | string;
115
+ };
41
116
  export type DroneUploadItem = {
42
117
  id: number;
43
118
  projectId: string;
@@ -48,11 +123,14 @@ export type DroneUploadItem = {
48
123
  modelZip: string;
49
124
  orthomosaicZip: string;
50
125
  reportPdf: string;
126
+ processingLog: string;
51
127
  uploadedBy: string;
52
128
  processingStatus: IngestProcessingStatus | string;
53
129
  modelCesiumAssetId: string;
54
130
  updatedAt: string;
55
131
  hasTusLinks: boolean;
132
+ hasSteps: boolean;
133
+ aerialShots: AerialShotItem[];
56
134
  };
57
135
  export type DroneUploadsResponse = IngestPaginatedResponse<DroneUploadItem>;
58
136
  export type DroneQueueResponse = {
@@ -82,12 +160,21 @@ export type DroneUploadUpdateRequestPayload = {
82
160
  };
83
161
  export type CalculateMeasuringOperationRequestPayload = {
84
162
  date: DateType;
85
- points: [number, number][];
163
+ points: TuplePoint2D[];
86
164
  operation: string;
87
165
  };
88
166
  export type FlightImagesQueryParams = Partial<Omit<PaginationParams, "sort">> & {
89
167
  date: DateType;
90
168
  };
169
+ export type AerialShotItem = {
170
+ id: number;
171
+ droneUploadId: number;
172
+ fileLink: string;
173
+ thumbnailLink: string;
174
+ gpsLatitude: string;
175
+ gpsLongitude: string;
176
+ gpsAltitude: string;
177
+ };
91
178
  export type InspectionToolRequestPayload = {
92
179
  date: DateType;
93
180
  gpsAltitude: string;