Распознавание

Структура

data class PredictionJsonData(
    val sessionId: String? = null, //Идентификатор сессии
    val error: String? = null, //Ошибка
    val items: List<PredictionJsonItemData> = listOf(), //Распознанные элементы
    val weight:Double? = null, //Вес в момент распознавания
    val tare: Double? = null //Тара в момент распознавания
)

data class PredictionJsonItemData(
    val itemCode: Int? = null, //Код товара из устройства распознавания
    val product: Product? = null, //Данные товара из БД, соответствующие коду выше
    val accuracyPercent: Double? = null, //Процент уверенности в правильности распознавания
)

data class Product(
    val id: Int, //ID товара
    val code: Int = 0, //Код товара
    val pluNumber: Int?, //ПЛУ товара
    val name: String, //Название
    val price: Double, //Цена
    val labelTemplate: Int?, //Приоритетный шаблон этикетки
    val barcodeStructure: String?, //Приоритетная структура стрихкода
    val shelfLifeInDays: Int?, //Срок годности в днях
    val tare: Double?, //Тара
    val pieceWeight: Double?, //Вес 1 штуки
    val manufactureDate: String?, //Дата производства. Формат "DD-MM-YY"
    val information: String?, //не используется
    val type: Int?, //не используется
    val barcodePrefixType: String?, //Приоритетный тип префикса штрихкода. NUMBER_SCALES - номер весов, GROUP_CODE - ID категории, PRODUCT_TYPE - тип продукта
    val rostestCode: String?, //Код РОСТЕСТа
    val sellByDate: String?, //Дата срока годности. Формат "DD-MM-YY"
    val category: Int?, //ID категории
    val productType: String, //Тип продукта. WEIGHT - весовой, PIECE - штучный
    val deleted: Boolean, //Признак удалёного элемента
    val message: Int?, //ID сообщения
    val imageNumbers: Int?, //не используется
    val minWeight: Double?, //Минимальный вес для печати этикетки
    val maxWeight: Double?, //Максимальный вес для печати этикетки
    val staticBarcodeType: Int?, //Тип статического штрихкода
    val staticBarcodeValue: String?, //Значение статического штрихкода
    val discountPrice: Double?, //Цена со скидкой
    val labelDiscountTemplate: Int?, //Приоритетный шаблон этикетки, если указана цена со скидкой
    val wrappingType: Int?, //Тип упаковки для ленты Мёбиуса
)

Пример

{
"sessionId": "20230331214519469020000",
"tare": 0,
"weight": 0.336,
"items": [
    {
        "accuracyPercent": 0.72,
        "itemCode": 2
    },
    {
        "accuracyPercent": 0.14,
        "itemCode": 6
    },
    {
        "accuracyPercent": 0.12,
        "itemCode": 4,
        "product": {
                    "barcodeStructure": "NNNNNNNQQQQQC",
                    "code": 4,
                    "deleted": false,
                    "discountPrice": 678.99,
                    "id": 24007,
                    "labelTemplate": 11,
                    "message": 70709,
                    "name": "Мясо свежее ГОВЯДИНА УЗБЕКИСТАН",
                    "pieceWeight": 0,
                    "pluNumber": 70709,
                    "price": 678.99,
                    "productType": "WEIGHT",
                    "shelfLifeInDays": 36,
                    "staticBarcodeType": 8,
                    "tare": 0
                    }
    },
]
}