@evercam/api 1.0.0-a5bda6817 → 1.0.0-a5ed7fc12

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 (74) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +73 -30
  3. package/dist/api/api/adminApi.d.ts +39 -22
  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 +45 -25
  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 +51 -33
  10. package/dist/api/api/reportsApi.d.ts +15 -0
  11. package/dist/api/types/360.d.ts +127 -43
  12. package/dist/api/types/admin.d.ts +1 -1
  13. package/dist/api/types/aiConfigs.d.ts +244 -0
  14. package/dist/api/types/analytics.d.ts +36 -24
  15. package/dist/api/types/anpr.d.ts +31 -0
  16. package/dist/api/types/apiKey.d.ts +70 -0
  17. package/dist/api/types/auditLogs.d.ts +145 -20
  18. package/dist/api/types/authz.d.ts +71 -0
  19. package/dist/api/types/automation.d.ts +32 -4
  20. package/dist/api/types/axios.d.ts +9 -9
  21. package/dist/api/types/bim.d.ts +12 -6
  22. package/dist/api/types/camera.d.ts +37 -28
  23. package/dist/api/types/comments.d.ts +9 -2
  24. package/dist/api/types/company.d.ts +1 -2
  25. package/dist/api/types/compare.d.ts +1 -1
  26. package/dist/api/types/connector.d.ts +2 -0
  27. package/dist/api/types/detections.d.ts +3 -1
  28. package/dist/api/types/drone.d.ts +7 -7
  29. package/dist/api/types/errors.d.ts +18 -2
  30. package/dist/api/types/gateReport.d.ts +1 -11
  31. package/dist/api/types/gateReportManagement.d.ts +170 -0
  32. package/dist/api/types/hammertech.d.ts +98 -0
  33. package/dist/api/types/index.d.ts +9 -2
  34. package/dist/api/types/ingest.d.ts +179 -25
  35. package/dist/api/types/kit.d.ts +44 -101
  36. package/dist/api/types/media.d.ts +7 -2
  37. package/dist/api/types/notification.d.ts +52 -2
  38. package/dist/api/types/nvr.d.ts +8 -8
  39. package/dist/api/types/observationEvents.d.ts +141 -0
  40. package/dist/api/types/observations.d.ts +80 -0
  41. package/dist/api/types/planner.d.ts +1 -8
  42. package/dist/api/types/posthog.d.ts +20 -0
  43. package/dist/api/types/project.d.ts +15 -3
  44. package/dist/api/types/recording.d.ts +5 -12
  45. package/dist/api/types/reports.d.ts +108 -0
  46. package/dist/api/types/ring.d.ts +16 -16
  47. package/dist/api/types/roi.d.ts +2 -10
  48. package/dist/api/types/routeParams.d.ts +1 -0
  49. package/dist/api/types/shared.d.ts +14 -23
  50. package/dist/api/types/shares.d.ts +0 -13
  51. package/dist/api/types/siteAnalytics.d.ts +1 -3
  52. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -0
  53. package/dist/api/types/siteView.d.ts +12 -8
  54. package/dist/api/types/snapshots.d.ts +5 -0
  55. package/dist/api/types/socket.d.ts +4 -0
  56. package/dist/api/types/storyblok.d.ts +0 -13
  57. package/dist/api/types/timelapse.d.ts +1 -8
  58. package/dist/api/types/user.d.ts +16 -4
  59. package/dist/api/utils.d.ts +1 -1
  60. package/dist/index.js +1853 -1010
  61. package/dist/index.js.map +1 -1
  62. package/dist/index.umd.cjs +1 -1
  63. package/dist/index.umd.cjs.map +1 -1
  64. package/dist/shared/types/components.d.ts +262 -44
  65. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  66. package/dist/shared/types/droneUpload.d.ts +93 -0
  67. package/dist/shared/types/index.d.ts +4 -0
  68. package/dist/shared/types/observations.d.ts +25 -0
  69. package/dist/shared/types/report.d.ts +107 -0
  70. package/dist/shared/utils/datePickerValue.d.ts +36 -0
  71. package/dist/shared/utils/datePresets.d.ts +31 -0
  72. package/package.json +4 -2
  73. package/dist/api/types/copilot.d.ts +0 -162
  74. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -23,7 +23,9 @@ 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,
28
+ TooManyRequestsError = 429
27
29
  }
