@topy-ai/maggie 0.7.38 → 0.7.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README-zh-TW.md +55 -4
  2. package/README.md +65 -7
  3. package/bin/maggie.js +10 -2
  4. package/bundled-contracts/maggie-design/css-utility-evidence-v1.schema.json +10 -0
  5. package/bundled-contracts/maggie-design/dashboard-surface-v1.schema.json +11 -0
  6. package/bundled-contracts/maggie-design/progressive-enhancement-v1.schema.json +12 -0
  7. package/bundled-contracts/maggie-design/sample-surface-v1.schema.json +13 -0
  8. package/bundled-contracts/maggie-seo/privacy-origin-evidence-v1.schema.json +11 -0
  9. package/bundled-contracts/maggiedash/booking-access-v1.json +5 -4
  10. package/bundled-contracts/maggiedash/booking-customer-surface-v1.json +12 -1
  11. package/bundled-contracts/maggiedash/booking-email-templates-v1.json +2 -0
  12. package/bundled-contracts/maggiedash/booking-host-adapter-v1.json +14 -2
  13. package/bundled-contracts/maggiedash/booking-runtime.v1.json +41 -0
  14. package/bundled-contracts/maggiedash/execution-board.json +526 -26
  15. package/bundled-contracts/maggiedash/host-capabilities-v1.schema.json +10 -0
  16. package/bundled-contracts/maggiedash/site-structure-v1.schema.json +13 -0
  17. package/bundled-references/maggiedash-booking/ARCHITECTURE.md +218 -0
  18. package/bundled-references/maggiedash-booking/CURRENT-STATE.md +92 -0
  19. package/bundled-references/maggiedash-booking/DATA-FLOW.md +143 -0
  20. package/bundled-references/maggiedash-booking/DATA-MODEL.md +367 -0
  21. package/bundled-references/maggiedash-booking/DECISIONS.md +94 -0
  22. package/bundled-references/maggiedash-booking/EXECUTION-BOARD.json +2387 -0
  23. package/bundled-references/maggiedash-booking/HOST-ADAPTER.md +314 -0
  24. package/bundled-references/maggiedash-booking/ORAWELLNESS-INTEGRATION-AUDIT.md +227 -0
  25. package/bundled-references/maggiedash-booking/PAYMENT-GATEWAY.md +267 -0
  26. package/bundled-references/maggiedash-booking/PRD.md +228 -0
  27. package/bundled-references/maggiedash-booking/PROGRESS.md +2434 -0
  28. package/bundled-references/maggiedash-booking/QA-TEST-PLAN.md +235 -0
  29. package/bundled-references/maggiedash-booking/README.md +271 -0
  30. package/bundled-references/maggiedash-booking/RUNTIME-OPERATIONS.md +152 -0
  31. package/bundled-references/maggiedash-booking/SECURITY-COMPLIANCE.md +158 -0
  32. package/bundled-references/maggiedash-booking/SKILLS-AND-CLI.md +542 -0
  33. package/bundled-references/maggiedash-booking/STRIPE-INTEGRATION.md +129 -0
  34. package/bundled-references/maggiedash-booking/TASK-RUNBOOK.md +107 -0
  35. package/bundled-references/maggiedash-booking/TASKS.md +137 -0
  36. package/bundled-references/maggiedash-booking/USER-JOURNEYS.md +224 -0
  37. package/bundled-references/maggiedash-booking/diagrams/booking-dfd.excalidraw +1 -0
  38. package/bundled-references/maggiedash-booking/diagrams/booking-dfd.mmd +16 -0
  39. package/bundled-references/maggiedash-booking/diagrams/booking-dfd.png +0 -0
  40. package/bundled-references/maggiedash-booking/diagrams/booking-dfd.svg +1 -0
  41. package/bundled-references/maggiedash-booking/diagrams/booking-state-machine.mmd +19 -0
  42. package/bundled-references/maggiedash-booking/diagrams/booking-state-machine.png +0 -0
  43. package/bundled-references/maggiedash-booking/diagrams/booking-state-machine.svg +1 -0
  44. package/bundled-references/maggiedash-booking/diagrams/manager-journey.excalidraw +1 -0
  45. package/bundled-references/maggiedash-booking/diagrams/manager-journey.mmd +11 -0
  46. package/bundled-references/maggiedash-booking/diagrams/manager-journey.png +0 -0
  47. package/bundled-references/maggiedash-booking/diagrams/manager-journey.svg +1 -0
  48. package/bundled-references/maggiedash-booking/diagrams/payment-sequence.mmd +20 -0
  49. package/bundled-references/maggiedash-booking/diagrams/payment-sequence.png +0 -0
  50. package/bundled-references/maggiedash-booking/diagrams/payment-sequence.svg +1 -0
  51. package/bundled-references/maggiedash-booking/diagrams/system-context.excalidraw +1 -0
  52. package/bundled-references/maggiedash-booking/diagrams/system-context.mmd +10 -0
  53. package/bundled-references/maggiedash-booking/diagrams/system-context.png +0 -0
  54. package/bundled-references/maggiedash-booking/diagrams/system-context.svg +1 -0
  55. package/bundled-skills/maggie-blog-bootstrap/SKILL.md +16 -0
  56. package/bundled-skills/maggie-booking/SKILL.md +97 -18
  57. package/bundled-skills/maggie-design/SKILL.md +35 -0
  58. package/bundled-skills/maggie-seo-geo/SKILL.md +12 -0
  59. package/bundled-skills/maggie-service-booking/SKILL.md +14 -0
  60. package/bundled-tools/clis/maggie_booking.py +161 -26
  61. package/bundled-tools/clis/maggie_contracts.py +282 -0
  62. package/bundled-tools/clis/maggie_dash.py +22 -6
  63. package/bundled-tools/clis/maggie_design.py +29 -12
  64. package/bundled-tools/clis/maggie_service_booking.py +50 -1
  65. package/bundled-tools/clis/site_audit.py +49 -0
  66. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ graph LR
