➜  ai_menu_translator git:(development) ✗ uvicorn app.main:app --reload
INFO:     Will watch for changes in these directories: ['/Users/darkotrpevski/Developer/AppFactory/ai_menu_translator']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [13507] using WatchFiles
{"timestamp": "2025-12-15 13:53:31,021", "level": "INFO", "logger": "app.main", "message": "{\"services\": [\"wine_pairing\", \"translation\", \"insert_menu_items\", \"menu_extraction\"], \"event\": \"configuration_loaded\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:53:31.021212Z\"}", "module": "main", "function": "<module>", "line": 42}
{"timestamp": "2025-12-15 13:53:31,021", "level": "INFO", "logger": "app.main", "message": "{\"event\": \"authentication_initialized\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:53:31.021696Z\"}", "module": "main", "function": "<module>", "line": 57}
{"timestamp": "2025-12-15 13:53:31,021", "level": "INFO", "logger": "app.main", "message": "{\"model\": \"gpt-4o-mini\", \"event\": \"translation_service_initialized\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:53:31.021927Z\"}", "module": "main", "function": "<module>", "line": 68}
{"timestamp": "2025-12-15 13:53:31,022", "level": "INFO", "logger": "app.main", "message": "{\"model\": \"gpt-4o\", \"event\": \"wine_pairing_service_initialized\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:53:31.022025Z\"}", "module": "main", "function": "<module>", "line": 74}
{"timestamp": "2025-12-15 13:53:31,022", "level": "INFO", "logger": "app.main", "message": "{\"model\": \"gpt-4o\", \"event\": \"menu_extraction_service_initialized\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:53:31.022108Z\"}", "module": "main", "function": "<module>", "line": 80}
{"timestamp": "2025-12-15 13:53:31,022", "level": "INFO", "logger": "app.main", "message": "{\"event\": \"insert_menu_items_service_initialized\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:53:31.022176Z\"}", "module": "main", "function": "<module>", "line": 89}
INFO:     Started server process [13510]
INFO:     Waiting for application startup.
{"timestamp": "2025-12-15 13:53:31,027", "level": "INFO", "logger": "app.main", "message": "{\"version\": \"2.0.0\", \"services\": [\"translation\", \"wine_pairing\", \"menu_extraction\", \"insert_menu_items\"], \"translation_model\": \"gpt-4o-mini\", \"wine_pairing_model\": \"gpt-4o\", \"menu_extraction_model\": \"gpt-4o\", \"event\": \"application_startup\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:53:31.027263Z\"}", "module": "main", "function": "startup_event", "line": 116}
INFO:     Application startup complete.
clear
{"timestamp": "2025-12-15 13:54:26,460", "level": "INFO", "logger": "insert_menu_items.routes", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"filename\": \"7.jpg\", \"city\": \"sofia\", \"source_language\": \"sr\", \"target_language\": \"sr\", \"event\": \"insert_menu_items_request\", \"logger\": \"insert_menu_items.routes\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.459918Z\"}", "module": "routes", "function": "insert_menu_items", "line": 52}
{"timestamp": "2025-12-15 13:54:26,460", "level": "INFO", "logger": "insert_menu_items.routes", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"filename\": \"7.jpg\", \"content_type\": \"image/jpeg\", \"event\": \"VALIDATING_REQUEST\", \"logger\": \"insert_menu_items.routes\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.460908Z\"}", "module": "routes", "function": "insert_menu_items", "line": 62}
{"timestamp": "2025-12-15 13:54:26,461", "level": "INFO", "logger": "insert_menu_items.routes", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"filename\": \"7.jpg\", \"size_bytes\": 103331, \"size_kb\": 100.91, \"event\": \"FILE_READ_SUCCESS\", \"logger\": \"insert_menu_items.routes\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.461107Z\"}", "module": "routes", "function": "insert_menu_items", "line": 83}

================================================================================
📥 EQUIVALENT CURL COMMAND FOR UPLOAD REQUEST
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
Filename: 7.jpg
City: sofia

You can run this command manually to test:

curl --location 'http://localhost:8000/menu-items/insert' \
--header 'Authorization: Bearer <YOUR_AUTH_KEY>' \
--form 'file=@"7.jpg"' \
--form 'city="sofia"' \
--form 'token="197b5f7321b52a068923824800958336"' \
--form 'source_language="sr"' \
--form 'target_language="sr"'

================================================================================