28
30
  export declare enum EvercamApiErrorCode {
29
31
  IntegrationError = "INTEGRATION_ERROR",
@@ -37,7 +39,8 @@ export declare enum EvercamApiErrorCode {
37
39
  ProviderEmailRequired = "PROVIDER_EMAIL_REQUIRED",
38
40
  PasswordReset = "PASSWORD_RESET",
39
41
  RequireShareRequest = "REQUIRE_SHARE_REQUEST",
40
- Generic = "GENERIC"
42
+ Generic = "GENERIC",
43
+ VideoWallInUse = "VIDEO_WALL_IN_USE"
41
44
  }
42
45
  type _EvercamApiError = {
43
46
  code: EvercamApiErrorCode;
@@ -46,4 +49,17 @@ type _EvercamApiError = {
46
49
  innerError?: _EvercamApiError;
47
50
  };
48
51
  export type EvercamApiError = AxiosError<_EvercamApiError>;
52
+ export declare function isEvercamApiError(error: unknown): error is EvercamApiError;
53
+ export declare function getEvercamApiErrorCode(error: unknown): EvercamApiErrorCode | undefined;
54
+ export type AppError = {
55
+ statusCode?: number;
56
+ message?: string;
57
+ redirect?: {
58
+ url?: string;
59
+ label?: string;
60
+ delay?: number;
61
+ };
62
+ withSupportMessage?: boolean;
63
+ isWidget?: boolean;
64
+ };
49
65
  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";
@@ -60,6 +61,12 @@ export * from "./posthog";
60
61
  export * from "./recycleBin";
61
62
  export * from "./authz";
62
63
  export * from "./oauth";
64
+ export * from "./apiKey";
63
65
  export * from "./ring";
64
66
  export * from "./smartSeach";
65
67
  export * from "./siteView";
68
+ export * from "./aiConfigs";
69
+ export * from "./gateReportManagement";
70
+ export * from "./socket";
71
+ export * from "./reports";
72
+ export * from "./observationEvents";
@@ -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",
@@ -27,8 +28,6 @@ export declare enum IngestTypes {
27
28
  }
28
29
  export type DronesQueryParams = Omit<PaginationParams, "sort"> & {
29
30
  projectId: string;
30
- consumed: string;
31
- token: string;
32
31
  processingStatus: IngestProcessingStatus;
33
32
  };
34
33
  export type IngestPaginatedResponse<T> = {
@@ -38,47 +37,193 @@ export type IngestPaginatedResponse<T> = {
38
37
  total: number;
39
38
  pageCount?: number;
40
39
  };
40
+ export declare enum IngestProcessingStepStatus {
41
+ Running = "running",
42
+ Completed = "completed",
43
+ Failed = "failed",
44
+ Skipped = "skipped"
45
+ }
46
+ export declare enum IngestProcessingRunStatus {
47
+ Processing = "processing",
48
+ Completed = "completed",
49
+ Failed = "failed"
50
+ }
51
+ export type IngestProcessingMetricStat = {
52
+ avg?: number;
53
+ peak?: number;
54
+ };
55
+ export type IngestProcessingStepMetrics = {
56
+ cpu?: IngestProcessingMetricStat;
57
+ ram?: IngestProcessingMetricStat;
58
+ gpuUtil?: IngestProcessingMetricStat;
59
+ gpuMemDevice?: IngestProcessingMetricStat;
60
+ gpuMemStep?: IngestProcessingMetricStat;
61
+ ramTotalMb?: number;
62
+ diskTotalMb?: number;
63
+ };
64
+ export type IngestProcessingStepDetail = {
65
+ input?: Record<string, JsonValue>;
66
+ params?: Record<string, JsonValue>;
67
+ output?: Record<string, JsonValue>;
68
+ metrics?: IngestProcessingStepMetrics;
69
+ error?: string;
70
+ };
71
+ export type IngestProcessingStep = {
72
+ name: string;
73
+ tool?: string;
74
+ status: IngestProcessingStepStatus | string;
75
+ startedAt?: string;
76
+ endedAt?: string;
77
+ durationSec?: number;
78
+ durationPct?: number;
79
+ detail?: IngestProcessingStepDetail;
80
+ };
81
+ export type IngestProcessingDiskUsage = {
82
+ sourceMb?: number;
83
+ framesMb?: number;
84
+ resultMb?: number;
85
+ totalMb?: number;
86
+ };
87
+ export type IngestProcessingPeakUsage = {
88
+ cpu?: number;
89
+ ram?: number;
90
+ gpuUtil?: number;
91
+ gpuMemDevice?: number;
92
+ gpuMemStep?: number;
93
+ };
94
+ export type IngestProcessingFootprint = {
95
+ disk?: IngestProcessingDiskUsage;
96
+ peak?: IngestProcessingPeakUsage;
97
+ };
98
+ export type IngestProcessingProgress = {
99
+ available: boolean;
100
+ status?: IngestProcessingRunStatus | string;
101
+ processingStatus?: IngestProcessingStatus | string;
102
+ currentStep?: string | null;
103
+ error?: string | null;
104
+ startedAt?: string;
105
+ steps: IngestProcessingStep[];
106
+ footprint?: IngestProcessingFootprint;
107
+ };
108
+ export type IngestTrackedAsset = {
109
+ id: number;
110
+ projectId: string;
111
+ name?: string;
112
+ processingStatus?: IngestProcessingStatus | string;
113
+ };
41
114
  export type DroneUploadItem = {
42
115
  id: number;
43
116
  projectId: string;
44
- consumed: boolean;
45
- token: string;
46
117
  flightDate: string;
47
118
  flightGeolocation: string;
48
119
  modelZip: string;
49
120
  orthomosaicZip: string;
50
121
  reportPdf: string;
122
+ processingLog: string;
51
123
  uploadedBy: string;
52
124
  processingStatus: IngestProcessingStatus | string;
53
125
  modelCesiumAssetId: string;
54
126
  updatedAt: string;
55
- hasTusLinks: boolean;
127
+ canDelete: boolean;
128
+ canReprocess: boolean;
129
+ hasSteps: boolean;
130
+ aerialShotsCount: number;
56
131
  };
57
132
  export type DroneUploadsResponse = IngestPaginatedResponse<DroneUploadItem>;
58
133
  export type DroneQueueResponse = {
59
134
  size: number;
60
135
  assetsDrone: DroneUploadItem[];
61
136
  };
62
- export type DroneUploadUpdateRequestPayload = {
63
- flightMetadata: {
64
- dateTime: string;
65
- gpsAltitude: string;
66
- gpsCoordinates: string;
67
- };
68
- upload: {
69
- url: string;
70
- title: string;
71
- fileExtension: string;
72
- }[];
73
- aerialShots: {
74
- url: string;
75
- title: string;
76
- fileExtension: string;
77
- gpsLatitude: string;
78
- gpsLongitude: string;
79
- gpsAltitude: string;
137
+ export type DroneFlightMetadata = {
138
+ dateTime: string;
139
+ gpsAltitude: string;
140
+ gpsCoordinates: string;
141
+ };
142
+ export type DroneFileAllocation = {
143
+ filename: string;
144
+ contentType: string;
145
+ };
146
+ export declare enum UploadFileStatus {
147
+ Allocated = "allocated",
148
+ Acknowledged = "acknowledged"
149
+ }
150
+ export type DroneFileState = DroneFileAllocation & {
151
+ status: UploadFileStatus;
152
+ uploadUrl?: string;
153
+ };
154
+ export type DroneFileError = {
155
+ filename?: string;
156
+ id?: number;
157
+ code: string;
158
+ detail: string;
159
+ retryable: boolean;
160
+ };
161
+ export type DroneFileStates = {
162
+ files: DroneFileState[];
163
+ errors: DroneFileError[];
164
+ nextCursor?: string | null;
165
+ };
166
+ export type DroneCompletion = DroneFileStates & {
167
+ processingId: number;
168
+ processingStatus: IngestProcessingStatus;
169
+ };
170
+ export type DroneReprocessResponse = Pick<DroneCompletion, "processingId" | "processingStatus">;
171
+ export type AerialAllocation = DroneFileAllocation & {
172
+ gpsLatitude: string;
173
+ gpsLongitude: string;
174
+ gpsAltitude: string;
175
+ };
176
+ export type AerialUploadState = AerialAllocation & {
177
+ id: number;
178
+ status: UploadFileStatus;
179
+ processingStatus: IngestProcessingStatus;
180
+ uploadUrl?: string;
181
+ fileLink?: string;
182
+ thumbnailLink?: string;
183
+ };
184
+ export type AerialUploadStates = {
185
+ aerialShots: AerialUploadState[];
186
+ errors: DroneFileError[];
187
+ nextCursor?: string | null;
188
+ complete: boolean;
189
+ };
190
+ export type AerialShotState = {
191
+ id: number;
192
+ filename?: string | null;
193
+ status?: UploadFileStatus | null;
194
+ contentType?: string | null;
195
+ processingStatus?: AerialUploadState["processingStatus"] | null;
196
+ gpsLatitude: string;
197
+ gpsLongitude: string;
198
+ gpsAltitude: string;
199
+ fileLink?: string | null;
200
+ thumbnailLink?: string | null;
201
+ };
202
+ export type AerialShotPage = Omit<AerialUploadStates, "aerialShots"> & {
203
+ aerialShots: AerialShotState[];
204
+ };
205
+ export type DroneCreation = {
206
+ projectId: string;
207
+ flightMetadata: DroneFlightMetadata;
208
+ aerialShots?: AerialAllocation[];
209
+ };
210
+ export type DroneProcessingTarget = {
211
+ ingestUrl: string;
212
+ id: number;
213
+ };
214
+ export type DroneCreated = {
215
+ id: number;
216
+ projectId: string;
217
+ processingStatus: IngestProcessingStatus;
218
+ aerialShots: AerialUploadState[];
219
+ errors: DroneFileError[];
220
+ };
221
+ export type DroneDeletion = {
222
+ deleted: {
223
+ filename: string;
224
+ id?: number;
80
225
  }[];
81
- projectName: string;
226
+ errors: DroneFileError[];
82
227
  };
83
228
  export type CalculateMeasuringOperationRequestPayload = {
84
229
  date: DateType;
@@ -88,6 +233,15 @@ export type CalculateMeasuringOperationRequestPayload = {
88
233
  export type FlightImagesQueryParams = Partial<Omit<PaginationParams, "sort">> & {
89
234
  date: DateType;
90
235
  };
236
+ export type AerialShotItem = {
237
+ id: number;
238
+ droneUploadId: number;
239
+ fileLink: string;
240
+ thumbnailLink: string;
241
+ gpsLatitude: string;
242
+ gpsLongitude: string;
243
+ gpsAltitude: string;
244
+ };
91
245
  export type InspectionToolRequestPayload = {
92
246
  date: DateType;
93
247
  gpsAltitude: string;