2
+ Customer["Customer"] --> UI["Booking UI"]
3
+ Manager["Store manager"] --> Dash["Booking dashboard"]
4
+ UI --> API["Booking API"]
5
+ Dash --> API
6
+ API --> Avail["Availability engine"]
7
+ Avail --> Rules["Schedule and resource rules"]
8
+ API --> Hold["Hold and allocation"]
9
+ Hold --> DB["Booking database"]
10
+ API --> Pay["Payment gateway port"]
11
+ Pay --> Stripe["Stripe adapter"]
12
+ Stripe --> Hook["Verified webhook"]
13
+ Hook --> Pay
14
+ DB --> Outbox["Event outbox"]
15
+ Outbox --> Notify["Notifications"]
16
+ Outbox --> Reports["Reports and audit"]
@@ -0,0 +1 @@
1
+ <svg id="booking-dfd" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" style="max-width: 1641.7421875px;" viewBox="0 0 1641.7421875 362.3500061035156" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#booking-dfd{font-family:Helvetica,"Liberation Sans",Arial,"Hiragino Kaku Gothic ProN","Noto Sans CJK JP","Microsoft YaHei","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#booking-dfd .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#booking-dfd .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#booking-dfd .error-icon{fill:#552222;}#booking-dfd .error-text{fill:#552222;stroke:#552222;}#booking-dfd .edge-thickness-normal{stroke-width:1px;}#booking-dfd .edge-thickness-thick{stroke-width:3.5px;}#booking-dfd .edge-pattern-solid{stroke-dasharray:0;}#booking-dfd .edge-thickness-invisible{stroke-width:0;fill:none;}#booking-dfd .edge-pattern-dashed{stroke-dasharray:3;}#booking-dfd .edge-pattern-dotted{stroke-dasharray:2;}#booking-dfd .marker{fill:#666;stroke:#666;}#booking-dfd .marker.cross{stroke:#666;}#booking-dfd svg{font-family:Helvetica,"Liberation Sans",Arial,"Hiragino Kaku Gothic ProN","Noto Sans CJK JP","Microsoft YaHei","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:16px;}#booking-dfd p{margin:0;}#booking-dfd .label{font-family:Helvetica,"Liberation Sans",Arial,"Hiragino Kaku Gothic ProN","Noto Sans CJK JP","Microsoft YaHei","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;color:#000000;}#booking-dfd .cluster-label text{fill:#333;}#booking-dfd .cluster-label span{color:#333;}#booking-dfd .cluster-label span p{background-color:transparent;}#booking-dfd .label text,#booking-dfd span{fill:#000000;color:#000000;}#booking-dfd .node rect,#booking-dfd .node circle,#booking-dfd .node ellipse,#booking-dfd .node polygon,#booking-dfd .node path{fill:#eee;stroke:#999;stroke-width:1px;}#booking-dfd .rough-node .label text,#booking-dfd .node .label text,#booking-dfd .image-shape .label,#booking-dfd .icon-shape .label{text-anchor:middle;}#booking-dfd .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#booking-dfd .rough-node .label,#booking-dfd .node .label,#booking-dfd .image-shape .label,#booking-dfd .icon-shape .label{text-align:center;}#booking-dfd .node.clickable{cursor:pointer;}#booking-dfd .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#booking-dfd .arrowheadPath{fill:#333333;}#booking-dfd .edgePath .path{stroke:#666;stroke-width:2.0px;}#booking-dfd .flowchart-link{stroke:#666;fill:none;}#booking-dfd .edgeLabel{background-color:white;text-align:center;}#booking-dfd .edgeLabel p{background-color:white;}#booking-dfd .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#booking-dfd .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#booking-dfd .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#booking-dfd .cluster text{fill:#333;}#booking-dfd .cluster span{color:#333;}#booking-dfd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Helvetica,"Liberation Sans",Arial,"Hiragino Kaku Gothic ProN","Noto Sans CJK JP","Microsoft YaHei","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#booking-dfd .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#booking-dfd rect.text{fill:none;stroke-width:0;}#booking-dfd .icon-shape,#booking-dfd .image-shape{background-color:white;text-align:center;}#booking-dfd .icon-shape p,#booking-dfd .image-shape p{background-color:white;padding:2px;}#booking-dfd .icon-shape rect,#booking-dfd .image-shape rect{opacity:0.5;background-color:white;fill:white;}#booking-dfd .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#booking-dfd .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#booking-dfd :root{--mermaid-font-family:Helvetica,"Liberation Sans",Arial,"Hiragino Kaku Gothic ProN","Noto Sans CJK JP","Microsoft YaHei","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;}</style><g><marker id="booking-dfd_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="booking-dfd_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="booking-dfd_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle></marker><marker id="booking-dfd_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle></marker><marker id="booking-dfd_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"></path></marker><marker id="booking-dfd_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M156.27,126.85L163.477,126.85C170.685,126.85,185.1,126.85,200.775,126.85C216.451,126.85,233.385,126.85,241.853,126.85L250.32,126.85" id="L_Customer_UI_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Customer_UI_0" data-points="W3sieCI6MTU2LjI2OTUzMTI1LCJ5IjoxMjYuODQ5OTk4NDc0MTIxMX0seyJ4IjoxOTkuNTE1NjI1LCJ5IjoxMjYuODQ5OTk4NDc0MTIxMX0seyJ4IjoyNTQuMzIwMzEyNSwieSI6MTI2Ljg0OTk5ODQ3NDEyMTF9XQ==" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M174.516,223.85L178.682,223.85C182.849,223.85,191.182,223.85,198.849,223.85C206.516,223.85,213.516,223.85,217.016,223.85L220.516,223.85" id="L_Manager_Dash_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Manager_Dash_0" data-points="W3sieCI6MTc0LjUxNTYyNSwieSI6MjIzLjg0OTk5ODQ3NDEyMTF9LHsieCI6MTk5LjUxNTYyNSwieSI6MjIzLjg0OTk5ODQ3NDEyMTF9LHsieCI6MjI0LjUxNTYyNSwieSI6MjIzLjg0OTk5ODQ3NDEyMTF9XQ==" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M392.602,126.85L401.736,126.85C410.87,126.85,429.138,126.85,446.144,130.722C463.15,134.595,478.894,142.34,486.766,146.212L494.639,150.084" id="L_UI_API_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_UI_API_0" data-points="W3sieCI6MzkyLjYwMTU2MjUsInkiOjEyNi44NDk5OTg0NzQxMjExfSx7IngiOjQ0Ny40MDYyNSwieSI6MTI2Ljg0OTk5ODQ3NDEyMTF9LHsieCI6NDk4LjIyNzc3MDYxODU1NjcsInkiOjE1MS44NDk5OTg0NzQxMjExfV0=" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M422.406,223.85L426.573,223.85C430.74,223.85,439.073,223.85,451.112,219.978C463.15,216.105,478.894,208.36,486.766,204.488L494.639,200.616" id="L_Dash_API_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Dash_API_0" data-points="W3sieCI6NDIyLjQwNjI1LCJ5IjoyMjMuODQ5OTk4NDc0MTIxMX0seyJ4Ijo0NDcuNDA2MjUsInkiOjIyMy44NDk5OTg0NzQxMjExfSx7IngiOjQ5OC4yMjc3NzA2MTg1NTY3LCJ5IjoxOTguODQ5OTk4NDc0MTIxMX1d" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M563.156,151.85L576.729,133.258C590.302,114.667,617.448,77.483,637.176,58.892C656.905,40.3,669.216,40.3,675.372,40.3L681.527,40.3" id="L_API_Avail_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_API_Avail_0" data-points="W3sieCI6NTYzLjE1NjI2MTY2NjcxMDEsInkiOjE1MS44NDk5OTg0NzQxMjExfSx7IngiOjY0NC41OTM3NSwieSI6NDAuMjk5OTk5MjM3MDYwNTV9LHsieCI6Njg1LjUyNzM0Mzc1LCJ5Ijo0MC4yOTk5OTkyMzcwNjA1NX1d" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M873.418,40.3L880.24,40.3C887.063,40.3,900.707,40.3,911.029,40.3C921.352,40.3,928.352,40.3,931.852,40.3L935.352,40.3" id="L_Avail_Rules_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Avail_Rules_0" data-points="W3sieCI6ODczLjQxNzk2ODc1LCJ5Ijo0MC4yOTk5OTkyMzcwNjA1NX0seyJ4Ijo5MTQuMzUxNTYyNSwieSI6NDAuMjk5OTk5MjM3MDYwNTV9LHsieCI6OTM5LjM1MTU2MjUsInkiOjQwLjI5OTk5OTIzNzA2MDU1fV0=" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M567.654,198.85L580.477,212.767C593.3,226.683,618.947,254.517,637.242,268.433C655.538,282.35,666.482,282.35,671.954,282.35L677.426,282.35" id="L_API_Hold_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_API_Hold_0" data-points="W3sieCI6NTY3LjY1Mzc2NzUyMzM2NDUsInkiOjE5OC44NDk5OTg0NzQxMjExfSx7IngiOjY0NC41OTM3NSwieSI6MjgyLjM0OTk5ODQ3NDEyMTF9LHsieCI6NjgxLjQyNTc4MTI1LCJ5IjoyODIuMzQ5OTk4NDc0MTIxMX1d" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M877.52,282.35L883.658,282.35C889.797,282.35,902.074,282.35,914.75,282.35C927.426,282.35,940.5,282.35,947.037,282.35L953.574,282.35" id="L_Hold_DB_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Hold_DB_0" data-points="W3sieCI6ODc3LjUxOTUzMTI1LCJ5IjoyODIuMzQ5OTk4NDc0MTIxMX0seyJ4Ijo5MTQuMzUxNTYyNSwieSI6MjgyLjM0OTk5ODQ3NDEyMTF9LHsieCI6OTU3LjU3NDIxODc1LCJ5IjoyODIuMzQ5OTk4NDc0MTIxMX1d" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M619.594,175.35L623.76,175.35C627.927,175.35,636.26,175.35,643.927,175.35C651.594,175.35,658.594,175.35,662.094,175.35L665.594,175.35" id="L_API_Pay_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_API_Pay_0" data-points="W3sieCI6NjE5LjU5Mzc1LCJ5IjoxNzUuMzQ5OTk4NDc0MTIxMX0seyJ4Ijo2NDQuNTkzNzUsInkiOjE3NS4zNDk5OTg0NzQxMjExfSx7IngiOjY2OS41OTM3NSwieSI6MTc1LjM0OTk5ODQ3NDEyMTF9XQ==" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M887.837,151.85L892.256,150.892C896.675,149.933,905.513,148.017,918.722,147.058C931.931,146.1,949.51,146.1,958.3,146.1L967.09,146.1" id="L_Pay_Stripe_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Pay_Stripe_0" data-points="W3sieCI6ODg3LjgzNjkwNTcxNTgxMiwieSI6MTUxLjg0OTk5ODQ3NDEyMTF9LHsieCI6OTE0LjM1MTU2MjUsInkiOjE0Ni4wOTk5OTg0NzQxMjExfSx7IngiOjk3MS4wODk4NDM3NSwieSI6MTQ2LjA5OTk5ODQ3NDEyMTF9XQ==" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M1132.27,146.1L1141.726,146.1C1151.182,146.1,1170.095,146.1,1183.072,146.984C1196.048,147.869,1203.088,149.637,1206.608,150.522L1210.128,151.406" id="L_Stripe_Hook_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Stripe_Hook_0" data-points="W3sieCI6MTEzMi4yNjk1MzEyNSwieSI6MTQ2LjA5OTk5ODQ3NDEyMTF9LHsieCI6MTE4OS4wMDc4MTI1LCJ5IjoxNDYuMDk5OTk4NDc0MTIxMX0seyJ4IjoxMjE0LjAwNzgxMjUsInkiOjE1Mi4zODA0MDI0MDYwODM0fV0=" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M1214.008,198.32L1209.841,199.366C1205.674,200.413,1197.341,202.507,1170.286,203.553C1143.232,204.6,1097.456,204.6,1051.68,204.6C1005.904,204.6,960.128,204.6,933.472,203.783C906.816,202.966,899.281,201.332,895.514,200.515L891.746,199.698" id="L_Hook_Pay_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Hook_Pay_0" data-points="W3sieCI6MTIxNC4wMDc4MTI1LCJ5IjoxOTguMzE5NTk0NTQyMTU4OH0seyJ4IjoxMTg5LjAwNzgxMjUsInkiOjIwNC41OTk5OTg0NzQxMjExfSx7IngiOjEwNTEuNjc5Njg3NSwieSI6MjA0LjU5OTk5ODQ3NDEyMTF9LHsieCI6OTE0LjM1MTU2MjUsInkiOjIwNC41OTk5OTg0NzQxMjExfSx7IngiOjg4Ny44MzY5MDU3MTU4MTIsInkiOjE5OC44NDk5OTg0NzQxMjExfV0=" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M1145.785,282.35L1152.989,282.35C1160.193,282.35,1174.6,282.35,1187.759,282.35C1200.918,282.35,1212.828,282.35,1218.783,282.35L1224.738,282.35" id="L_DB_Outbox_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_DB_Outbox_0" data-points="W3sieCI6MTE0NS43ODUxNTYyNSwieSI6MjgyLjM0OTk5ODQ3NDEyMTF9LHsieCI6MTE4OS4wMDc4MTI1LCJ5IjoyODIuMzQ5OTk4NDc0MTIxMX0seyJ4IjoxMjI4LjczODI4MTI1LCJ5IjoyODIuMzQ5OTk4NDc0MTIxMX1d" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M1361.858,258.85L1371.861,254.683C1381.863,250.517,1401.869,242.183,1418.681,238.017C1435.493,233.85,1449.112,233.85,1455.921,233.85L1462.73,233.85" id="L_Outbox_Notify_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Outbox_Notify_0" data-points="W3sieCI6MTM2MS44NTc2ODM2MzQwMjA1LCJ5IjoyNTguODQ5OTk4NDc0MTIxMX0seyJ4IjoxNDIxLjg3NSwieSI6MjMzLjg0OTk5ODQ3NDEyMTF9LHsieCI6MTQ2Ni43MzA0Njg3NSwieSI6MjMzLjg0OTk5ODQ3NDEyMTF9XQ==" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path><path d="M1361.858,305.85L1371.861,310.017C1381.863,314.183,1401.869,322.517,1415.372,326.683C1428.875,330.85,1435.875,330.85,1439.375,330.85L1442.875,330.85" id="L_Outbox_Reports_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Outbox_Reports_0" data-points="W3sieCI6MTM2MS44NTc2ODM2MzQwMjA1LCJ5IjozMDUuODQ5OTk4NDc0MTIxMX0seyJ4IjoxNDIxLjg3NSwieSI6MzMwLjg0OTk5ODQ3NDEyMTF9LHsieCI6MTQ0Ni44NzUsInkiOjMzMC44NDk5OTg0NzQxMjExfV0=" marker-end="url(#booking-dfd_flowchart-v2-pointEnd)"></path></g><g class="edgeLabels"><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_Customer_UI_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Manager_Dash_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_UI_API_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Dash_API_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_API_Avail_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Avail_Rules_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_API_Hold_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Hold_DB_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_API_Pay_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Pay_Stripe_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Stripe_Hook_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Hook_Pay_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_DB_Outbox_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Outbox_Notify_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g><g class="edgeLabel"><g class="label" data-id="L_Outbox_Reports_0" transform="translate(0, 0)"><text y="-10.1"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"></tspan></text></g></g></g><g class="nodes"><g class="node default" id="flowchart-Customer-0" transform="translate(91.2578125, 126.8499984741211)"><rect class="basic label-container" style="" x="-65.01171875" y="-23.5" width="130.0234375" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Customer</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-UI-1" transform="translate(323.4609375, 126.8499984741211)"><rect class="basic label-container" style="" x="-69.140625" y="-23.5" width="138.28125" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Booking</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> UI</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Manager-2" transform="translate(91.2578125, 223.8499984741211)"><rect class="basic label-container" style="" x="-83.2578125" y="-23.5" width="166.515625" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Store</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> manager</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Dash-3" transform="translate(323.4609375, 223.8499984741211)"><rect class="basic label-container" style="" x="-98.9453125" y="-23.5" width="197.890625" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Booking</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> dashboard</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-API-5" transform="translate(546, 175.3499984741211)"><rect class="basic label-container" style="" x="-73.59375" y="-23.5" width="147.1875" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Booking</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> API</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Avail-9" transform="translate(779.47265625, 40.29999923706055)"><rect class="basic label-container" style="" x="-93.9453125" y="-23.5" width="187.890625" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Availability</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> engine</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Rules-11" transform="translate(1051.6796875, 40.29999923706055)"><rect class="basic label-container" style="" x="-112.328125" y="-32.29999923706055" width="224.65625" height="64.5999984741211"></rect><g class="label" style="" transform="translate(0, -17.299999237060547)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Schedule</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> and</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> resource</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rules</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Hold-13" transform="translate(779.47265625, 282.3499984741211)"><rect class="basic label-container" style="" x="-98.046875" y="-23.5" width="196.09375" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Hold</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> and</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> allocation</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-DB-15" transform="translate(1051.6796875, 282.3499984741211)"><rect class="basic label-container" style="" x="-94.10546875" y="-23.5" width="188.2109375" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Booking</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> database</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Pay-17" transform="translate(779.47265625, 175.3499984741211)"><rect class="basic label-container" style="" x="-109.87890625" y="-23.5" width="219.7578125" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Payment</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gateway</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> port</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Stripe-19" transform="translate(1051.6796875, 146.0999984741211)"><rect class="basic label-container" style="" x="-80.58984375" y="-23.5" width="161.1796875" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Stripe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> adapter</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Hook-21" transform="translate(1305.44140625, 175.3499984741211)"><rect class="basic label-container" style="" x="-91.43359375" y="-23.5" width="182.8671875" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Verified</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> webhook</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Outbox-25" transform="translate(1305.44140625, 282.3499984741211)"><rect class="basic label-container" style="" x="-76.703125" y="-23.5" width="153.40625" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Event</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> outbox</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Notify-27" transform="translate(1540.30859375, 233.8499984741211)"><rect class="basic label-container" style="" x="-73.578125" y="-23.5" width="147.15625" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Notifications</tspan></tspan></text></g></g></g><g class="node default" id="flowchart-Reports-29" transform="translate(1540.30859375, 330.8499984741211)"><rect class="basic label-container" style="" x="-93.43359375" y="-23.5" width="186.8671875" height="47"></rect><g class="label" style="" transform="translate(0, -8.5)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Reports</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> and</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> audit</tspan></tspan></text></g></g></g></g></g></g></svg>
@@ -0,0 +1,19 @@
1
+ stateDiagram-v2
2
+ [*] --> draft
3
+ draft --> held
4
+ held --> pending_payment
5
+ pending_payment --> confirmed
6
+ pending_payment --> payment_failed
7
+ payment_failed --> held
8
+ held --> expired
9
+ held --> cancelled
10
+ confirmed --> checked_in
11
+ checked_in --> in_progress
12
+ in_progress --> completed
13
+ confirmed --> cancelled
14
+ confirmed --> no_show
15
+ confirmed --> confirmed: reschedule event
16
+ cancelled --> [*]
17
+ expired --> [*]
18
+ no_show --> [*]
19
+ completed --> [*]