From d91cd717df5e96230e7d55b88ff021cb68a8a1a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=A8=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Sat, 8 Aug 2026 16:02:09 +0800 Subject: [PATCH] feat(reservation): solidify booking email v0.1 intake --- .../components/local/LocalEditableField.vue | 149 + .../components/local/LocalPrototypeHeader.vue | 58 + .../ReservationV4RecognitionEvidence.vue | 222 ++ .../ReservationV4RoomInformationCard.vue | 15 +- .../ReservationV4SourceMessageCard.vue | 14 + .../ReservationV4TaskCardFieldRenderer.vue | 15 +- .../ReservationV4TaskCardSection.vue | 7 +- .../src/composables/useLocalPrototypeTheme.ts | 26 + client/src/data/localTaskPrototype.ts | 951 ++++++ client/src/i18n/locales/en-US.ts | 209 ++ client/src/i18n/locales/th-TH.ts | 209 ++ client/src/i18n/locales/zh-CN.ts | 209 ++ client/src/layouts/ReservationAppShell.vue | 21 +- client/src/router/index.ts | 68 +- client/src/services/httpClient.ts | 7 + client/src/services/reservationService.ts | 35 +- .../src/tests/localTaskPrototypeViews.spec.ts | 351 +++ .../reservationBookingEmailIntakeView.spec.ts | 125 + ...eservationBookingProcessingRunView.spec.ts | 163 ++ client/src/tests/reservationRouter.spec.ts | 60 +- client/src/tests/reservationService.spec.ts | 33 + client/src/tests/reservationV4Views.spec.ts | 144 + client/src/types/bookingContracts.ts | 201 ++ client/src/types/reservation.ts | 24 + .../views/local/LocalOperationsDemoView.vue | 349 +++ .../src/views/local/LocalTaskDetailView.vue | 1245 ++++++++ client/src/views/local/localPrototype.css | 2578 +++++++++++++++++ .../ReservationBookingEmailIntakeView.vue | 1166 ++++++++ .../ReservationBookingProcessingRunView.vue | 991 +++++++ .../reservation/ReservationTaskListView.vue | 36 + .../ReservationV4OrderTaskDetailView.vue | 22 +- .../backend-to-frontend-notes.md | 18 +- .../frontend-to-backend-api-requests.md | 6 +- .../integrations/superagent-api-contract.md | 2 +- .../M002-v4-agent-callback-field-contract.md | 4 +- ...002-v4-order-task-card-domain-model-cp2.md | 25 +- ...-v4-requirement-spec-template-alignment.md | 18 +- ...M012-booking-email-confirmation-e2e-v01.md | 384 +++ .../security-access-control-boundary.md | 7 +- .../DebugEmlSuperAgentRunServiceImpl.java | 11 +- .../ReservationBookingEmailIntakeResult.java | 56 + ...vationBookingEmailIntakeWarningResult.java | 14 + ...servationBookingEmailIntakeController.java | 47 + .../ReservationTaskControllerAdvice.java | 2 + ...ybatisReservationAiWorkflowRepository.java | 3 +- .../ReservationBookingEmailIntakeService.java | 15 + .../ReservationAiTaskIntakeServiceImpl.java | 13 + .../impl/ReservationBookingCatalog.java | 274 ++ ...ervationBookingEmailIntakeServiceImpl.java | 676 +++++ .../impl/ReservationBookingEmailParser.java | 1102 +++++++ .../impl/ReservationV4CommandServiceImpl.java | 309 +- .../impl/ReservationV4QueryServiceImpl.java | 209 +- ...servationV4RoomInformationFieldPolicy.java | 32 + .../ReservationV4TaskIntakeServiceImpl.java | 72 + .../catalog/booking-catalog-v20260808.json | 98 + ...ationBookingEmailIntakeControllerTest.java | 297 ++ ...nBookingEmailRealSampleAcceptanceTest.java | 142 + .../ReservationV4CommandControllerTest.java | 221 +- .../ReservationV4QueryControllerTest.java | 10 +- .../SuperAgentTaskResultControllerTest.java | 175 ++ .../ReservationBookingEmailParserTest.java | 393 +++ 61 files changed, 13961 insertions(+), 377 deletions(-) create mode 100644 client/src/components/local/LocalEditableField.vue create mode 100644 client/src/components/local/LocalPrototypeHeader.vue create mode 100644 client/src/components/reservation/ReservationV4RecognitionEvidence.vue create mode 100644 client/src/composables/useLocalPrototypeTheme.ts create mode 100644 client/src/data/localTaskPrototype.ts create mode 100644 client/src/tests/localTaskPrototypeViews.spec.ts create mode 100644 client/src/tests/reservationBookingEmailIntakeView.spec.ts create mode 100644 client/src/tests/reservationBookingProcessingRunView.spec.ts create mode 100644 client/src/types/bookingContracts.ts create mode 100644 client/src/views/local/LocalOperationsDemoView.vue create mode 100644 client/src/views/local/LocalTaskDetailView.vue create mode 100644 client/src/views/local/localPrototype.css create mode 100644 client/src/views/reservation/ReservationBookingEmailIntakeView.vue create mode 100644 client/src/views/reservation/ReservationBookingProcessingRunView.vue create mode 100644 docs/project/requirements/M012-booking-email-confirmation-e2e-v01.md create mode 100644 server/src/main/java/cn/nianxx/thhotel/workflows/reservation/common/result/ReservationBookingEmailIntakeResult.java create mode 100644 server/src/main/java/cn/nianxx/thhotel/workflows/reservation/common/result/ReservationBookingEmailIntakeWarningResult.java create mode 100644 server/src/main/java/cn/nianxx/thhotel/workflows/reservation/control/ReservationBookingEmailIntakeController.java create mode 100644 server/src/main/java/cn/nianxx/thhotel/workflows/reservation/service/ReservationBookingEmailIntakeService.java create mode 100644 server/src/main/java/cn/nianxx/thhotel/workflows/reservation/service/impl/ReservationBookingCatalog.java create mode 100644 server/src/main/java/cn/nianxx/thhotel/workflows/reservation/service/impl/ReservationBookingEmailIntakeServiceImpl.java create mode 100644 server/src/main/java/cn/nianxx/thhotel/workflows/reservation/service/impl/ReservationBookingEmailParser.java create mode 100644 server/src/main/resources/reservation-booking/catalog/booking-catalog-v20260808.json create mode 100644 server/src/test/java/cn/nianxx/thhotel/workflows/reservation/control/ReservationBookingEmailIntakeControllerTest.java create mode 100644 server/src/test/java/cn/nianxx/thhotel/workflows/reservation/control/ReservationBookingEmailRealSampleAcceptanceTest.java create mode 100644 server/src/test/java/cn/nianxx/thhotel/workflows/reservation/service/impl/ReservationBookingEmailParserTest.java diff --git a/client/src/components/local/LocalEditableField.vue b/client/src/components/local/LocalEditableField.vue new file mode 100644 index 0000000..e196cb0 --- /dev/null +++ b/client/src/components/local/LocalEditableField.vue @@ -0,0 +1,149 @@ +