{"timestamp": "2025-12-15 13:54:26,462", "level": "INFO", "logger": "insert_menu_items.routes", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"curl_command\": \"curl --location 'http://localhost:8000/menu-items/insert' \\\\\\n--header 'Authorization: Bearer <YOUR_AUTH_KEY>' \\\\\\n--form 'file=@\\\"7.jpg\\\"' \\\\\\n--form 'city=\\\"sofia\\\"' \\\\\\n--form 'token=\\\"197b5f7321b52a068923824800958336\\\"' \\\\\\n--form 'source_language=\\\"sr\\\"' \\\\\\n--form 'target_language=\\\"sr\\\"'\", \"curl_log_file\": \"logs/curl_commands.log\", \"event\": \"UPLOAD_CURL_COMMAND\", \"logger\": \"insert_menu_items.routes\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.462185Z\"}", "module": "routes", "function": "insert_menu_items", "line": 147}
{"timestamp": "2025-12-15 13:54:26,462", "level": "INFO", "logger": "insert_menu_items.routes", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"city\": \"sofia\", \"source_language\": \"sr\", \"target_language\": \"sr\", \"event\": \"SCHEDULING_BACKGROUND_TASK\", \"logger\": \"insert_menu_items.routes\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.462303Z\"}", "module": "routes", "function": "insert_menu_items", "line": 154}
{"timestamp": "2025-12-15 13:54:26,462", "level": "INFO", "logger": "insert_menu_items.routes", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"city\": \"sofia\", \"filename\": \"7.jpg\", \"background_task_scheduled\": true, \"event\": \"REQUEST_ACCEPTED_202\", \"logger\": \"insert_menu_items.routes\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.462425Z\"}", "module": "routes", "function": "insert_menu_items", "line": 174}
INFO:     127.0.0.1:52501 - "POST /menu-items/insert HTTP/1.1" 202 Accepted
{"timestamp": "2025-12-15 13:54:26,462", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"city\": \"sofia\", \"filename\": \"7.jpg\", \"source_language\": \"sr\", \"target_language\": \"sr\", \"event\": \"menu_upload_processing_started\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.462956Z\"}", "module": "service", "function": "process_menu_upload", "line": 51}

🔵==============================================================================🔵
📥 BACKGROUND TASK STARTED - MENU UPLOAD PROCESSING
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
City: sofia
Filename: 7.jpg
Source Language: sr
Target Language: sr
Image Size: 103331 bytes (100.91 KB)
MIME Type: image/jpeg
🔵==============================================================================🔵

