{
    "id": "mysql147-x-export-schema-guard",
    "title": "Не отправить чужой формат: проверить проекцию цены до создания CSV",
    "columns": [
        "Наблюдение",
        "Результат"
    ],
    "rows": [
        [
            "Заголовок CSV после чтения",
            "sku,price"
        ],
        [
            "Цена CABLE в файле",
            "120.00"
        ],
        [
            "Цена CLAMP в файле",
            "25.50"
        ],
        [
            "Строк товаров в файле",
            2
        ],
        [
            "Переименованное price отвергнуто",
            true
        ],
        [
            "Текстовое price отвергнуто",
            true
        ],
        [
            "CAST сохранил значения, но не тип",
            true
        ],
        [
            "Создан rejected.csv",
            false
        ]
    ],
    "checks": {
        "selected_data": true,
        "metadata_contract": true,
        "csv_readback": true,
        "csv_exact_bytes": true,
        "renamed_refused": true,
        "text_refused": true,
        "same_values_different_type": true,
        "rejected_absent": true,
        "owned_objects_removed": true
    },
    "observations": {
        "valid_metadata": [
            {
                "label": "sku",
                "name": "sku",
                "type": 21,
                "scale": 0
            },
            {
                "label": "price",
                "name": "price",
                "type": 0,
                "scale": 2
            }
        ],
        "selected_rows": [
            {
                "sku": "CABLE",
                "price": "120.00"
            },
            {
                "sku": "CLAMP",
                "price": "25.50"
            }
        ],
        "export_columns": [
            "sku",
            "price"
        ],
        "export_rows": [
            [
                "CABLE",
                "120.00"
            ],
            [
                "CLAMP",
                "25.50"
            ]
        ],
        "export_text": "sku,price\nCABLE,120.00\nCLAMP,25.50\n",
        "rejected_cases": {
            "renamed": {
                "rejected": true,
                "reason": "Ожидались ровно sku,price в этом порядке.",
                "metadata": [
                    {
                        "label": "sku",
                        "name": "sku",
                        "type": 21,
                        "scale": 0
                    },
                    {
                        "label": "renamed_price",
                        "name": "price",
                        "type": 0,
                        "scale": 2
                    }
                ],
                "actual_rows": [
                    {
                        "sku": "CABLE",
                        "renamed_price": "120.00"
                    },
                    {
                        "sku": "CLAMP",
                        "renamed_price": "25.50"
                    }
                ],
                "file_exists": false
            },
            "text": {
                "rejected": true,
                "reason": "Ожидались строковый sku и DECIMAL price с масштабом 2.",
                "metadata": [
                    {
                        "label": "sku",
                        "name": "sku",
                        "type": 21,
                        "scale": 0
                    },
                    {
                        "label": "price",
                        "name": "",
                        "type": 21,
                        "scale": 0
                    }
                ],
                "actual_rows": [
                    {
                        "sku": "CABLE",
                        "price": "120.00"
                    },
                    {
                        "sku": "CLAMP",
                        "price": "25.50"
                    }
                ],
                "file_exists": false
            }
        },
        "rejected_file_exists": false,
        "cast_has_same_values": true
    },
    "runtime": {
        "php": "8.3.35",
        "extension": "8.0.30",
        "server_version": 80413,
        "schema": "php_manual_x139",
        "host": "127.0.0.1",
        "port": 33140
    },
    "owned_objects": [
        {
            "type": "TABLE",
            "name": "mysql147_price_export_accc7ef9d34c"
        }
    ],
    "removed_objects": [
        {
            "type": "TABLE",
            "name": "mysql147_price_export_accc7ef9d34c"
        }
    ]
}
