restaurant/docs/index.md
Padreug 42a8b08a5b docs: Obsidian-style vault under docs/
Add a navigable Obsidian vault as the project's first-class
technical documentation. Notes cross-reference with [[wikilinks]];
docs/index.md is the Map of Content.

New notes:
  index.md             MOC, entry point
  architecture.md      what the extension owns vs what lives outside
  data-model.md        entity-by-entity schema reference
  menu-tree.md         the arbitrary-depth tree concept
  order-flow.md        state machine + invoice listener + print
  nostr-layer.md       kinds 0/30402/5/1059, signing, t-tags
  api-reference.md     endpoint catalog by audience
  cms.md               Vue 3 + Quasar 2 UMD conventions, q-tree
  webapp-integration.md  multi-restaurant cart pattern + atomicity
  glossary.md          domain terms

Existing notes (kept as-is):
  adr-0001-menu-tree.md  the storage choice rationale
  design-conversation.md trimmed transcript

README.md adds a Documentation section pointing at docs/index.md
with the headline note list. Each note links to ~3-5 others; the
vault forms a connected graph.

A project-level memory rule (saved outside the repo) commits us to
keeping these docs in sync as the code evolves: any commit that
materially changes schema, API, order flow, Nostr surface, CMS
conventions, or webapp integration must update the relevant note(s)
in the same commit.
2026-05-09 07:11:06 +02:00

50 lines
1.8 KiB
Markdown

# Restaurant extension — docs
Map of Content for the restaurant LNbits extension.
> Treat this folder as an Obsidian vault: notes use `[[wikilinks]]` to
> cross-reference. Open the folder in Obsidian (or any markdown editor
> that resolves bare-name links) for the full graph.
## Start here
- [[architecture]] — what the extension is and how it sits inside
LNbits, alongside the customer webapp and Nostr.
- [[glossary]] — domain terms used throughout the docs.
## Concepts
- [[data-model]] — every table, every relationship.
- [[menu-tree]] — the arbitrary-depth menu structure (capped at 4
levels), where items can attach to any node.
- [[order-flow]] — the order state machine, the invoice listener,
and the kitchen pipeline.
- [[nostr-layer]] — what we publish to Nostr (kind 0, kind 30402,
kind 5) and what we listen for (kind 1059, scaffolded).
## Surface
- [[api-reference]] — REST endpoints organized by audience
(public read, customer order placement, owner CRUD).
- [[cms]] — the operator UI: Vue 3 + Quasar 2 UMD conventions,
template structure, q-tree menu builder.
- [[webapp-integration]] — how the AIO webapp aggregates multiple
restaurants into a single cart and pays each one's invoice.
## Decisions
- [[adr-0001-menu-tree]] — why an adjacency list with materialized
path, not a closure table or `ltree`.
## Process
- [[design-conversation]] — trimmed transcript of the design
discussion that produced the initial scaffold. Keep for
rationale that didn't make it into commit messages.
## Maintenance
This vault is the project's first-class technical documentation.
Every commit that changes the surface listed in [[architecture]] or
the rules above must update the matching note(s) in the same commit.
Stale docs are worse than no docs.