@pensasystems/pensa-react-native 0.1.0-beta-13 → 0.1.0-beta-15
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/PensaSdkReactNative.podspec +1 -1
- package/android/build.gradle +3 -19
- package/android/src/main/java/com/pensasdkreactnative/PensaSdkReactNativeModule.kt +72 -80
- package/ios/PensaSdkReactNative.mm +1 -1
- package/ios/PensaSdkReactNative.swift +81 -70
- package/lib/module/index.js +4 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +10 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +22 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/index.tsx +10 -6
- package/src/types.ts +21 -0
package/android/build.gradle
CHANGED
|
@@ -7,15 +7,7 @@ buildscript {
|
|
|
7
7
|
google()
|
|
8
8
|
mavenCentral()
|
|
9
9
|
maven {
|
|
10
|
-
|
|
11
|
-
url = uri("https://pensasystems.jfrog.io/artifactory/pensa-dev-maven-sdk-android-virtual/")
|
|
12
|
-
credentials {
|
|
13
|
-
username = "ci-cd-service"
|
|
14
|
-
password = "GChhw(Ywq&-qu1@@"
|
|
15
|
-
}
|
|
16
|
-
authentication {
|
|
17
|
-
basic(BasicAuthentication)
|
|
18
|
-
}
|
|
10
|
+
url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
|
|
19
11
|
}
|
|
20
12
|
}
|
|
21
13
|
|
|
@@ -83,15 +75,7 @@ repositories {
|
|
|
83
75
|
mavenCentral()
|
|
84
76
|
google()
|
|
85
77
|
maven {
|
|
86
|
-
|
|
87
|
-
url = uri("https://pensasystems.jfrog.io/artifactory/pensa-dev-maven-sdk-android-virtual/")
|
|
88
|
-
credentials {
|
|
89
|
-
username = "ci-cd-service"
|
|
90
|
-
password = "GChhw(Ywq&-qu1@@"
|
|
91
|
-
}
|
|
92
|
-
authentication {
|
|
93
|
-
basic(BasicAuthentication)
|
|
94
|
-
}
|
|
78
|
+
url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
|
|
95
79
|
}
|
|
96
80
|
}
|
|
97
81
|
|
|
@@ -99,7 +83,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
|
99
83
|
|
|
100
84
|
dependencies {
|
|
101
85
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
|
|
102
|
-
implementation "com.pensasystems:pensasdk:1.0.
|
|
86
|
+
implementation "com.pensasystems:pensasdk:1.0.20"
|
|
103
87
|
implementation "com.facebook.react:react-android"
|
|
104
88
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
105
89
|
}
|
|
@@ -7,6 +7,7 @@ import com.facebook.react.bridge.ReactMethod
|
|
|
7
7
|
import com.facebook.react.bridge.Promise
|
|
8
8
|
import com.facebook.react.bridge.ReadableArray
|
|
9
9
|
import com.facebook.react.bridge.ReadableMap
|
|
10
|
+
import com.facebook.react.bridge.ReadableType
|
|
10
11
|
import com.pensasystems.pensasdk.PensaSdk
|
|
11
12
|
import com.pensasystems.pensasdk.PensaSdkConfiguration
|
|
12
13
|
import com.pensasystems.pensasdk.model.PensaReportType
|
|
@@ -214,108 +215,79 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
214
215
|
}
|
|
215
216
|
|
|
216
217
|
@ReactMethod
|
|
217
|
-
fun fetchOnDemandReports(
|
|
218
|
+
fun fetchOnDemandReports(
|
|
219
|
+
scanId: Int,
|
|
220
|
+
projectId: Int?,
|
|
221
|
+
reportTypes: ReadableArray?,
|
|
222
|
+
promise: Promise
|
|
223
|
+
) {
|
|
218
224
|
try {
|
|
219
|
-
val
|
|
220
|
-
if (reportType != null) PensaReportType.valueOf(reportType) else PensaReportType.ITEMS_SEEN
|
|
221
|
-
} catch (e: Exception) {
|
|
222
|
-
PensaReportType.ITEMS_SEEN
|
|
223
|
-
}
|
|
225
|
+
val finalReportTypes = parseReportTypes(reportTypes)
|
|
224
226
|
|
|
225
227
|
PensaSdk.fetchOnDemandReports(
|
|
226
228
|
scanId = scanId,
|
|
227
229
|
projectId = projectId,
|
|
228
|
-
|
|
230
|
+
reportTypes = finalReportTypes,
|
|
229
231
|
onSuccess = { report ->
|
|
230
|
-
|
|
231
232
|
val result = Arguments.createMap()
|
|
232
233
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
p.putString("brand", product.brand)
|
|
238
|
-
|
|
239
|
-
val brandId = product.brandId
|
|
240
|
-
if (brandId != null) p.putInt("brandId", brandId) else p.putNull("brandId")
|
|
241
|
-
|
|
242
|
-
p.putString("category", product.category)
|
|
243
|
-
|
|
244
|
-
val categoryId = product.categoryId
|
|
245
|
-
if (categoryId != null) p.putInt("categoryId", categoryId) else p.putNull("categoryId")
|
|
246
|
-
|
|
247
|
-
val facings = product.facings
|
|
248
|
-
if (facings != null) p.putInt("facings", facings) else p.putNull("facings")
|
|
249
|
-
|
|
250
|
-
p.putString("manufacturer", product.manufacturer)
|
|
234
|
+
fun toProductMap(p: com.pensasystems.pensasdk.model.PensaOnDemandProduct) =
|
|
235
|
+
Arguments.createMap().apply {
|
|
236
|
+
putString("brand", p.brand)
|
|
237
|
+
p.brandId?.let { putInt("brandId", it) } ?: putNull("brandId")
|
|
251
238
|
|
|
252
|
-
|
|
253
|
-
|
|
239
|
+
putString("category", p.category)
|
|
240
|
+
p.categoryId?.let { putInt("categoryId", it) } ?: putNull("categoryId")
|
|
254
241
|
|
|
255
|
-
p.
|
|
242
|
+
p.expectedFacings?.let { putInt("expectedFacings", it) } ?: putNull("expectedFacings")
|
|
243
|
+
p.facings?.let { putInt("facings", it) } ?: putNull("facings")
|
|
256
244
|
|
|
257
|
-
|
|
258
|
-
|
|
245
|
+
putString("manufacturer", p.manufacturer)
|
|
246
|
+
p.manufacturerId?.let { putInt("manufacturerId", it) } ?: putNull("manufacturerId")
|
|
259
247
|
|
|
260
|
-
|
|
248
|
+
putString("product", p.product)
|
|
249
|
+
p.productId?.let { putInt("productId", it) } ?: putNull("productId")
|
|
261
250
|
|
|
262
|
-
|
|
251
|
+
putString("upc", p.upc)
|
|
263
252
|
}
|
|
264
|
-
val bucketMap = Arguments.createMap()
|
|
265
|
-
bucketMap.putArray("productList", productsArray)
|
|
266
|
-
result.putMap("facingsSeen", bucketMap)
|
|
267
|
-
} ?: result.putNull("facingsSeen")
|
|
268
|
-
|
|
269
|
-
report.itemsSeen?.let { bucket ->
|
|
270
|
-
val productsArray = Arguments.createArray()
|
|
271
|
-
bucket.productList.forEach { product ->
|
|
272
|
-
val p = Arguments.createMap()
|
|
273
|
-
p.putString("brand", product.brand)
|
|
274
|
-
|
|
275
|
-
val brandId = product.brandId
|
|
276
|
-
if (brandId != null) p.putInt("brandId", brandId) else p.putNull("brandId")
|
|
277
|
-
|
|
278
|
-
p.putString("category", product.category)
|
|
279
|
-
|
|
280
|
-
val categoryId = product.categoryId
|
|
281
|
-
if (categoryId != null) p.putInt("categoryId", categoryId) else p.putNull("categoryId")
|
|
282
|
-
|
|
283
|
-
val facings = product.facings
|
|
284
|
-
if (facings != null) p.putInt("facings", facings) else p.putNull("facings")
|
|
285
|
-
|
|
286
|
-
p.putString("manufacturer", product.manufacturer)
|
|
287
|
-
|
|
288
|
-
val manufacturerId = product.manufacturerId
|
|
289
|
-
if (manufacturerId != null) p.putInt("manufacturerId", manufacturerId) else p.putNull("manufacturerId")
|
|
290
|
-
|
|
291
|
-
p.putString("product", product.product)
|
|
292
253
|
|
|
293
|
-
|
|
294
|
-
|
|
254
|
+
fun toBucketMap(b: com.pensasystems.pensasdk.model.PensaOnDemandReportBucket) =
|
|
255
|
+
Arguments.createMap().apply {
|
|
256
|
+
val arr = Arguments.createArray()
|
|
257
|
+
b.productList.forEach { arr.pushMap(toProductMap(it)) }
|
|
258
|
+
putArray("productList", arr)
|
|
259
|
+
}
|
|
295
260
|
|
|
296
|
-
|
|
261
|
+
fun putBucket(key: String, bucket: com.pensasystems.pensasdk.model.PensaOnDemandReportBucket?) {
|
|
262
|
+
if (bucket == null) result.putNull(key) else result.putMap(key, toBucketMap(bucket))
|
|
263
|
+
}
|
|
297
264
|
|
|
298
|
-
|
|
265
|
+
// Fill only requested
|
|
266
|
+
finalReportTypes.distinct().forEach { t ->
|
|
267
|
+
when (t) {
|
|
268
|
+
PensaReportType.FACINGS_SEEN -> putBucket("facingsSeen", report.facingsSeen)
|
|
269
|
+
PensaReportType.FULL_FACINGS -> putBucket("fullFacings", report.fullFacings)
|
|
270
|
+
PensaReportType.FULL_FACINGS_AND_PRODUCT_POSITIONS ->
|
|
271
|
+
putBucket("fullFacingsAndProductPositions", report.fullFacingsAndProductPositions)
|
|
272
|
+
PensaReportType.ITEMS_SEEN -> putBucket("itemsSeen", report.itemsSeen)
|
|
273
|
+
PensaReportType.NEW_PRODUCTS -> putBucket("newProducts", report.newProducts)
|
|
274
|
+
PensaReportType.NEW_PRODUCT_PACKAGING -> putBucket("newProductPackaging", report.newProductPackaging)
|
|
275
|
+
PensaReportType.NO_OOS -> putBucket("noOos", report.noOos)
|
|
276
|
+
PensaReportType.OOS -> putBucket("oos", report.oos)
|
|
277
|
+
PensaReportType.PRODUCT_POSITIONS -> putBucket("productPositions", report.productPositions)
|
|
278
|
+
PensaReportType.SCAN_FAILED -> putBucket("scanFailed", report.scanFailed)
|
|
279
|
+
PensaReportType.SCAN_REJECTED -> putBucket("scanRejected", report.scanRejected)
|
|
280
|
+
PensaReportType.SCAN_SKIPPED -> putBucket("scanSkipped", report.scanSkipped)
|
|
299
281
|
}
|
|
300
|
-
|
|
301
|
-
bucketMap.putArray("productList", productsArray)
|
|
302
|
-
result.putMap("itemsSeen", bucketMap)
|
|
303
|
-
} ?: result.putNull("itemsSeen")
|
|
304
|
-
|
|
305
|
-
val projectIdVal = report.projectId
|
|
306
|
-
if (projectIdVal != null) result.putInt("projectId", projectIdVal) else result.putNull("projectId")
|
|
282
|
+
}
|
|
307
283
|
|
|
284
|
+
// Other fields
|
|
285
|
+
report.projectId?.let { result.putInt("projectId", it) } ?: result.putNull("projectId")
|
|
308
286
|
result.putString("projectName", report.projectName)
|
|
309
|
-
|
|
310
|
-
val projectReportIdVal = report.projectReportId
|
|
311
|
-
if (projectReportIdVal != null) result.putInt("projectReportId", projectReportIdVal) else result.putNull("projectReportId")
|
|
312
|
-
|
|
287
|
+
report.projectReportId?.let { result.putInt("projectReportId", it) } ?: result.putNull("projectReportId")
|
|
313
288
|
result.putString("projectReportName", report.projectReportName)
|
|
314
289
|
result.putString("realogramSignedUrl", report.realogramSignedUrl)
|
|
315
|
-
|
|
316
|
-
val shelfIdVal = report.shelfId
|
|
317
|
-
if (shelfIdVal != null) result.putInt("shelfId", shelfIdVal) else result.putNull("shelfId")
|
|
318
|
-
|
|
290
|
+
report.shelfId?.let { result.putInt("shelfId", it) } ?: result.putNull("shelfId")
|
|
319
291
|
result.putString("shelfName", report.shelfName)
|
|
320
292
|
result.putString("status", report.status)
|
|
321
293
|
|
|
@@ -352,4 +324,24 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
352
324
|
promise.reject("FETCH_PRODUCT_IMAGE_EXCEPTION", e)
|
|
353
325
|
}
|
|
354
326
|
}
|
|
327
|
+
|
|
328
|
+
// Helpers
|
|
329
|
+
|
|
330
|
+
private fun parseReportTypes(reportTypes: ReadableArray?): List<PensaReportType> {
|
|
331
|
+
if (reportTypes == null || reportTypes.size() == 0) return listOf(PensaReportType.ITEMS_SEEN)
|
|
332
|
+
|
|
333
|
+
val list = mutableListOf<PensaReportType>()
|
|
334
|
+
for (i in 0 until reportTypes.size()) {
|
|
335
|
+
if (reportTypes.getType(i) != ReadableType.String) continue
|
|
336
|
+
val raw = reportTypes.getString(i) ?: continue
|
|
337
|
+
val parsed = try {
|
|
338
|
+
PensaReportType.valueOf(raw)
|
|
339
|
+
} catch (e: Exception) {
|
|
340
|
+
null
|
|
341
|
+
}
|
|
342
|
+
if (parsed != null) list.add(parsed)
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
return if (list.isEmpty()) listOf(PensaReportType.ITEMS_SEEN) else list.distinct()
|
|
346
|
+
}
|
|
355
347
|
}
|
|
@@ -44,7 +44,7 @@ RCT_EXTERN_METHOD(fetchScanStatuses:(NSArray *)scanIds
|
|
|
44
44
|
|
|
45
45
|
RCT_EXTERN_METHOD(fetchOnDemandReports:(nonnull NSNumber *)scanId
|
|
46
46
|
projectId:(nullable NSNumber *)projectId
|
|
47
|
-
|
|
47
|
+
reportTypes:(nullable NSArray *)reportTypes
|
|
48
48
|
withResolver:(RCTPromiseResolveBlock)resolve
|
|
49
49
|
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
50
50
|
|
|
@@ -161,84 +161,95 @@ class PensaSdkReactNative: NSObject {
|
|
|
161
161
|
)
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
@objc(fetchOnDemandReports:projectId:
|
|
165
|
-
func fetchOnDemandReports(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
) {
|
|
172
|
-
|
|
173
|
-
let typeString = reportType as String? ?? "ITEMS_SEEN"
|
|
174
|
-
let type = PensaReportType(rawValue: typeString) ?? .itemsSeen
|
|
164
|
+
@objc(fetchOnDemandReports:projectId:reportTypes:withResolver:withRejecter:)
|
|
165
|
+
func fetchOnDemandReports(
|
|
166
|
+
scanId: NSNumber,
|
|
167
|
+
projectId: NSNumber?,
|
|
168
|
+
reportTypes: NSArray?,
|
|
169
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
170
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
171
|
+
) {
|
|
172
|
+
func rn(_ value: Any?) -> Any { value ?? NSNull() }
|
|
175
173
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
174
|
+
let types: [PensaReportType] = {
|
|
175
|
+
guard let arr = reportTypes as? [String], !arr.isEmpty else { return [.itemsSeen] }
|
|
176
|
+
let mapped = arr.compactMap { PensaReportType(rawValue: $0) }
|
|
177
|
+
return mapped.isEmpty ? [.itemsSeen] : mapped
|
|
178
|
+
}()
|
|
181
179
|
|
|
182
|
-
|
|
180
|
+
Pensa.shared.fetchOnDemandReports(
|
|
181
|
+
scanId: scanId.intValue,
|
|
182
|
+
projectId: projectId?.intValue,
|
|
183
|
+
reportTypes: types,
|
|
184
|
+
onSuccess: { report in
|
|
183
185
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
186
|
+
var result: [String: Any] = [
|
|
187
|
+
"shelfId": rn(report.shelfId),
|
|
188
|
+
"shelfName": rn(report.shelfName),
|
|
189
|
+
"status": rn(report.status),
|
|
190
|
+
"projectId": rn(report.projectId),
|
|
191
|
+
"projectName": rn(report.projectName),
|
|
192
|
+
"projectReportId": rn(report.projectReportId),
|
|
193
|
+
"projectReportName": rn(report.projectReportName),
|
|
194
|
+
"realogramSignedUrl": rn(report.realogramSignedUrl)
|
|
195
|
+
]
|
|
194
196
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
[
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
197
|
+
func addBucket(_ key: String, _ bucket: PensaOnDemandReportBucket?) {
|
|
198
|
+
guard let bucket = bucket else { return } // istenen tip yoksa hiç ekleme
|
|
199
|
+
let products: [[String: Any]] = bucket.productList.map { p in
|
|
200
|
+
[
|
|
201
|
+
"brand": rn(p.brand),
|
|
202
|
+
"brandId": rn(p.brandId),
|
|
203
|
+
"category": rn(p.category),
|
|
204
|
+
"categoryId": rn(p.categoryId),
|
|
205
|
+
"expectedFacings": rn(p.expectedFacings),
|
|
206
|
+
"facings": rn(p.facings),
|
|
207
|
+
"manufacturer": rn(p.manufacturer),
|
|
208
|
+
"manufacturerId": rn(p.manufacturerId),
|
|
209
|
+
"product": rn(p.product),
|
|
210
|
+
"productId": rn(p.productId),
|
|
211
|
+
"upc": rn(p.upc)
|
|
212
|
+
]
|
|
213
|
+
}
|
|
214
|
+
result[key] = ["productList": products]
|
|
209
215
|
}
|
|
210
|
-
result["facingsSeen"] = ["productList": products]
|
|
211
|
-
} else {
|
|
212
|
-
result["facingsSeen"] = NSNull()
|
|
213
|
-
}
|
|
214
216
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
"
|
|
219
|
-
|
|
220
|
-
"
|
|
221
|
-
|
|
222
|
-
"
|
|
223
|
-
|
|
224
|
-
"
|
|
225
|
-
|
|
226
|
-
"
|
|
227
|
-
|
|
228
|
-
|
|
217
|
+
for t in types {
|
|
218
|
+
switch t {
|
|
219
|
+
case .itemsSeen:
|
|
220
|
+
addBucket("itemsSeen", report.itemsSeen?.report)
|
|
221
|
+
case .facingsSeen:
|
|
222
|
+
addBucket("facingsSeen", report.facingsSeen?.report)
|
|
223
|
+
case .fullFacings:
|
|
224
|
+
addBucket("fullFacings", report.fullFacings?.report)
|
|
225
|
+
case .fullFacingsAndProductPositions:
|
|
226
|
+
addBucket("fullFacingsAndProductPositions", report.fullFacingsAndProductPositions?.report)
|
|
227
|
+
case .newProducts:
|
|
228
|
+
addBucket("newProducts", report.newProducts?.report)
|
|
229
|
+
case .newProductPackaging:
|
|
230
|
+
addBucket("newProductPackaging", report.newProductPackaging?.report)
|
|
231
|
+
case .noOos:
|
|
232
|
+
addBucket("noOos", report.noOos?.report)
|
|
233
|
+
case .oos:
|
|
234
|
+
addBucket("oos", report.oos?.report)
|
|
235
|
+
case .productPositions:
|
|
236
|
+
addBucket("productPositions", report.productPositions?.report)
|
|
237
|
+
case .scanFailed:
|
|
238
|
+
addBucket("scanFailed", report.scanFailed?.report)
|
|
239
|
+
case .scanRejected:
|
|
240
|
+
addBucket("scanRejected", report.scanRejected?.report)
|
|
241
|
+
case .scanSkipped:
|
|
242
|
+
addBucket("scanSkipped", report.scanSkipped?.report)
|
|
243
|
+
}
|
|
229
244
|
}
|
|
230
|
-
result["itemsSeen"] = ["productList": products]
|
|
231
|
-
} else {
|
|
232
|
-
result["itemsSeen"] = NSNull()
|
|
233
|
-
}
|
|
234
245
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
}
|
|
246
|
+
resolve(result)
|
|
247
|
+
},
|
|
248
|
+
onError: { error in
|
|
249
|
+
reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
|
|
250
|
+
}
|
|
251
|
+
)
|
|
252
|
+
}
|
|
242
253
|
|
|
243
254
|
@objc(fetchProductImageBase64:withResolver:withRejecter:)
|
|
244
255
|
func fetchProductImageBase64(productId: NSNumber,
|
package/lib/module/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { NativeModules, Platform } from 'react-native';
|
|
4
|
+
import { PensaReportType } from "./types.js";
|
|
4
5
|
const LINKING_ERROR = `The package 'pensa-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
5
6
|
ios: "- You have run 'pod install'\n",
|
|
6
7
|
default: ''
|
|
@@ -40,8 +41,9 @@ export const showStoreChecklist = (globalStoreId, guid, sectionKey) => {
|
|
|
40
41
|
export const fetchScanStatuses = scanIds => {
|
|
41
42
|
return PensaSdkReactNative.fetchScanStatuses(scanIds);
|
|
42
43
|
};
|
|
43
|
-
export const fetchOnDemandReports = (scanId, projectId,
|
|
44
|
-
|
|
44
|
+
export const fetchOnDemandReports = (scanId, projectId, reportTypes) => {
|
|
45
|
+
const finalReportTypes = reportTypes && reportTypes.length > 0 ? reportTypes : [PensaReportType.ITEMS_SEEN];
|
|
46
|
+
return PensaSdkReactNative.fetchOnDemandReports(scanId, projectId ?? null, finalReportTypes);
|
|
45
47
|
};
|
|
46
48
|
export const fetchProductImageBase64 = productId => {
|
|
47
49
|
return PensaSdkReactNative.fetchProductImageBase64(productId);
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","PensaSdkReactNative","Proxy","get","Error","initPensa","config","isPensaStarted","showShelfScans","showProductScans","showStoreSearchView","showStoresScreen","showScanArea","scanId","storeId","globalStoreId","showStockingScreen","showStoreChecklist","guid","sectionKey","fetchScanStatuses","scanIds","fetchOnDemandReports","projectId","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","PensaReportType","LINKING_ERROR","select","ios","default","PensaSdkReactNative","Proxy","get","Error","initPensa","config","isPensaStarted","showShelfScans","showProductScans","showStoreSearchView","showStoresScreen","showScanArea","scanId","storeId","globalStoreId","showStockingScreen","showStoreChecklist","guid","sectionKey","fetchScanStatuses","scanIds","fetchOnDemandReports","projectId","reportTypes","finalReportTypes","length","ITEMS_SEEN","fetchProductImageBase64","productId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,SAASC,eAAe,QAAQ,YAAS;AAEzC,MAAMC,aAAa,GACjB,iFAAiF,GACjFF,QAAQ,CAACG,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,mBAAmB,GAAGP,aAAa,CAACO,mBAAmB,GACzDP,aAAa,CAACO,mBAAmB,GACjC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,MAAMQ,SAAS,GAAIC,MAIzB,IAAoB;EACnB,OAAOL,mBAAmB,CAACI,SAAS,CAACC,MAAM,CAAC;AAC9C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAwB;EACpD,OAAON,mBAAmB,CAACM,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAqB;EACjD,OAAOP,mBAAmB,CAACO,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOR,mBAAmB,CAACQ,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAqB;EACtD,OAAOT,mBAAmB,CAACS,mBAAmB,CAAC,CAAC;AAClD,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOV,mBAAmB,CAACU,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,MAAc,EACdC,OAAgB,EAChBC,aAAsB,KACJ;EAClB,OAAOd,mBAAmB,CAACW,YAAY,CACrCC,MAAM,EACNC,OAAO,IAAI,IAAI,EACfC,aAAa,IAAI,IACnB,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAqB;EACrD,OAAOf,mBAAmB,CAACe,kBAAkB,CAAC,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAChCF,aAAqB,EACrBG,IAAa,EACbC,UAAmB,KACD;EAClB,OAAOlB,mBAAmB,CAACgB,kBAAkB,CAC3CF,aAAa,EACbG,IAAI,EACJC,UACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAC5BC,OAAiB,IACc;EAC/B,OAAOpB,mBAAmB,CAACmB,iBAAiB,CAACC,OAAO,CAAC;AACvD,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGA,CAClCT,MAAc,EACdU,SAAkB,EAClBC,WAA+B,KACE;EACjC,MAAMC,gBAAgB,GACpBD,WAAW,IAAIA,WAAW,CAACE,MAAM,GAAG,CAAC,GACjCF,WAAW,GACX,CAAC5B,eAAe,CAAC+B,UAAU,CAAC;EAElC,OAAO1B,mBAAmB,CAACqB,oBAAoB,CAC7CT,MAAM,EACNU,SAAS,IAAI,IAAI,EACjBE,gBACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,uBAAuB,GAAIC,SAAiB,IAAsB;EAC7E,OAAO5B,mBAAmB,CAAC2B,uBAAuB,CAACC,SAAS,CAAC;AAC/D,CAAC;AAED,cAAc,aAAU;AACxB,cAAc,YAAS;AACvB,SAASjC,eAAe,QAAQ,YAAS","ignoreList":[]}
|
package/lib/module/types.js
CHANGED
|
@@ -2,7 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
export let PensaReportType = /*#__PURE__*/function (PensaReportType) {
|
|
4
4
|
PensaReportType["FACINGS_SEEN"] = "FACINGS_SEEN";
|
|
5
|
+
PensaReportType["FULL_FACINGS"] = "FULL_FACINGS";
|
|
6
|
+
PensaReportType["FULL_FACINGS_AND_PRODUCT_POSITIONS"] = "FULL_FACINGS_AND_PRODUCT_POSITIONS";
|
|
5
7
|
PensaReportType["ITEMS_SEEN"] = "ITEMS_SEEN";
|
|
8
|
+
PensaReportType["NEW_PRODUCTS"] = "NEW_PRODUCTS";
|
|
9
|
+
PensaReportType["NEW_PRODUCT_PACKAGING"] = "NEW_PRODUCT_PACKAGING";
|
|
10
|
+
PensaReportType["NO_OOS"] = "NO_OOS";
|
|
11
|
+
PensaReportType["OOS"] = "OOS";
|
|
12
|
+
PensaReportType["PRODUCT_POSITIONS"] = "PRODUCT_POSITIONS";
|
|
13
|
+
PensaReportType["SCAN_FAILED"] = "SCAN_FAILED";
|
|
14
|
+
PensaReportType["SCAN_REJECTED"] = "SCAN_REJECTED";
|
|
15
|
+
PensaReportType["SCAN_SKIPPED"] = "SCAN_SKIPPED";
|
|
6
16
|
return PensaReportType;
|
|
7
17
|
}({});
|
|
8
18
|
//# sourceMappingURL=types.js.map
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PensaReportType"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["PensaReportType"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAsFA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { PensaOnDemandReport, PensaScanStatus
|
|
1
|
+
import type { PensaOnDemandReport, PensaScanStatus } from './types';
|
|
2
|
+
import { PensaReportType } from './types';
|
|
2
3
|
export declare const initPensa: (config: {
|
|
3
4
|
clientId: string;
|
|
4
5
|
clientSecret: string;
|
|
@@ -13,7 +14,7 @@ export declare const showScanArea: (scanId: number, storeId?: number, globalStor
|
|
|
13
14
|
export declare const showStockingScreen: () => Promise<void>;
|
|
14
15
|
export declare const showStoreChecklist: (globalStoreId: string, guid?: string, sectionKey?: string) => Promise<void>;
|
|
15
16
|
export declare const fetchScanStatuses: (scanIds: number[]) => Promise<PensaScanStatus[]>;
|
|
16
|
-
export declare const fetchOnDemandReports: (scanId: number, projectId?: number,
|
|
17
|
+
export declare const fetchOnDemandReports: (scanId: number, projectId?: number, reportTypes?: PensaReportType[]) => Promise<PensaOnDemandReport>;
|
|
17
18
|
export declare const fetchProductImageBase64: (productId: number) => Promise<string>;
|
|
18
19
|
export * from './events';
|
|
19
20
|
export * from './types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmB1C,eAAO,MAAM,SAAS,GAAI,QAAQ;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,KAAG,OAAO,CAAC,IAAI,CAEf,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,OAAO,CAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,IAAI,CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,OAAO,CAAC,IAAI,CAElD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,gBAAgB,MAAM,KACrB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,IAAI,CAEjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,eAAe,EAAE,CAE3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,cAAc,eAAe,EAAE,KAC9B,OAAO,CAAC,mBAAmB,CAW7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAEzE,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -41,6 +41,7 @@ export type PensaOnDemandProduct = {
|
|
|
41
41
|
brandId: number | null;
|
|
42
42
|
category: string | null;
|
|
43
43
|
categoryId: number | null;
|
|
44
|
+
expectedFacings: number | null;
|
|
44
45
|
facings: number | null;
|
|
45
46
|
manufacturer: string | null;
|
|
46
47
|
manufacturerId: number | null;
|
|
@@ -53,7 +54,17 @@ export type PensaOnDemandReportBucket = {
|
|
|
53
54
|
};
|
|
54
55
|
export type PensaOnDemandReport = {
|
|
55
56
|
facingsSeen: PensaOnDemandReportBucket | null;
|
|
57
|
+
fullFacings: PensaOnDemandReportBucket | null;
|
|
58
|
+
fullFacingsAndProductPositions: PensaOnDemandReportBucket | null;
|
|
56
59
|
itemsSeen: PensaOnDemandReportBucket | null;
|
|
60
|
+
newProducts: PensaOnDemandReportBucket | null;
|
|
61
|
+
newProductPackaging: PensaOnDemandReportBucket | null;
|
|
62
|
+
noOos: PensaOnDemandReportBucket | null;
|
|
63
|
+
oos: PensaOnDemandReportBucket | null;
|
|
64
|
+
productPositions: PensaOnDemandReportBucket | null;
|
|
65
|
+
scanFailed: PensaOnDemandReportBucket | null;
|
|
66
|
+
scanRejected: PensaOnDemandReportBucket | null;
|
|
67
|
+
scanSkipped: PensaOnDemandReportBucket | null;
|
|
57
68
|
projectId: number | null;
|
|
58
69
|
projectName: string | null;
|
|
59
70
|
projectReportId: number | null;
|
|
@@ -65,6 +76,16 @@ export type PensaOnDemandReport = {
|
|
|
65
76
|
};
|
|
66
77
|
export declare enum PensaReportType {
|
|
67
78
|
FACINGS_SEEN = "FACINGS_SEEN",
|
|
68
|
-
|
|
79
|
+
FULL_FACINGS = "FULL_FACINGS",
|
|
80
|
+
FULL_FACINGS_AND_PRODUCT_POSITIONS = "FULL_FACINGS_AND_PRODUCT_POSITIONS",
|
|
81
|
+
ITEMS_SEEN = "ITEMS_SEEN",
|
|
82
|
+
NEW_PRODUCTS = "NEW_PRODUCTS",
|
|
83
|
+
NEW_PRODUCT_PACKAGING = "NEW_PRODUCT_PACKAGING",
|
|
84
|
+
NO_OOS = "NO_OOS",
|
|
85
|
+
OOS = "OOS",
|
|
86
|
+
PRODUCT_POSITIONS = "PRODUCT_POSITIONS",
|
|
87
|
+
SCAN_FAILED = "SCAN_FAILED",
|
|
88
|
+
SCAN_REJECTED = "SCAN_REJECTED",
|
|
89
|
+
SCAN_SKIPPED = "SCAN_SKIPPED"
|
|
69
90
|
}
|
|
70
91
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC9C,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pensasystems/pensa-react-native",
|
|
3
|
-
"version": "0.1.0-beta-
|
|
3
|
+
"version": "0.1.0-beta-15",
|
|
4
4
|
"description": "The Pensa Mobile App SDK is a developer toolkit designed to simplify adding Pensa’s capabilities to your mobile applications. It provides pre-built libraries, tools, and APIs to accelerate development and integration, offering streamlined SDK integration, easy initialization, and comprehensive functionality. With the Pensa SDK, you can enhance your app’s features or seamlessly integrate with other services for a cohesive user experience.",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
@@ -68,7 +68,6 @@
|
|
|
68
68
|
"@release-it/conventional-changelog": "^9.0.2",
|
|
69
69
|
"@types/jest": "^29.5.5",
|
|
70
70
|
"@types/react": "^19.0.0",
|
|
71
|
-
"commitlint": "^19.6.1",
|
|
72
71
|
"del-cli": "^5.1.0",
|
|
73
72
|
"eslint": "^9.22.0",
|
|
74
73
|
"eslint-config-prettier": "^10.1.1",
|
package/src/index.tsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NativeModules, Platform } from 'react-native';
|
|
2
|
-
import type { PensaOnDemandReport, PensaScanStatus
|
|
2
|
+
import type { PensaOnDemandReport, PensaScanStatus } from './types';
|
|
3
|
+
import { PensaReportType } from './types';
|
|
3
4
|
|
|
4
5
|
const LINKING_ERROR =
|
|
5
6
|
`The package 'pensa-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` +
|
|
@@ -83,18 +84,21 @@ export const fetchScanStatuses = (
|
|
|
83
84
|
export const fetchOnDemandReports = (
|
|
84
85
|
scanId: number,
|
|
85
86
|
projectId?: number,
|
|
86
|
-
|
|
87
|
+
reportTypes?: PensaReportType[]
|
|
87
88
|
): Promise<PensaOnDemandReport> => {
|
|
89
|
+
const finalReportTypes =
|
|
90
|
+
reportTypes && reportTypes.length > 0
|
|
91
|
+
? reportTypes
|
|
92
|
+
: [PensaReportType.ITEMS_SEEN];
|
|
93
|
+
|
|
88
94
|
return PensaSdkReactNative.fetchOnDemandReports(
|
|
89
95
|
scanId,
|
|
90
96
|
projectId ?? null,
|
|
91
|
-
|
|
97
|
+
finalReportTypes
|
|
92
98
|
);
|
|
93
99
|
};
|
|
94
100
|
|
|
95
|
-
export const fetchProductImageBase64 = (
|
|
96
|
-
productId: number
|
|
97
|
-
): Promise<string> => {
|
|
101
|
+
export const fetchProductImageBase64 = (productId: number): Promise<string> => {
|
|
98
102
|
return PensaSdkReactNative.fetchProductImageBase64(productId);
|
|
99
103
|
};
|
|
100
104
|
|
package/src/types.ts
CHANGED
|
@@ -48,6 +48,7 @@ export type PensaOnDemandProduct = {
|
|
|
48
48
|
brandId: number | null;
|
|
49
49
|
category: string | null;
|
|
50
50
|
categoryId: number | null;
|
|
51
|
+
expectedFacings: number | null;
|
|
51
52
|
facings: number | null;
|
|
52
53
|
manufacturer: string | null;
|
|
53
54
|
manufacturerId: number | null;
|
|
@@ -62,7 +63,17 @@ export type PensaOnDemandReportBucket = {
|
|
|
62
63
|
|
|
63
64
|
export type PensaOnDemandReport = {
|
|
64
65
|
facingsSeen: PensaOnDemandReportBucket | null;
|
|
66
|
+
fullFacings: PensaOnDemandReportBucket | null;
|
|
67
|
+
fullFacingsAndProductPositions: PensaOnDemandReportBucket | null;
|
|
65
68
|
itemsSeen: PensaOnDemandReportBucket | null;
|
|
69
|
+
newProducts: PensaOnDemandReportBucket | null;
|
|
70
|
+
newProductPackaging: PensaOnDemandReportBucket | null;
|
|
71
|
+
noOos: PensaOnDemandReportBucket | null;
|
|
72
|
+
oos: PensaOnDemandReportBucket | null;
|
|
73
|
+
productPositions: PensaOnDemandReportBucket | null;
|
|
74
|
+
scanFailed: PensaOnDemandReportBucket | null;
|
|
75
|
+
scanRejected: PensaOnDemandReportBucket | null;
|
|
76
|
+
scanSkipped: PensaOnDemandReportBucket | null;
|
|
66
77
|
projectId: number | null;
|
|
67
78
|
projectName: string | null;
|
|
68
79
|
projectReportId: number | null;
|
|
@@ -75,5 +86,15 @@ export type PensaOnDemandReport = {
|
|
|
75
86
|
|
|
76
87
|
export enum PensaReportType {
|
|
77
88
|
FACINGS_SEEN = 'FACINGS_SEEN',
|
|
89
|
+
FULL_FACINGS = 'FULL_FACINGS',
|
|
90
|
+
FULL_FACINGS_AND_PRODUCT_POSITIONS = 'FULL_FACINGS_AND_PRODUCT_POSITIONS',
|
|
78
91
|
ITEMS_SEEN = 'ITEMS_SEEN',
|
|
92
|
+
NEW_PRODUCTS = 'NEW_PRODUCTS',
|
|
93
|
+
NEW_PRODUCT_PACKAGING = 'NEW_PRODUCT_PACKAGING',
|
|
94
|
+
NO_OOS = 'NO_OOS',
|
|
95
|
+
OOS = 'OOS',
|
|
96
|
+
PRODUCT_POSITIONS = 'PRODUCT_POSITIONS',
|
|
97
|
+
SCAN_FAILED = 'SCAN_FAILED',
|
|
98
|
+
SCAN_REJECTED = 'SCAN_REJECTED',
|
|
99
|
+
SCAN_SKIPPED = 'SCAN_SKIPPED',
|
|
79
100
|
}
|