# Nop.Plugin.Misc.AIPlugin (FruitBank plugin) documentation

Topic documentation for the FruitBank-specific NopCommerce plugin (Layer 3 — consumer).

## Reference docs (flat)

- [`AI_SERVICES.md`](AI_SERVICES.md) — AI-related service integrations
- [`DATA_LAYER.md`](DATA_LAYER.md) — Data access specifics for this plugin
- [`SCHEMA.md`](SCHEMA.md) — Database schema (Toon format — LLM-optimized)
- [`DOMAIN_MODEL.md`](DOMAIN_MODEL.md) — Business domain behavior
- [`MEASUREMENT.md`](MEASUREMENT.md) — Weight measurement logic (NetWeight formula, MeasuringStatus lifecycle)

## Topic folders

- [`SIGNALR/`](SIGNALR/README.md) — SignalR endpoints exposed by this plugin (project-specific variant)
- [`PREORDER/`](PREORDER/README.md) — Customer pre-order workflow: advance orders converted to real orders on incoming stock (+ `PREORDER_ISSUES.md` / `PREORDER_TODO.md`)

## Navigation

Per the AI Agent Core Protocol (folder navigation rule), start from this README when browsing `docs/`. Single-file reference docs remain flat; project-specific variants of framework topics (like SIGNALR) live in named subfolders.

## Critical reminders (inherited from domain)

- **`MeasuringStatus.Finnished`** is an intentional typo — do NOT "fix" the spelling (database-level value).
- **Weight formula**: `NetWeight = GrossWeight - PalletWeight - (TrayQuantity * TareWeight)`.
- **MeasuringStatus lifecycle**: NotStarted(0) → Started(10) → Finnished(20) → Audited(30).

## See also

- **Parent framework** (Mango.Nop.Core): `../../../Libraries/Mango.Nop.Core/docs/README.md`
- **Client-side app**: `../../../../../FruitBankHybridApp/docs/README.md`
- **Host (nopCommerce deployment)**: `../../../../../FruitBank/` (see `.github/copilot-instructions.md` for scope)