{"timestamp": "2025-12-15 13:54:26,463", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"image_size_bytes\": 103331, \"mime_type\": \"image/jpeg\", \"event\": \"STEP_1_START: Calling menu extraction service\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.463167Z\"}", "module": "service", "function": "process_menu_upload", "line": 75}
{"timestamp": "2025-12-15 13:54:26,463", "level": "INFO", "logger": "menu_extraction.service", "message": "{\"image_count\": 1, \"batches_count\": 1, \"source_language\": \"sr\", \"target_language\": \"sr\", \"event\": \"menu_extraction_started\", \"logger\": \"menu_extraction.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.463358Z\"}", "module": "service", "function": "extract_menu", "line": 53}
{"timestamp": "2025-12-15 13:54:26,463", "level": "INFO", "logger": "menu_extraction.service", "message": "{\"batch_index\": 1, \"total_batches\": 1, \"batch_size\": 1, \"event\": \"menu_extraction_batch_started\", \"logger\": \"menu_extraction.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.463590Z\"}", "module": "service", "function": "_process_batch", "line": 112}
{"timestamp": "2025-12-15 13:54:26,493", "level": "INFO", "logger": "openai_client", "message": "{\"service\": \"menu_extraction\", \"operation_id\": \"menu_extraction\", \"model\": \"gpt-4o\", \"event\": \"openai_request\", \"logger\": \"openai_client\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:26.493009Z\"}", "module": "openai_client", "function": "json_completion", "line": 47}
{"timestamp": "2025-12-15 13:54:57,137", "level": "INFO", "logger": "httpx", "message": "HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"", "module": "_client", "function": "_send_single_request", "line": 1786}
{"timestamp": "2025-12-15 13:54:57,145", "level": "INFO", "logger": "openai_client", "message": "{\"service\": \"menu_extraction\", \"operation_id\": \"menu_extraction\", \"input_tokens\": 3331, \"output_tokens\": 813, \"total_tokens\": 4144, \"model\": \"gpt-4o-2024-08-06\", \"cost\": 0.016457, \"event\": \"openai_response\", \"logger\": \"openai_client\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.145871Z\"}", "module": "openai_client", "function": "json_completion", "line": 94}
{"timestamp": "2025-12-15 13:54:57,146", "level": "INFO", "logger": "menu_extraction.service", "message": "{\"batch_index\": 1, \"total_batches\": 1, \"categories_count\": 2, \"event\": \"menu_extraction_batch_completed\", \"logger\": \"menu_extraction.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.146410Z\"}", "module": "service", "function": "_process_batch", "line": 153}
{"timestamp": "2025-12-15 13:54:57,147", "level": "INFO", "logger": "menu_extraction.service", "message": "{\"image_count\": 1, \"batches_count\": 1, \"categories_count\": 2, \"source_language\": \"sr\", \"target_language\": \"sr\", \"event\": \"menu_extraction_completed\", \"logger\": \"menu_extraction.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.147196Z\"}", "module": "service", "function": "extract_menu", "line": 85}
{"timestamp": "2025-12-15 13:54:57,147", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"response_data\": {\"menu\": {\"restaurant_name\": \"\\u041a\\u043e\\u0434 \\u041c\\u0438\\u0440\\u0430\", \"categories\": [{\"name\": \"\\u0412\\u043e\\u0434\\u0435\", \"description\": \"\\u0412\\u043e\\u0434\\u0430\", \"description_uk\": \"Water\", \"items\": [{\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"price\": \"200\", \"serving_size\": \"0,25 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"price\": \"400\", \"serving_size\": \"\\u043b\\u0438\\u0442\\u0430\\u0440\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"price\": \"400\", \"serving_size\": \"\\u043b\\u0438\\u0442\\u0430\\u0440\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"price\": \"120\", \"serving_size\": \"\\u0447\\u0430\\u0448\\u0430 0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"price\": \"200\", \"serving_size\": \"0,33 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"price\": \"200\", \"serving_size\": \"0,25 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"price\": \"200\", \"serving_size\": \"0,33 \\u043b\", \"measure\": 1, \"notes\": null}]}, {\"name\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description_uk\": \"Non-carbonated drinks\", \"items\": [{\"name\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Nestea ice tea peach\", \"price\": \"250\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"description\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\", \"description_uk\": \"Cedevita juice\", \"price\": \"250\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description_uk\": \"Golf apple\", \"price\": \"250\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description_uk\": \"Golf strawberry\", \"price\": \"250\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description_uk\": \"Golf pineapple\", \"price\": \"250\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description_uk\": \"Golf blueberry\", \"price\": \"250\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Golf peach\", \"price\": \"250\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}, {\"name\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description_uk\": \"Lemonade\", \"price\": \"280\", \"serving_size\": \"0,2 \\u043b\", \"measure\": 1, \"notes\": null}]}]}, \"source_language\": \"sr\", \"target_language\": \"sr\", \"model\": \"gpt-4o\", \"image_count\": 1}, \"event\": \"MENU_EXTRACTION_RESPONSE\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.147508Z\"}", "module": "service", "function": "process_menu_upload", "line": 97}

================================================================================
MENU EXTRACTION SERVICE RESPONSE
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
Restaurant: Код Мира
Categories: 2
Model: gpt-4o

Full Response Data:
{
  "menu": {
    "restaurant_name": "Код Мира",
    "categories": [
      {
        "name": "Воде",
        "description": "Вода",
        "description_uk": "Water",
        "items": [
          {
            "name": "Аква Вива не газирана",
            "description": "Аква Вива вода",
            "description_uk": "Aqua Viva water",
            "price": "200",
            "serving_size": "0,25 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Књаз Милош газирана",
            "description": "Књаз Милош сода вода",
            "description_uk": "Knjaz Milos soda water",
            "price": "400",
            "serving_size": "литар",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Аква Вива не газирана",
            "description": "Аква Вива вода",
            "description_uk": "Aqua Viva water",
            "price": "400",
            "serving_size": "литар",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Књаз Милош газирана",
            "description": "Књаз Милош сода вода",
            "description_uk": "Knjaz Milos soda water",
            "price": "120",
            "serving_size": "чаша 0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Књаз Милош газирана",
            "description": "Књаз Милош сода вода",
            "description_uk": "Knjaz Milos soda water",
            "price": "200",
            "serving_size": "0,33 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Књаз Милош газирана",
            "description": "Књаз Милош сода вода",
            "description_uk": "Knjaz Milos soda water",
            "price": "200",
            "serving_size": "0,25 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Аква Вива не газирана",
            "description": "Аква Вива вода",
            "description_uk": "Aqua Viva water",
            "price": "200",
            "serving_size": "0,33 л",
            "measure": 1,
            "notes": null
          }
        ]
      },
      {
        "name": "Негазирана пића",
        "description": "Негазирана пића",
        "description_uk": "Non-carbonated drinks",
        "items": [
          {
            "name": "Nestea ледени чај бресква",
            "description": "Nestea ледени чај бресква",
            "description_uk": "Nestea ice tea peach",
            "price": "250",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Сокови Цедевита кесица",
            "description": "Сокови Цедевита",
            "description_uk": "Cedevita juice",
            "price": "250",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Голф јабука",
            "description": "Голф јабука",
            "description_uk": "Golf apple",
            "price": "250",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Голф јагода",
            "description": "Голф јагода",
            "description_uk": "Golf strawberry",
            "price": "250",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Голф ананас",
            "description": "Голф ананас",
            "description_uk": "Golf pineapple",
            "price": "250",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Голф боровница",
            "description": "Голф боровница",
            "description_uk": "Golf blueberry",
            "price": "250",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Голф бресква",
            "description": "Голф бресква",
            "description_uk": "Golf peach",
            "price": "250",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          },
          {
            "name": "Лимунада",
            "description": "Лимунада",
            "description_uk": "Lemonade",
            "price": "280",
            "serving_size": "0,2 л",
            "measure": 1,
            "notes": null
          }
        ]
      }
    ]
  },
  "source_language": "sr",
  "target_language": "sr",
  "model": "gpt-4o",
  "image_count": 1
}
================================================================================

{"timestamp": "2025-12-15 13:54:57,149", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"categories_count\": 2, \"restaurant_name\": \"\\u041a\\u043e\\u0434 \\u041c\\u0438\\u0440\\u0430\", \"model_used\": \"gpt-4o\", \"event\": \"STEP_1_COMPLETED: Menu extraction successful\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.149350Z\"}", "module": "service", "function": "process_menu_upload", "line": 116}
{"timestamp": "2025-12-15 13:54:57,149", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"categories_to_transform\": 2, \"event\": \"STEP_2_START: Transforming menu data using adapter\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.149615Z\"}", "module": "service", "function": "process_menu_upload", "line": 133}
{"timestamp": "2025-12-15 13:54:57,149", "level": "INFO", "logger": "insert_menu_items.adapter", "message": "{\"categories_count\": 2, \"city\": \"sofia\", \"event\": \"adapter_transform_started\", \"logger\": \"insert_menu_items.adapter\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.149904Z\"}", "module": "adapter", "function": "transform", "line": 30}
{"timestamp": "2025-12-15 13:54:57,151", "level": "INFO", "logger": "insert_menu_items.adapter", "message": "{\"categories_count\": 2, \"city\": \"sofia\", \"event\": \"adapter_transform_completed\", \"logger\": \"insert_menu_items.adapter\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.151161Z\"}", "module": "adapter", "function": "transform", "line": 48}
{"timestamp": "2025-12-15 13:54:57,151", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"payload\": {\"city\": \"sofia\", \"token\": \"197b5f7321b52a068923824800958336\", \"menu\": [{\"name\": \"\\u0412\\u043e\\u0434\\u0435\", \"name_uk\": \"\\u0412\\u043e\\u0434\\u0435\", \"description\": \"\\u0412\\u043e\\u0434\\u0430\", \"description_uk\": \"Water\", \"items\": [{\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 120.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}]}, {\"name\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"name_uk\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description_uk\": \"Non-carbonated drinks\", \"items\": [{\"name\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Nestea ice tea peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"description\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\", \"description_uk\": \"Cedevita juice\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description_uk\": \"Golf apple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description_uk\": \"Golf strawberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description_uk\": \"Golf pineapple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description_uk\": \"Golf blueberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Golf peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"name_uk\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description_uk\": \"Lemonade\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 280.0}]}]}]}, \"event\": \"TRANSFORMED_PAYLOAD_FOR_CREATE_MENU\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.151386Z\"}", "module": "service", "function": "process_menu_upload", "line": 150}

================================================================================
PAYLOAD BEING SENT TO createMenu.php
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
City: sofia
URL: https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php
Categories: 2
Total Items: 15

Full Payload:
{
  "city": "sofia",
  "token": "197b5f7321b52a068923824800958336",
  "menu": [
    {
      "name": "Воде",
      "name_uk": "Воде",
      "description": "Вода",
      "description_uk": "Water",
      "items": [
        {
          "name": "Аква Вива не газирана",
          "name_uk": "Аква Вива не газирана",
          "description": "Аква Вива вода",
          "description_uk": "Aqua Viva water",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 200.0
            }
          ]
        },
        {
          "name": "Књаз Милош газирана",
          "name_uk": "Књаз Милош газирана",
          "description": "Књаз Милош сода вода",
          "description_uk": "Knjaz Milos soda water",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 100,
              "cena": 400.0
            }
          ]
        },
        {
          "name": "Аква Вива не газирана",
          "name_uk": "Аква Вива не газирана",
          "description": "Аква Вива вода",
          "description_uk": "Aqua Viva water",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 100,
              "cena": 400.0
            }
          ]
        },
        {
          "name": "Књаз Милош газирана",
          "name_uk": "Књаз Милош газирана",
          "description": "Књаз Милош сода вода",
          "description_uk": "Knjaz Milos soda water",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 120.0
            }
          ]
        },
        {
          "name": "Књаз Милош газирана",
          "name_uk": "Књаз Милош газирана",
          "description": "Књаз Милош сода вода",
          "description_uk": "Knjaz Milos soda water",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 200.0
            }
          ]
        },
        {
          "name": "Књаз Милош газирана",
          "name_uk": "Књаз Милош газирана",
          "description": "Књаз Милош сода вода",
          "description_uk": "Knjaz Milos soda water",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 200.0
            }
          ]
        },
        {
          "name": "Аква Вива не газирана",
          "name_uk": "Аква Вива не газирана",
          "description": "Аква Вива вода",
          "description_uk": "Aqua Viva water",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 200.0
            }
          ]
        }
      ]
    },
    {
      "name": "Негазирана пића",
      "name_uk": "Негазирана пића",
      "description": "Негазирана пића",
      "description_uk": "Non-carbonated drinks",
      "items": [
        {
          "name": "Nestea ледени чај бресква",
          "name_uk": "Nestea ледени чај бресква",
          "description": "Nestea ледени чај бресква",
          "description_uk": "Nestea ice tea peach",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 250.0
            }
          ]
        },
        {
          "name": "Сокови Цедевита кесица",
          "name_uk": "Сокови Цедевита кесица",
          "description": "Сокови Цедевита",
          "description_uk": "Cedevita juice",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 250.0
            }
          ]
        },
        {
          "name": "Голф јабука",
          "name_uk": "Голф јабука",
          "description": "Голф јабука",
          "description_uk": "Golf apple",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 250.0
            }
          ]
        },
        {
          "name": "Голф јагода",
          "name_uk": "Голф јагода",
          "description": "Голф јагода",
          "description_uk": "Golf strawberry",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 250.0
            }
          ]
        },
        {
          "name": "Голф ананас",
          "name_uk": "Голф ананас",
          "description": "Голф ананас",
          "description_uk": "Golf pineapple",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 250.0
            }
          ]
        },
        {
          "name": "Голф боровница",
          "name_uk": "Голф боровница",
          "description": "Голф боровница",
          "description_uk": "Golf blueberry",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 250.0
            }
          ]
        },
        {
          "name": "Голф бресква",
          "name_uk": "Голф бресква",
          "description": "Голф бресква",
          "description_uk": "Golf peach",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 250.0
            }
          ]
        },
        {
          "name": "Лимунада",
          "name_uk": "Лимунада",
          "description": "Лимунада",
          "description_uk": "Lemonade",
          "measure": 1,
          "items": [
            {
              "name": "",
              "gramaj": 0,
              "cena": 280.0
            }
          ]
        }
      ]
    }
  ]
}
================================================================================

