Files
kantinen-wrapper/test_orders.json
Michael Kaufmann bc98a19fc6 feat: server-based version with menu flagging, distributed polling, and SSE
Complete implementation including:
- Express server with Bessa API proxy
- Puppeteer scraper for menu data
- Flag storage (file-based persistence)
- SSE manager for real-time updates
- Polling orchestrator for distributed polling
- Frontend with weekly view, ordering, and flagging UI
- Yellow/green glow indicators for flagged items
2026-02-12 08:36:05 +01:00

1 line
7.6 KiB
JSON

{"orders":[{"id":1522667,"venue":591,"states":[{"state":5,"timestamp":"2026-02-05T09:27:14.291812Z","cancel_message":""}],"customer":{"id":169488,"newsletter":false,"created":"2025-12-09T08:16:54.918222Z","updated":"2025-12-09T08:16:54.918246Z","deleted":null,"uuid":"3424958e-b0a3-43c5-ac07-f93abef07b54","first_name":"Michael","last_name":"Kaufmann","company_name":"","is_primary":false,"phone":"","tax_id":"","type":0,"email":"knapp-2041@bessa.app"},"address":null,"cash_box_table_name":null,"preorder":true,"payment_meta_data":{"timestamp":"2026-02-05T09:27:14.255483Z","transaction_id":"10227","merchant_receipt":"User: \"10227\" - \"Michael Kaufmann\" created a new order."},"discount":null,"notifications":{"food":false,"drink":false},"hash_id":"o_eEzom","items":[{"id":3892875,"article":178723,"course_group":null,"modifiers":[],"created":"2026-02-05T09:27:14.294494Z","updated":"2026-02-05T09:27:14.294507Z","deleted":null,"uuid":"79127077-242d-4237-9525-e92aa5c3efca","name":"M2 Gourmetteller","description":"Rindsuppe m. Kaspressknödel A,C,L,M,G, beef soup with cheese dumpling,Quiche Lorrain (Schinken) A,C,G,L,M, c quiche lorrain with ham, Donut A,C,G,H","price":"5.50","amount":1,"vat":"10.00","comment":"","venue":591,"order":1522667}],"table":null,"payment_method_id":null,"order_type":7,"created":"2026-02-05T09:27:14.281048Z","updated":"2026-02-05T09:27:14.281067Z","deleted":null,"uuid":"975197dd-eb03-4370-bc4e-6fa984d374df","payment_method":"payroll","order_state":5,"date":"2026-02-09T10:00:00Z","user_date":"2026-02-09T10:00:00Z","delivered":null,"expires":"2026-02-09T11:15:00Z","total":"5.50","tip":"0.00","delivery_fee":"0.00","service_fee":"0.00","packaging_fee":"0.00","currency":"eur","client_secret":null,"cash_box_order_id":null,"receipt":null,"cancel_message":"","cancel_reason":"none","redeemed_cards":null,"is_testing":false,"pickup_code":"404","number":404,"service":0,"comment":"","take_away":false,"identity":null},{"id":1522668,"venue":591,"states":[{"state":5,"timestamp":"2026-02-05T09:27:42.019668Z","cancel_message":""}],"customer":{"id":169488,"newsletter":false,"created":"2025-12-09T08:16:54.918222Z","updated":"2025-12-09T08:16:54.918246Z","deleted":null,"uuid":"3424958e-b0a3-43c5-ac07-f93abef07b54","first_name":"Michael","last_name":"Kaufmann","company_name":"","is_primary":false,"phone":"","tax_id":"","type":0,"email":"knapp-2041@bessa.app"},"address":null,"cash_box_table_name":null,"preorder":true,"payment_meta_data":{"timestamp":"2026-02-05T09:27:41.972304Z","transaction_id":"10227","merchant_receipt":"User: \"10227\" - \"Michael Kaufmann\" created a new order."},"discount":null,"notifications":{"food":false,"drink":false},"hash_id":"o_b5dpa","items":[{"id":3892876,"article":178714,"course_group":null,"modifiers":[],"created":"2026-02-05T09:27:42.025714Z","updated":"2026-02-05T09:27:42.025728Z","deleted":null,"uuid":"373fe6ac-3fb5-4ccf-a6cd-3e3817fba69f","name":"M1 Herzhaftes","description":"Erdäpfelrahmsuppe L,M,C,G, potato soup, Acht Schätze (Rind) L,M,C,F,O, mit Eiernudeln A,C, Kuchen A,C,G,H,O, Silced beef asia with egg noodles","price":"5.50","amount":1,"vat":"10.00","comment":"","venue":591,"order":1522668}],"table":null,"payment_method_id":null,"order_type":7,"created":"2026-02-05T09:27:42.001341Z","updated":"2026-02-05T09:27:42.001364Z","deleted":null,"uuid":"5f86b333-9546-4a90-a869-d6e59441ec9a","payment_method":"payroll","order_state":5,"date":"2026-02-10T10:00:00Z","user_date":"2026-02-10T10:00:00Z","delivered":null,"expires":"2026-02-10T11:15:00Z","total":"5.50","tip":"0.00","delivery_fee":"0.00","service_fee":"0.00","packaging_fee":"0.00","currency":"eur","client_secret":null,"cash_box_order_id":null,"receipt":null,"cancel_message":"","cancel_reason":"none","redeemed_cards":null,"is_testing":false,"pickup_code":"377","number":377,"service":0,"comment":"","take_away":false,"identity":null},{"id":1522671,"venue":591,"states":[{"state":5,"timestamp":"2026-02-05T09:28:59.631701Z","cancel_message":""}],"customer":{"id":169488,"newsletter":false,"created":"2025-12-09T08:16:54.918222Z","updated":"2025-12-09T08:16:54.918246Z","deleted":null,"uuid":"3424958e-b0a3-43c5-ac07-f93abef07b54","first_name":"Michael","last_name":"Kaufmann","company_name":"","is_primary":false,"phone":"","tax_id":"","type":0,"email":"knapp-2041@bessa.app"},"address":null,"cash_box_table_name":null,"preorder":true,"payment_meta_data":{"timestamp":"2026-02-05T09:28:59.600005Z","transaction_id":"10227","merchant_receipt":"User: \"10227\" - \"Michael Kaufmann\" created a new order."},"discount":null,"notifications":{"food":false,"drink":false},"hash_id":"o_vbeVw","items":[{"id":3892879,"article":178718,"course_group":null,"modifiers":[],"created":"2026-02-05T09:28:59.634388Z","updated":"2026-02-05T09:28:59.634403Z","deleted":null,"uuid":"32fc3b50-f024-4bd6-ac98-a84b5d237326","name":"M1 Herzhaftes","description":"Knoblauchcremesuppe G,L,M, garlic cream soup, Champignonrahmschnitzel mit Kräuterspätzle L,A,M,O,C,G, mushroom cream schnitzel with spaetzle, Vanillepudding G, vanilla pudding","price":"5.50","amount":1,"vat":"10.00","comment":"","venue":591,"order":1522671}],"table":null,"payment_method_id":null,"order_type":7,"created":"2026-02-05T09:28:59.623919Z","updated":"2026-02-05T09:28:59.623939Z","deleted":null,"uuid":"f6bb6f9d-8acc-4d06-9d52-f445919c9c51","payment_method":"payroll","order_state":5,"date":"2026-02-11T10:00:00Z","user_date":"2026-02-11T10:00:00Z","delivered":null,"expires":"2026-02-11T11:15:00Z","total":"5.50","tip":"0.00","delivery_fee":"0.00","service_fee":"0.00","packaging_fee":"0.00","currency":"eur","client_secret":null,"cash_box_order_id":null,"receipt":null,"cancel_message":"","cancel_reason":"none","redeemed_cards":null,"is_testing":false,"pickup_code":"365","number":365,"service":0,"comment":"","take_away":false,"identity":null},{"id":1522672,"venue":591,"states":[{"state":5,"timestamp":"2026-02-05T09:29:39.076987Z","cancel_message":""}],"customer":{"id":169488,"newsletter":false,"created":"2025-12-09T08:16:54.918222Z","updated":"2025-12-09T08:16:54.918246Z","deleted":null,"uuid":"3424958e-b0a3-43c5-ac07-f93abef07b54","first_name":"Michael","last_name":"Kaufmann","company_name":"","is_primary":false,"phone":"","tax_id":"","type":0,"email":"knapp-2041@bessa.app"},"address":null,"cash_box_table_name":null,"preorder":true,"payment_meta_data":{"timestamp":"2026-02-05T09:29:39.038013Z","transaction_id":"10227","merchant_receipt":"User: \"10227\" - \"Michael Kaufmann\" created a new order."},"discount":null,"notifications":{"food":false,"drink":false},"hash_id":"o_KOP4p","items":[{"id":3892880,"article":178744,"course_group":null,"modifiers":[],"created":"2026-02-05T09:29:39.079965Z","updated":"2026-02-05T09:29:39.079983Z","deleted":null,"uuid":"b737bbc4-9c32-45a4-b6f2-684c5571ce33","name":"M5F Salat mit Gebäck DO 2","description":"Brokkoli Cheddasuppe, L,M,C,G, Chef Salat mit Schinken und Mozzarella, Mais, L,M,G, salad with ham and mozzarella","price":"5.50","amount":1,"vat":"10.00","comment":"","venue":591,"order":1522672}],"table":null,"payment_method_id":null,"order_type":7,"created":"2026-02-05T09:29:39.066841Z","updated":"2026-02-05T09:29:39.066907Z","deleted":null,"uuid":"f42f9a86-7c81-412f-adb6-cb4b7f371cf8","payment_method":"payroll","order_state":5,"date":"2026-02-12T10:00:00Z","user_date":"2026-02-12T10:00:00Z","delivered":null,"expires":"2026-02-12T11:15:00Z","total":"5.50","tip":"0.00","delivery_fee":"0.00","service_fee":"0.00","packaging_fee":"0.00","currency":"eur","client_secret":null,"cash_box_order_id":null,"receipt":null,"cancel_message":"","cancel_reason":"none","redeemed_cards":null,"is_testing":false,"pickup_code":"269","number":269,"service":0,"comment":"","take_away":false,"identity":null}]}