From 7e37f01f0196215a5720bf2da46a39b21c261e40 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 16 Jul 2025 23:56:08 +0000
Subject: [PATCH 1/7] Initial plan
From 2553e0967fb4c74faed31abc114523d333a30e6c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 16 Jul 2025 23:58:26 +0000
Subject: [PATCH 2/7] Initial assessment: setting up testbench workbench for
local development
Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
---
.phpunit.result.cache | 1 +
build/logs/clover.xml | 918 +++++++++++++++++++++++++++
public/build/assets/app-BFim1QpV.css | 1 +
public/build/manifest.json | 10 +
stubs/api/index.php | 6 +-
5 files changed, 933 insertions(+), 3 deletions(-)
create mode 100644 .phpunit.result.cache
create mode 100644 build/logs/clover.xml
create mode 100644 public/build/assets/app-BFim1QpV.css
create mode 100644 public/build/manifest.json
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
new file mode 100644
index 0000000..6e8763a
--- /dev/null
+++ b/.phpunit.result.cache
@@ -0,0 +1 @@
+{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.111,"Tests\\Feature\\ActionsTest::test_add_history":0.003,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.011,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.014,"Tests\\Feature\\AuthTest::test_login":0.019,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.118,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.009,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.038,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.028,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.026,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.036,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.043,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.047,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.029,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.03,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.013,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.003,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.028}}
\ No newline at end of file
diff --git a/build/logs/clover.xml b/build/logs/clover.xml
new file mode 100644
index 0000000..ecfe65f
--- /dev/null
+++ b/build/logs/clover.xml
@@ -0,0 +1,918 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/build/assets/app-BFim1QpV.css b/public/build/assets/app-BFim1QpV.css
new file mode 100644
index 0000000..47f7f9d
--- /dev/null
+++ b/public/build/assets/app-BFim1QpV.css
@@ -0,0 +1 @@
+/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Instrument Sans",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-widest:.1em;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:#fff7ed;--color-primary-100:#ffedd5;--color-primary-200:#fed7aa;--color-primary-300:#fdba74;--color-primary-400:#fb923c;--color-primary-500:#f97316;--color-primary-600:#ea580c;--color-primary-700:#c2410c;--color-primary-800:#9a3412}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=checkbox]:checked{appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=radio]:checked{appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){[type=checkbox]:indeterminate{appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-50{z-index:50}.m-3{margin:calc(var(--spacing)*3)}.m-6{margin:calc(var(--spacing)*6)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing)*6)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.-mr-2{margin-right:calc(var(--spacing)*-2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-10{height:calc(var(--spacing)*10)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-10{width:calc(var(--spacing)*10)}.w-48{width:calc(var(--spacing)*48)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.shrink-0{flex-shrink:0}.origin-top{transform-origin:top}.origin-top-left{transform-origin:0 0}.origin-top-right{transform-origin:100% 0}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*8)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-primary-300{border-color:var(--color-primary-300)}.border-primary-400{border-color:var(--color-primary-400)}.border-primary-500{border-color:var(--color-primary-500)}.border-transparent{border-color:#0000}.bg-black{background-color:var(--color-black)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-white{background-color:var(--color-white)}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-primary-200{--tw-gradient-from:var(--color-primary-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary-500{--tw-gradient-to:var(--color-primary-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-right-top{object-position:right top}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-4{padding-right:calc(var(--spacing)*4)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-40{padding-bottom:calc(var(--spacing)*40)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-primary-500{color:var(--color-primary-500)}.text-primary-700{color:var(--color-primary-700)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-black{--tw-ring-color:var(--color-black)}.ring-primary-300{--tw-ring-color:var(--color-primary-300)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-primary-400:hover{color:var(--color-primary-400)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\:border-primary-200:focus{border-color:var(--color-primary-200)}.focus\:border-primary-300:focus{border-color:var(--color-primary-300)}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:border-primary-700:focus{border-color:var(--color-primary-700)}.focus\:bg-gray-50:focus{background-color:var(--color-gray-50)}.focus\:bg-gray-100:focus{background-color:var(--color-gray-100)}.focus\:bg-primary-100:focus{background-color:var(--color-primary-100)}.focus\:text-gray-500:focus{color:var(--color-gray-500)}.focus\:text-gray-700:focus{color:var(--color-gray-700)}.focus\:text-gray-800:focus{color:var(--color-gray-800)}.focus\:text-primary-800:focus{color:var(--color-primary-800)}.focus\:ring-3:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary-200:focus{--tw-ring-color:var(--color-primary-200)}.focus\:ring-primary-300:focus{--tw-ring-color:var(--color-primary-300)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.active\:bg-primary-700:active{background-color:var(--color-primary-700)}.disabled\:opacity-25:disabled{opacity:.25}@media (min-width:40rem){.sm\:-my-px{margin-block:-1px}.sm\:ml-6{margin-left:calc(var(--spacing)*6)}.sm\:ml-10{margin-left:calc(var(--spacing)*10)}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:max-w-md{max-width:var(--container-md)}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:pt-0{padding-top:calc(var(--spacing)*0)}}@media (min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}@media (prefers-color-scheme:dark){.dark\:border-gray-400{border-color:var(--color-gray-400)}.dark\:border-gray-900{border-color:var(--color-gray-900)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-white{color:var(--color-white)}@media (hover:hover){.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}}}}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
diff --git a/public/build/manifest.json b/public/build/manifest.json
new file mode 100644
index 0000000..04dbc7c
--- /dev/null
+++ b/public/build/manifest.json
@@ -0,0 +1,10 @@
+{
+ "resources/css/app.css": {
+ "file": "assets/app-BFim1QpV.css",
+ "src": "resources/css/app.css",
+ "isEntry": true,
+ "names": [
+ "app.css"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/stubs/api/index.php b/stubs/api/index.php
index c91bf5a..9269d22 100644
--- a/stubs/api/index.php
+++ b/stubs/api/index.php
@@ -1,7 +1,7 @@
Date: Thu, 17 Jul 2025 00:09:10 +0000
Subject: [PATCH 3/7] Complete workbench setup with composer serve
functionality
Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
---
.gitignore | 4 ++
.phpunit.result.cache | 2 +-
build/logs/clover.xml | 4 +-
composer.json | 25 +++++++--
testbench.yaml | 33 ++++++++++++
workbench/app/Models/.gitkeep | 0
workbench/app/Models/User.php | 48 +++++++++++++++++
.../Providers/WorkbenchServiceProvider.php | 24 +++++++++
workbench/bootstrap/app.php | 19 +++++++
workbench/database/factories/.gitkeep | 0
workbench/database/factories/UserFactory.php | 54 +++++++++++++++++++
workbench/database/migrations/.gitkeep | 0
workbench/database/seeders/DatabaseSeeder.php | 23 ++++++++
workbench/resources/views/.gitkeep | 0
workbench/routes/console.php | 8 +++
workbench/routes/web.php | 16 ++++++
16 files changed, 254 insertions(+), 6 deletions(-)
create mode 100644 testbench.yaml
create mode 100644 workbench/app/Models/.gitkeep
create mode 100644 workbench/app/Models/User.php
create mode 100644 workbench/app/Providers/WorkbenchServiceProvider.php
create mode 100644 workbench/bootstrap/app.php
create mode 100644 workbench/database/factories/.gitkeep
create mode 100644 workbench/database/factories/UserFactory.php
create mode 100644 workbench/database/migrations/.gitkeep
create mode 100644 workbench/database/seeders/DatabaseSeeder.php
create mode 100644 workbench/resources/views/.gitkeep
create mode 100644 workbench/routes/console.php
create mode 100644 workbench/routes/web.php
diff --git a/.gitignore b/.gitignore
index 1476905..d213856 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,7 @@ vendor
/stubs/node_modules
stubs/package-lock.json
/node_modules
+/build/
+.phpunit.result.cache
+/workbench/storage
+/workbench/database/database.sqlite
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
index 6e8763a..e3cac87 100644
--- a/.phpunit.result.cache
+++ b/.phpunit.result.cache
@@ -1 +1 @@
-{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.111,"Tests\\Feature\\ActionsTest::test_add_history":0.003,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.011,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.014,"Tests\\Feature\\AuthTest::test_login":0.019,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.118,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.009,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.038,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.028,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.026,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.036,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.043,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.047,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.029,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.03,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.013,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.003,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.028}}
\ No newline at end of file
+{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.097,"Tests\\Feature\\ActionsTest::test_add_history":0.004,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.012,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.015,"Tests\\Feature\\AuthTest::test_login":0.02,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.121,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.009,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.043,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.028,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.027,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.037,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.044,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.047,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.028,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.026,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.031,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.014,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.028}}
\ No newline at end of file
diff --git a/build/logs/clover.xml b/build/logs/clover.xml
index ecfe65f..5c3a61d 100644
--- a/build/logs/clover.xml
+++ b/build/logs/clover.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/composer.json b/composer.json
index e39c08b..d9d1200 100644
--- a/composer.json
+++ b/composer.json
@@ -26,7 +26,10 @@
},
"autoload-dev": {
"psr-4": {
- "Tests\\": "tests/"
+ "Tests\\": "tests/",
+ "Workbench\\App\\": "workbench/app/",
+ "Workbench\\Database\\Factories\\": "workbench/database/factories/",
+ "Workbench\\Database\\Seeders\\": "workbench/database/seeders/"
}
},
"authors": [
@@ -36,7 +39,23 @@
}
],
"scripts": {
- "lint": "vendor/bin/pint"
+ "lint": "vendor/bin/pint",
+ "post-autoload-dump": [
+ "@clear",
+ "@prepare"
+ ],
+ "clear": "@php vendor/bin/testbench package:purge-skeleton --ansi",
+ "prepare": "@php vendor/bin/testbench package:discover --ansi",
+ "build": "@php vendor/bin/testbench workbench:build --ansi",
+ "serve": [
+ "Composer\\Config::disableProcessTimeout",
+ "@build",
+ "@php vendor/bin/testbench serve --ansi"
+ ],
+ "test": [
+ "@clear",
+ "@php vendor/bin/phpunit"
+ ]
},
"extra": {
"laravel": {
@@ -46,4 +65,4 @@
}
},
"minimum-stability": "stable"
-}
+}
\ No newline at end of file
diff --git a/testbench.yaml b/testbench.yaml
new file mode 100644
index 0000000..23e4015
--- /dev/null
+++ b/testbench.yaml
@@ -0,0 +1,33 @@
+laravel: '@testbench'
+
+providers:
+ # - Workbench\App\Providers\WorkbenchServiceProvider
+
+migrations:
+ - workbench/database/migrations
+
+seeders:
+ - Workbench\Database\Seeders\DatabaseSeeder
+
+workbench:
+ start: '/'
+ install: true
+ health: false
+ discovers:
+ web: true
+ api: true
+ commands: true
+ components: false
+ factories: true
+ views: false
+ build:
+ - asset-publish
+ - create-sqlite-db
+ - db-wipe
+ - migrate-fresh
+ assets:
+ - laravel-assets
+ sync:
+ - from: storage
+ to: workbench/storage
+ reverse: true
diff --git a/workbench/app/Models/.gitkeep b/workbench/app/Models/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/workbench/app/Models/User.php b/workbench/app/Models/User.php
new file mode 100644
index 0000000..f9ffa76
--- /dev/null
+++ b/workbench/app/Models/User.php
@@ -0,0 +1,48 @@
+ */
+ use HasFactory, Notifiable;
+
+ /**
+ * The attributes that are mass assignable.
+ *
+ * @var list
+ */
+ protected $fillable = [
+ 'name',
+ 'email',
+ 'password',
+ ];
+
+ /**
+ * The attributes that should be hidden for serialization.
+ *
+ * @var list
+ */
+ protected $hidden = [
+ 'password',
+ 'remember_token',
+ ];
+
+ /**
+ * Get the attributes that should be cast.
+ *
+ * @return array
+ */
+ protected function casts(): array
+ {
+ return [
+ 'email_verified_at' => 'datetime',
+ 'password' => 'hashed',
+ ];
+ }
+}
diff --git a/workbench/app/Providers/WorkbenchServiceProvider.php b/workbench/app/Providers/WorkbenchServiceProvider.php
new file mode 100644
index 0000000..e8cec9c
--- /dev/null
+++ b/workbench/app/Providers/WorkbenchServiceProvider.php
@@ -0,0 +1,24 @@
+withRouting(
+ web: __DIR__.'/../routes/web.php',
+ commands: __DIR__.'/../routes/console.php',
+ )
+ ->withMiddleware(function (Middleware $middleware) {
+ //
+ })
+ ->withExceptions(function (Exceptions $exceptions) {
+ //
+ })->create();
diff --git a/workbench/database/factories/.gitkeep b/workbench/database/factories/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/workbench/database/factories/UserFactory.php b/workbench/database/factories/UserFactory.php
new file mode 100644
index 0000000..dfcab01
--- /dev/null
+++ b/workbench/database/factories/UserFactory.php
@@ -0,0 +1,54 @@
+
+ */
+class UserFactory extends Factory
+{
+ /**
+ * The current password being used by the factory.
+ */
+ protected static ?string $password;
+
+ /**
+ * The name of the factory's corresponding model.
+ *
+ * @var class-string
+ */
+ protected $model = User::class;
+
+ /**
+ * Define the model's default state.
+ *
+ * @return array
+ */
+ public function definition(): array
+ {
+ return [
+ 'name' => fake()->name(),
+ 'email' => fake()->unique()->safeEmail(),
+ 'email_verified_at' => now(),
+ 'password' => static::$password ??= Hash::make('password'),
+ 'remember_token' => Str::random(10),
+ ];
+ }
+
+ /**
+ * Indicate that the model's email address should be unverified.
+ */
+ public function unverified(): static
+ {
+ return $this->state(fn (array $attributes) => [
+ 'email_verified_at' => null,
+ ]);
+ }
+}
diff --git a/workbench/database/migrations/.gitkeep b/workbench/database/migrations/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/workbench/database/seeders/DatabaseSeeder.php b/workbench/database/seeders/DatabaseSeeder.php
new file mode 100644
index 0000000..f10adbb
--- /dev/null
+++ b/workbench/database/seeders/DatabaseSeeder.php
@@ -0,0 +1,23 @@
+times(10)->create();
+
+ UserFactory::new()->create([
+ 'name' => 'Test User',
+ 'email' => 'test@example.com',
+ ]);
+ }
+}
diff --git a/workbench/resources/views/.gitkeep b/workbench/resources/views/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/workbench/routes/console.php b/workbench/routes/console.php
new file mode 100644
index 0000000..7929725
--- /dev/null
+++ b/workbench/routes/console.php
@@ -0,0 +1,8 @@
+comment(Inspiring::quote());
+// })->purpose('Display an inspiring quote');
diff --git a/workbench/routes/web.php b/workbench/routes/web.php
new file mode 100644
index 0000000..a024e7e
--- /dev/null
+++ b/workbench/routes/web.php
@@ -0,0 +1,16 @@
+group(function () {
+ Route::view('login', 'ordering::auth.login')->name('login');
+ Route::view('table', 'ordering::table')->name('table');
+ Route::view('order/{table?}', 'ordering::order.index')->name('order');
+ Route::view('prepare', 'ordering::prepare.index')->name('prepare');
+ Route::view('history', 'ordering::history.index')->name('history');
+});
From d5d48a6587b42c9a45880784f853721b941b1328 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 17 Jul 2025 00:10:29 +0000
Subject: [PATCH 4/7] Setup orchestra/testbench Workbench for local package
development
Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
---
.phpunit.result.cache | 2 +-
build/logs/clover.xml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
index e3cac87..2dfc717 100644
--- a/.phpunit.result.cache
+++ b/.phpunit.result.cache
@@ -1 +1 @@
-{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.097,"Tests\\Feature\\ActionsTest::test_add_history":0.004,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.012,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.015,"Tests\\Feature\\AuthTest::test_login":0.02,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.121,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.009,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.043,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.028,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.027,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.037,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.044,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.047,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.028,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.026,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.031,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.014,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.028}}
\ No newline at end of file
+{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.096,"Tests\\Feature\\ActionsTest::test_add_history":0.004,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.012,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.015,"Tests\\Feature\\AuthTest::test_login":0.02,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.121,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.01,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.043,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.027,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.026,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.037,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.043,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.046,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.027,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.031,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.015,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.003,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.028}}
\ No newline at end of file
diff --git a/build/logs/clover.xml b/build/logs/clover.xml
index 5c3a61d..22dacaf 100644
--- a/build/logs/clover.xml
+++ b/build/logs/clover.xml
@@ -1,6 +1,6 @@
-
-
+
+
From 3f279c4b7a5a4b3eed7b8325a75f4fbb1c60cff9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 17 Jul 2025 00:28:56 +0000
Subject: [PATCH 5/7] Address feedback: remove build artifacts from git, add
service provider, clean up routes
Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
---
.gitignore | 1 +
.phpunit.result.cache | 2 +-
build/logs/clover.xml | 4 ++--
public/build/assets/app-BFim1QpV.css | 1 -
public/build/manifest.json | 10 ----------
testbench.yaml | 4 ++++
workbench/routes/web.php | 9 ---------
7 files changed, 8 insertions(+), 23 deletions(-)
delete mode 100644 public/build/assets/app-BFim1QpV.css
delete mode 100644 public/build/manifest.json
diff --git a/.gitignore b/.gitignore
index d213856..c3e8b6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,5 +4,6 @@ stubs/package-lock.json
/node_modules
/build/
.phpunit.result.cache
+/public/build/
/workbench/storage
/workbench/database/database.sqlite
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
index 2dfc717..c419a0f 100644
--- a/.phpunit.result.cache
+++ b/.phpunit.result.cache
@@ -1 +1 @@
-{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.096,"Tests\\Feature\\ActionsTest::test_add_history":0.004,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.012,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.015,"Tests\\Feature\\AuthTest::test_login":0.02,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.121,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.01,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.043,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.027,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.026,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.037,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.043,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.046,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.016,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.027,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.031,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.015,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.003,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.028}}
\ No newline at end of file
+{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.11,"Tests\\Feature\\ActionsTest::test_add_history":0.004,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.011,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.014,"Tests\\Feature\\AuthTest::test_login":0.019,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.119,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.01,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.042,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.028,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.027,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.038,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.046,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.048,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.017,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.017,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.029,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.03,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.014,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.003,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.03}}
\ No newline at end of file
diff --git a/build/logs/clover.xml b/build/logs/clover.xml
index 22dacaf..3ec54d1 100644
--- a/build/logs/clover.xml
+++ b/build/logs/clover.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/public/build/assets/app-BFim1QpV.css b/public/build/assets/app-BFim1QpV.css
deleted file mode 100644
index 47f7f9d..0000000
--- a/public/build/assets/app-BFim1QpV.css
+++ /dev/null
@@ -1 +0,0 @@
-/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Instrument Sans",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-widest:.1em;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:#fff7ed;--color-primary-100:#ffedd5;--color-primary-200:#fed7aa;--color-primary-300:#fdba74;--color-primary-400:#fb923c;--color-primary-500:#f97316;--color-primary-600:#ea580c;--color-primary-700:#c2410c;--color-primary-800:#9a3412}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=checkbox]:checked{appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=radio]:checked{appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){[type=checkbox]:indeterminate{appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-50{z-index:50}.m-3{margin:calc(var(--spacing)*3)}.m-6{margin:calc(var(--spacing)*6)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing)*6)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.-mr-2{margin-right:calc(var(--spacing)*-2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-10{height:calc(var(--spacing)*10)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-10{width:calc(var(--spacing)*10)}.w-48{width:calc(var(--spacing)*48)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.shrink-0{flex-shrink:0}.origin-top{transform-origin:top}.origin-top-left{transform-origin:0 0}.origin-top-right{transform-origin:100% 0}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*8)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-primary-300{border-color:var(--color-primary-300)}.border-primary-400{border-color:var(--color-primary-400)}.border-primary-500{border-color:var(--color-primary-500)}.border-transparent{border-color:#0000}.bg-black{background-color:var(--color-black)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-white{background-color:var(--color-white)}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-primary-200{--tw-gradient-from:var(--color-primary-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary-500{--tw-gradient-to:var(--color-primary-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-right-top{object-position:right top}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-4{padding-right:calc(var(--spacing)*4)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-40{padding-bottom:calc(var(--spacing)*40)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-primary-500{color:var(--color-primary-500)}.text-primary-700{color:var(--color-primary-700)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-black{--tw-ring-color:var(--color-black)}.ring-primary-300{--tw-ring-color:var(--color-primary-300)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-primary-400:hover{color:var(--color-primary-400)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\:border-primary-200:focus{border-color:var(--color-primary-200)}.focus\:border-primary-300:focus{border-color:var(--color-primary-300)}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:border-primary-700:focus{border-color:var(--color-primary-700)}.focus\:bg-gray-50:focus{background-color:var(--color-gray-50)}.focus\:bg-gray-100:focus{background-color:var(--color-gray-100)}.focus\:bg-primary-100:focus{background-color:var(--color-primary-100)}.focus\:text-gray-500:focus{color:var(--color-gray-500)}.focus\:text-gray-700:focus{color:var(--color-gray-700)}.focus\:text-gray-800:focus{color:var(--color-gray-800)}.focus\:text-primary-800:focus{color:var(--color-primary-800)}.focus\:ring-3:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary-200:focus{--tw-ring-color:var(--color-primary-200)}.focus\:ring-primary-300:focus{--tw-ring-color:var(--color-primary-300)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.active\:bg-primary-700:active{background-color:var(--color-primary-700)}.disabled\:opacity-25:disabled{opacity:.25}@media (min-width:40rem){.sm\:-my-px{margin-block:-1px}.sm\:ml-6{margin-left:calc(var(--spacing)*6)}.sm\:ml-10{margin-left:calc(var(--spacing)*10)}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:max-w-md{max-width:var(--container-md)}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:pt-0{padding-top:calc(var(--spacing)*0)}}@media (min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}@media (prefers-color-scheme:dark){.dark\:border-gray-400{border-color:var(--color-gray-400)}.dark\:border-gray-900{border-color:var(--color-gray-900)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-white{color:var(--color-white)}@media (hover:hover){.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}}}}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
diff --git a/public/build/manifest.json b/public/build/manifest.json
deleted file mode 100644
index 04dbc7c..0000000
--- a/public/build/manifest.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "resources/css/app.css": {
- "file": "assets/app-BFim1QpV.css",
- "src": "resources/css/app.css",
- "isEntry": true,
- "names": [
- "app.css"
- ]
- }
-}
\ No newline at end of file
diff --git a/testbench.yaml b/testbench.yaml
index 23e4015..c35f361 100644
--- a/testbench.yaml
+++ b/testbench.yaml
@@ -2,6 +2,7 @@ laravel: '@testbench'
providers:
# - Workbench\App\Providers\WorkbenchServiceProvider
+ - Revolution\Ordering\Providers\OrderingServiceProvider
migrations:
- workbench/database/migrations
@@ -31,3 +32,6 @@ workbench:
- from: storage
to: workbench/storage
reverse: true
+ - from: public/build
+ to: workbench/public/build
+ reverse: true
diff --git a/workbench/routes/web.php b/workbench/routes/web.php
index a024e7e..86a06c5 100644
--- a/workbench/routes/web.php
+++ b/workbench/routes/web.php
@@ -5,12 +5,3 @@
Route::get('/', function () {
return view('welcome');
});
-
-// Include self-ordering routes - using proper middleware
-Route::middleware(['web'])->group(function () {
- Route::view('login', 'ordering::auth.login')->name('login');
- Route::view('table', 'ordering::table')->name('table');
- Route::view('order/{table?}', 'ordering::order.index')->name('order');
- Route::view('prepare', 'ordering::prepare.index')->name('prepare');
- Route::view('history', 'ordering::history.index')->name('history');
-});
From c498d2753e7e41b7dcc8b19a3ae275149a823646 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 17 Jul 2025 00:35:34 +0000
Subject: [PATCH 6/7] Remove .phpunit.result.cache file from git history
Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
---
.phpunit.result.cache | 1 -
build/logs/clover.xml | 4 ++--
2 files changed, 2 insertions(+), 3 deletions(-)
delete mode 100644 .phpunit.result.cache
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
deleted file mode 100644
index c419a0f..0000000
--- a/.phpunit.result.cache
+++ /dev/null
@@ -1 +0,0 @@
-{"version":1,"defects":[],"times":{"Tests\\Feature\\ActionsTest::test_add_cart":0.11,"Tests\\Feature\\ActionsTest::test_add_history":0.004,"Tests\\Feature\\ActionsTest::test_reset_cart":0.003,"Tests\\Feature\\ActionsTest::test_order":0.011,"Tests\\Feature\\ActionsTest::test_order_empty":0.003,"Tests\\Feature\\Api\\MenusTest::test_menus_index":0.014,"Tests\\Feature\\AuthTest::test_login":0.019,"Tests\\Feature\\AuthTest::test_login_fail":0.009,"Tests\\Feature\\AuthTest::test_logout":0.008,"Tests\\Feature\\AuthTest::test_dashboard":0.119,"Tests\\Feature\\AuthTest::test_dashboard_redirect":0.01,"Tests\\Feature\\ExampleTest::test_basic_test":0.008,"Tests\\Feature\\InstallTest::test_install":0.042,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history":0.028,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_delete_history":0.027,"Tests\\Feature\\Livewire\\LivewireHistoryTest::test_history_redirect":0.019,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus":0.038,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_add_cart":0.046,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_reset_cart":0.048,"Tests\\Feature\\Livewire\\LivewireMenusTest::test_order_menus_redirect":0.032,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_view":0.017,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_redirect_back":0.017,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_ok":0.029,"Tests\\Feature\\Livewire\\LivewirePayPayTest::test_pay_pay_check_failed":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare":0.024,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_delete_cart":0.025,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect_back":0.02,"Tests\\Feature\\Livewire\\LivewirePrepareTest::test_order_prepare_redirect":0.03,"Tests\\Feature\\MenuTest::test_menu_manager":0.003,"Tests\\Feature\\MenuTest::test_array_driver":0.004,"Tests\\Feature\\MenuTest::test_micro_cms_driver":0.014,"Tests\\Feature\\MenuTest::test_google_sheets_driver":0.008,"Tests\\Feature\\MenuTest::test_google_sheets_instance":0.004,"Tests\\Feature\\MenuTest::test_google_sheets_values_instance":0.003,"Tests\\Feature\\MenuTest::test_contentful_driver":0.004,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect":0.012,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_redirect_error":0.006,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details":0.003,"Tests\\Feature\\Payment\\PayPayTest::test_pay_pay_payment_details_exception":0.009,"Tests\\Feature\\Payment\\PaymentTest::test_payment_manager":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_payment_method":0.003,"Tests\\Feature\\Payment\\PaymentTest::test_cash_driver":0.004,"Tests\\Feature\\Payment\\PaymentTest::test_pay_pay_driver":0.004,"Tests\\Unit\\ExampleTest::test_basic_test":0.001,"Tests\\Unit\\ExampleTest::test_qrcode":0.03}}
\ No newline at end of file
diff --git a/build/logs/clover.xml b/build/logs/clover.xml
index 3ec54d1..9acbfa2 100644
--- a/build/logs/clover.xml
+++ b/build/logs/clover.xml
@@ -1,6 +1,6 @@
-
-
+
+
From 32097b995a75867a683ae564075c9edaf81c7e8f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 17 Jul 2025 00:41:44 +0000
Subject: [PATCH 7/7] Remove build/logs/clover.xml from git tracking
Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
---
build/logs/clover.xml | 918 ------------------------------------------
1 file changed, 918 deletions(-)
delete mode 100644 build/logs/clover.xml
diff --git a/build/logs/clover.xml b/build/logs/clover.xml
deleted file mode 100644
index 9acbfa2..0000000
--- a/build/logs/clover.xml
+++ /dev/null
@@ -1,918 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-