# FruitBank.Common Shared domain library for the FruitBank nopCommerce plugin. Contains entities, DTOs, interfaces, measurement helpers, SignalR tags, and constants for fruit & vegetable wholesale operations. ## Folder Structure | Folder | Purpose | |---|---| | [`Databases/`](Databases/README.md) | Local in-memory database abstraction for offline/cached data | | [`Dtos/`](Dtos/README.md) | Binary-serializable DTOs for Order, OrderItem, Product, StockQuantityHistory | | [`Entities/`](Entities/README.md) | Domain entities: Shipping, Partner, measurement pallets, inventory | | [`Enums/`](Enums/README.md) | MeasuringStatus and DocumentType enums | | [`Helpers/`](Helpers/README.md) | Measurement aggregation utilities | | [`Interfaces/`](Interfaces/README.md) | SignalR endpoint contracts, measurement traits, entity interfaces | | [`Loggers/`](Loggers/README.md) | SignalR client log writer | | [`Models/`](Models/README.md) | Authentication state, measurement view models | | [`Services/`](Services/README.md) | Measurement service base, credential persistence | | [`SignalRs/`](SignalRs/README.md) | SignalR method tags (numeric constants) | ## Key Files (Root) - **`FruitBankConstClient.cs`** — Global constants: BaseUrl, SignalR hubs, database table names, email templates, system settings. - **`DocumentType.cs`** — Enum: ShippingDocument, OrderConfirmation, Invoice. ## Key Domain Concepts - **Shipping = INBOUND** (supplier → warehouse), **Order = OUTBOUND** (warehouse → customer) - **"Pallet" = measurement record**, always created even for non-measurable products - **NetWeight = GrossWeight − PalletWeight − (TrayQuantity × TareWeight)** - See [`docs/GLOSSARY.md`](../docs/GLOSSARY.md) for full terminology --- > **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.