{"timestamp": "2025-12-15 13:54:57,155", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"categories_count\": 2, \"total_items\": 15, \"target_city\": \"sofia\", \"event\": \"STEP_2_COMPLETED: Menu data transformation successful\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.155819Z\"}", "module": "service", "function": "process_menu_upload", "line": 170}
{"timestamp": "2025-12-15 13:54:57,156", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"city\": \"sofia\", \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"categories_count\": 2, \"total_items\": 15, \"event\": \"STEP_3_START: Calling external createMenu.php API\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.156040Z\"}", "module": "service", "function": "process_menu_upload", "line": 187}
{"timestamp": "2025-12-15 13:54:57,166", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 1, \"max_retries\": 3, \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"payload_size\": 3349, \"categories_count\": 2, \"city\": \"sofia\", \"event\": \"API_REQUEST_ATTEMPT\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.166564Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 363}
{"timestamp": "2025-12-15 13:54:57,167", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 1, \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"full_payload\": {\"city\": \"sofia\", \"token\": \"197b5f7321b52a068923824800958336\", \"menu\": [{\"name\": \"\\u0412\\u043e\\u0434\\u0435\", \"name_uk\": \"\\u0412\\u043e\\u0434\\u0435\", \"description\": \"\\u0412\\u043e\\u0434\\u0430\", \"description_uk\": \"Water\", \"items\": [{\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 120.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}]}, {\"name\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"name_uk\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description_uk\": \"Non-carbonated drinks\", \"items\": [{\"name\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Nestea ice tea peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"description\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\", \"description_uk\": \"Cedevita juice\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description_uk\": \"Golf apple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description_uk\": \"Golf strawberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description_uk\": \"Golf pineapple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description_uk\": \"Golf blueberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Golf peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"name_uk\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description_uk\": \"Lemonade\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 280.0}]}]}]}, \"event\": \"CREATE_MENU_REQUEST_PAYLOAD\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.166900Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 375}

================================================================================
EQUIVALENT CURL COMMAND FOR createMenu.php
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
Attempt: 1/3

You can run this command manually to test:

curl --location 'https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php' \
--header 'Content-Type: application/json' \
--data '{"city": "sofia", "token": "197b5f7321b52a068923824800958336", "menu": [{"name": "Воде", "name_uk": "Воде", "description": "Вода", "description_uk": "Water", "items": [{"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 100, "cena": 400.0}]}, {"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 100, "cena": 400.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 120.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}]}, {"name": "Негазирана пића", "name_uk": "Негазирана пића", "description": "Негазирана пића", "description_uk": "Non-carbonated drinks", "items": [{"name": "Nestea ледени чај бресква", "name_uk": "Nestea ледени чај бресква", "description": "Nestea ледени чај бресква", "description_uk": "Nestea ice tea peach", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Сокови Цедевита кесица", "name_uk": "Сокови Цедевита кесица", "description": "Сокови Цедевита", "description_uk": "Cedevita juice", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф јабука", "name_uk": "Голф јабука", "description": "Голф јабука", "description_uk": "Golf apple", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф јагода", "name_uk": "Голф јагода", "description": "Голф јагода", "description_uk": "Golf strawberry", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф ананас", "name_uk": "Голф ананас", "description": "Голф ананас", "description_uk": "Golf pineapple", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф боровница", "name_uk": "Голф боровница", "description": "Голф боровница", "description_uk": "Golf blueberry", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф бресква", "name_uk": "Голф бресква", "description": "Голф бресква", "description_uk": "Golf peach", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Лимунада", "name_uk": "Лимунада", "description": "Лимунада", "description_uk": "Lemonade", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 280.0}]}]}]}'

================================================================================

{"timestamp": "2025-12-15 13:54:57,168", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"curl_command\": \"curl --location 'https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php' \\\\\\n--header 'Content-Type: application/json' \\\\\\n--data '{\\\"city\\\": \\\"sofia\\\", \\\"token\\\": \\\"197b5f7321b52a068923824800958336\\\", \\\"menu\\\": [{\\\"name\\\": \\\"\\u0412\\u043e\\u0434\\u0435\\\", \\\"name_uk\\\": \\\"\\u0412\\u043e\\u0434\\u0435\\\", \\\"description\\\": \\\"\\u0412\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Water\\\", \\\"items\\\": [{\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 100, \\\"cena\\\": 400.0}]}, {\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 100, \\\"cena\\\": 400.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 120.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}]}, {\\\"name\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"name_uk\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"description\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"description_uk\\\": \\\"Non-carbonated drinks\\\", \\\"items\\\": [{\\\"name\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"name_uk\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description_uk\\\": \\\"Nestea ice tea peach\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\\\", \\\"name_uk\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\\\", \\\"description\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\\\", \\\"description_uk\\\": \\\"Cedevita juice\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"description_uk\\\": \\\"Golf apple\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Golf strawberry\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"description_uk\\\": \\\"Golf pineapple\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"description_uk\\\": \\\"Golf blueberry\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description_uk\\\": \\\"Golf peach\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"name_uk\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"description\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Lemonade\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 280.0}]}]}]}'\", \"curl_log_file\": \"logs/curl_commands.log\", \"event\": \"CREATE_MENU_CURL_COMMAND\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:54:57.168418Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 421}

================================================================================
❌ RESPONSE FROM createMenu.php - NETWORK ERROR
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
Attempt: 1/3
Status: ❌ FAILED
Error Type: ReadTimeout

Error Details:

================================================================================

{"timestamp": "2025-12-15 13:55:27,260", "level": "ERROR", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 1, \"max_retries\": 3, \"error\": \"\", \"error_type\": \"ReadTimeout\", \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"event\": \"API_REQUEST_NETWORK_ERROR\", \"logger\": \"insert_menu_items.service\", \"level\": \"error\", \"timestamp\": \"2025-12-15T12:55:27.259997Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 537}
{"timestamp": "2025-12-15 13:55:27,262", "level": "WARNING", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"current_attempt\": 1, \"next_attempt\": 2, \"wait_seconds\": 2, \"event\": \"API_REQUEST_RETRY_SCHEDULED\", \"logger\": \"insert_menu_items.service\", \"level\": \"warning\", \"timestamp\": \"2025-12-15T12:55:27.262045Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 562}
{"timestamp": "2025-12-15 13:55:29,263", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 2, \"max_retries\": 3, \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"payload_size\": 3349, \"categories_count\": 2, \"city\": \"sofia\", \"event\": \"API_REQUEST_ATTEMPT\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:55:29.263491Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 363}
{"timestamp": "2025-12-15 13:55:29,264", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 2, \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"full_payload\": {\"city\": \"sofia\", \"token\": \"197b5f7321b52a068923824800958336\", \"menu\": [{\"name\": \"\\u0412\\u043e\\u0434\\u0435\", \"name_uk\": \"\\u0412\\u043e\\u0434\\u0435\", \"description\": \"\\u0412\\u043e\\u0434\\u0430\", \"description_uk\": \"Water\", \"items\": [{\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 120.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}]}, {\"name\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"name_uk\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description_uk\": \"Non-carbonated drinks\", \"items\": [{\"name\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Nestea ice tea peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"description\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\", \"description_uk\": \"Cedevita juice\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description_uk\": \"Golf apple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description_uk\": \"Golf strawberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description_uk\": \"Golf pineapple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description_uk\": \"Golf blueberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Golf peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"name_uk\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description_uk\": \"Lemonade\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 280.0}]}]}]}, \"event\": \"CREATE_MENU_REQUEST_PAYLOAD\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:55:29.264457Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 375}

================================================================================
EQUIVALENT CURL COMMAND FOR createMenu.php
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
Attempt: 2/3

You can run this command manually to test:

curl --location 'https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php' \
--header 'Content-Type: application/json' \
--data '{"city": "sofia", "token": "197b5f7321b52a068923824800958336", "menu": [{"name": "Воде", "name_uk": "Воде", "description": "Вода", "description_uk": "Water", "items": [{"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 100, "cena": 400.0}]}, {"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 100, "cena": 400.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 120.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}]}, {"name": "Негазирана пића", "name_uk": "Негазирана пића", "description": "Негазирана пића", "description_uk": "Non-carbonated drinks", "items": [{"name": "Nestea ледени чај бресква", "name_uk": "Nestea ледени чај бресква", "description": "Nestea ледени чај бресква", "description_uk": "Nestea ice tea peach", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Сокови Цедевита кесица", "name_uk": "Сокови Цедевита кесица", "description": "Сокови Цедевита", "description_uk": "Cedevita juice", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф јабука", "name_uk": "Голф јабука", "description": "Голф јабука", "description_uk": "Golf apple", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф јагода", "name_uk": "Голф јагода", "description": "Голф јагода", "description_uk": "Golf strawberry", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф ананас", "name_uk": "Голф ананас", "description": "Голф ананас", "description_uk": "Golf pineapple", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф боровница", "name_uk": "Голф боровница", "description": "Голф боровница", "description_uk": "Golf blueberry", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф бресква", "name_uk": "Голф бресква", "description": "Голф бресква", "description_uk": "Golf peach", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Лимунада", "name_uk": "Лимунада", "description": "Лимунада", "description_uk": "Lemonade", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 280.0}]}]}]}'

================================================================================

{"timestamp": "2025-12-15 13:55:29,268", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"curl_command\": \"curl --location 'https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php' \\\\\\n--header 'Content-Type: application/json' \\\\\\n--data '{\\\"city\\\": \\\"sofia\\\", \\\"token\\\": \\\"197b5f7321b52a068923824800958336\\\", \\\"menu\\\": [{\\\"name\\\": \\\"\\u0412\\u043e\\u0434\\u0435\\\", \\\"name_uk\\\": \\\"\\u0412\\u043e\\u0434\\u0435\\\", \\\"description\\\": \\\"\\u0412\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Water\\\", \\\"items\\\": [{\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 100, \\\"cena\\\": 400.0}]}, {\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 100, \\\"cena\\\": 400.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 120.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}]}, {\\\"name\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"name_uk\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"description\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"description_uk\\\": \\\"Non-carbonated drinks\\\", \\\"items\\\": [{\\\"name\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"name_uk\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description_uk\\\": \\\"Nestea ice tea peach\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\\\", \\\"name_uk\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\\\", \\\"description\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\\\", \\\"description_uk\\\": \\\"Cedevita juice\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"description_uk\\\": \\\"Golf apple\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Golf strawberry\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"description_uk\\\": \\\"Golf pineapple\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"description_uk\\\": \\\"Golf blueberry\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description_uk\\\": \\\"Golf peach\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"name_uk\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"description\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Lemonade\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 280.0}]}]}]}'\", \"curl_log_file\": \"logs/curl_commands.log\", \"event\": \"CREATE_MENU_CURL_COMMAND\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:55:29.268097Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 421}

================================================================================
❌ RESPONSE FROM createMenu.php - NETWORK ERROR
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
Attempt: 2/3
Status: ❌ FAILED
Error Type: ReadTimeout

Error Details:

================================================================================

{"timestamp": "2025-12-15 13:55:59,354", "level": "ERROR", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 2, \"max_retries\": 3, \"error\": \"\", \"error_type\": \"ReadTimeout\", \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"event\": \"API_REQUEST_NETWORK_ERROR\", \"logger\": \"insert_menu_items.service\", \"level\": \"error\", \"timestamp\": \"2025-12-15T12:55:59.354471Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 537}
{"timestamp": "2025-12-15 13:55:59,356", "level": "WARNING", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"current_attempt\": 2, \"next_attempt\": 3, \"wait_seconds\": 4, \"event\": \"API_REQUEST_RETRY_SCHEDULED\", \"logger\": \"insert_menu_items.service\", \"level\": \"warning\", \"timestamp\": \"2025-12-15T12:55:59.355957Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 562}
{"timestamp": "2025-12-15 13:56:03,359", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 3, \"max_retries\": 3, \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"payload_size\": 3349, \"categories_count\": 2, \"city\": \"sofia\", \"event\": \"API_REQUEST_ATTEMPT\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:56:03.359624Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 363}
{"timestamp": "2025-12-15 13:56:03,361", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"attempt\": 3, \"url\": \"https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php\", \"full_payload\": {\"city\": \"sofia\", \"token\": \"197b5f7321b52a068923824800958336\", \"menu\": [{\"name\": \"\\u0412\\u043e\\u0434\\u0435\", \"name_uk\": \"\\u0412\\u043e\\u0434\\u0435\", \"description\": \"\\u0412\\u043e\\u0434\\u0430\", \"description_uk\": \"Water\", \"items\": [{\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 100, \"cena\": 400.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 120.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Knjaz Milos soda water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}, {\"name\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"name_uk\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\", \"description\": \"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\", \"description_uk\": \"Aqua Viva water\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 200.0}]}]}, {\"name\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"name_uk\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description\": \"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\", \"description_uk\": \"Non-carbonated drinks\", \"items\": [{\"name\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Nestea ice tea peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\", \"description\": \"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\", \"description_uk\": \"Cedevita juice\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\", \"description_uk\": \"Golf apple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\", \"description_uk\": \"Golf strawberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\", \"description_uk\": \"Golf pineapple\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\", \"description_uk\": \"Golf blueberry\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"name_uk\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description\": \"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\", \"description_uk\": \"Golf peach\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 250.0}]}, {\"name\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"name_uk\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description\": \"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\", \"description_uk\": \"Lemonade\", \"measure\": 1, \"items\": [{\"name\": \"\", \"gramaj\": 0, \"cena\": 280.0}]}]}]}, \"event\": \"CREATE_MENU_REQUEST_PAYLOAD\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:56:03.360827Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 375}

================================================================================
EQUIVALENT CURL COMMAND FOR createMenu.php
================================================================================
Request ID: 3a5b13cb-3662-46ae-b358-7a084d9f2ca8
Attempt: 3/3

You can run this command manually to test:

curl --location 'https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php' \
--header 'Content-Type: application/json' \
--data '{"city": "sofia", "token": "197b5f7321b52a068923824800958336", "menu": [{"name": "Воде", "name_uk": "Воде", "description": "Вода", "description_uk": "Water", "items": [{"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 100, "cena": 400.0}]}, {"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 100, "cena": 400.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 120.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Књаз Милош газирана", "name_uk": "Књаз Милош газирана", "description": "Књаз Милош сода вода", "description_uk": "Knjaz Milos soda water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}, {"name": "Аква Вива не газирана", "name_uk": "Аква Вива не газирана", "description": "Аква Вива вода", "description_uk": "Aqua Viva water", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 200.0}]}]}, {"name": "Негазирана пића", "name_uk": "Негазирана пића", "description": "Негазирана пића", "description_uk": "Non-carbonated drinks", "items": [{"name": "Nestea ледени чај бресква", "name_uk": "Nestea ледени чај бресква", "description": "Nestea ледени чај бресква", "description_uk": "Nestea ice tea peach", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Сокови Цедевита кесица", "name_uk": "Сокови Цедевита кесица", "description": "Сокови Цедевита", "description_uk": "Cedevita juice", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф јабука", "name_uk": "Голф јабука", "description": "Голф јабука", "description_uk": "Golf apple", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф јагода", "name_uk": "Голф јагода", "description": "Голф јагода", "description_uk": "Golf strawberry", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф ананас", "name_uk": "Голф ананас", "description": "Голф ананас", "description_uk": "Golf pineapple", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф боровница", "name_uk": "Голф боровница", "description": "Голф боровница", "description_uk": "Golf blueberry", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Голф бресква", "name_uk": "Голф бресква", "description": "Голф бресква", "description_uk": "Golf peach", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 250.0}]}, {"name": "Лимунада", "name_uk": "Лимунада", "description": "Лимунада", "description_uk": "Lemonade", "measure": 1, "items": [{"name": "", "gramaj": 0, "cena": 280.0}]}]}]}'

================================================================================

{"timestamp": "2025-12-15 13:56:03,364", "level": "INFO", "logger": "insert_menu_items.service", "message": "{\"request_id\": \"3a5b13cb-3662-46ae-b358-7a084d9f2ca8\", \"curl_command\": \"curl --location 'https://zavedenia.com/apps/orderapprestaurant/api/createMenu.php' \\\\\\n--header 'Content-Type: application/json' \\\\\\n--data '{\\\"city\\\": \\\"sofia\\\", \\\"token\\\": \\\"197b5f7321b52a068923824800958336\\\", \\\"menu\\\": [{\\\"name\\\": \\\"\\u0412\\u043e\\u0434\\u0435\\\", \\\"name_uk\\\": \\\"\\u0412\\u043e\\u0434\\u0435\\\", \\\"description\\\": \\\"\\u0412\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Water\\\", \\\"items\\\": [{\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 100, \\\"cena\\\": 400.0}]}, {\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 100, \\\"cena\\\": 400.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 120.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u041a\\u045a\\u0430\\u0437 \\u041c\\u0438\\u043b\\u043e\\u0448 \\u0441\\u043e\\u0434\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Knjaz Milos soda water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}, {\\\"name\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"name_uk\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u043d\\u0435 \\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430\\\", \\\"description\\\": \\\"\\u0410\\u043a\\u0432\\u0430 \\u0412\\u0438\\u0432\\u0430 \\u0432\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Aqua Viva water\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 200.0}]}]}, {\\\"name\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"name_uk\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"description\\\": \\\"\\u041d\\u0435\\u0433\\u0430\\u0437\\u0438\\u0440\\u0430\\u043d\\u0430 \\u043f\\u0438\\u045b\\u0430\\\", \\\"description_uk\\\": \\\"Non-carbonated drinks\\\", \\\"items\\\": [{\\\"name\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"name_uk\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description\\\": \\\"Nestea \\u043b\\u0435\\u0434\\u0435\\u043d\\u0438 \\u0447\\u0430\\u0458 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description_uk\\\": \\\"Nestea ice tea peach\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\\\", \\\"name_uk\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430 \\u043a\\u0435\\u0441\\u0438\\u0446\\u0430\\\", \\\"description\\\": \\\"\\u0421\\u043e\\u043a\\u043e\\u0432\\u0438 \\u0426\\u0435\\u0434\\u0435\\u0432\\u0438\\u0442\\u0430\\\", \\\"description_uk\\\": \\\"Cedevita juice\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0431\\u0443\\u043a\\u0430\\\", \\\"description_uk\\\": \\\"Golf apple\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0458\\u0430\\u0433\\u043e\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Golf strawberry\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0430\\u043d\\u0430\\u043d\\u0430\\u0441\\\", \\\"description_uk\\\": \\\"Golf pineapple\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u043e\\u0440\\u043e\\u0432\\u043d\\u0438\\u0446\\u0430\\\", \\\"description_uk\\\": \\\"Golf blueberry\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"name_uk\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description\\\": \\\"\\u0413\\u043e\\u043b\\u0444 \\u0431\\u0440\\u0435\\u0441\\u043a\\u0432\\u0430\\\", \\\"description_uk\\\": \\\"Golf peach\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 250.0}]}, {\\\"name\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"name_uk\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"description\\\": \\\"\\u041b\\u0438\\u043c\\u0443\\u043d\\u0430\\u0434\\u0430\\\", \\\"description_uk\\\": \\\"Lemonade\\\", \\\"measure\\\": 1, \\\"items\\\": [{\\\"name\\\": \\\"\\\", \\\"gramaj\\\": 0, \\\"cena\\\": 280.0}]}]}]}'\", \"curl_log_file\": \"logs/curl_commands.log\", \"event\": \"CREATE_MENU_CURL_COMMAND\", \"logger\": \"insert_menu_items.service\", \"level\": \"info\", \"timestamp\": \"2025-12-15T12:56:03.364833Z\"}", "module": "service", "function": "_call_create_menu_api", "line": 421}