Inventory & Portal
", "/api/government-forms", "/api/government-filings", "/api/tin-compliance", "/api/ewt-payees", "/api/ewt-transactions"); } The hiring funnel, including the two genuinely public careers endpoints.
| Controllers | 14 |
| Endpoints | 86 |
| Tables | 22 |
| Screens | 17 |
| API reference | /api/ — group inventory-and-portal |
| OpenAPI spec | /openapi/inventory-and-portal.json |
URL prefixes
Endpoints belong to this module by URL, exactly as the OpenAPI group defines it in backend/src/main/java/com/motorph/payroll/config/OpenApiConfiguration.java.
/api/inventory/**/api/portal/**
Controllers
| Controller | Base path | Endpoints | GET | POST | PUT | PATCH | DELETE |
|---|---|---|---|---|---|---|---|
| BarcodeController | /api/inventory | 1 | 1 | — | — | — | — |
| InventoryController | /api/inventory | 38 | 18 | 7 | 5 | 3 | 5 |
| InventoryReportController | /api/inventory/reports | 3 | 3 | — | — | — | — |
| ItemPriceController | — | 6 | 3 | 1 | 1 | — | 1 |
| OrderController | /api/inventory/orders | 6 | 2 | 2 | 1 | — | 1 |
| PortalAdminController | /api/portal/admin | 3 | 2 | — | 1 | — | — |
| PortalAuthController | /api/portal/auth | 2 | — | 2 | — | — | — |
| PortalCatalogController | /api/portal/catalog | 3 | 3 | — | — | — | — |
| PortalOrderController | /api/portal/orders | 4 | 2 | 1 | — | — | 1 |
| PortalProfileController | /api/portal/profile | 3 | 1 | 1 | — | 1 | — |
| ProfitController | /api/inventory/profit | 3 | 2 | — | 1 | — | — |
| SerialLotController | /api/inventory | 5 | 2 | 2 | — | 1 | — |
| StoreController | /api/inventory/stores | 7 | 3 | 1 | 2 | — | 1 |
| WarehouseTransferController | /api/inventory/transfers | 2 | 1 | 1 | — | — | — |
Across the module: 43 GET, 18 POST, 11 PUT, 5 PATCH, 9 DELETE.
Tables
Everything this module's controllers can reach through a repository, including through a shared service — so this is the upper bound of what the module touches, not the set of tables it owns. A table appearing under two modules means two modules can read it.
| Entity | Table | Columns | Tenant-scoped |
|---|---|---|---|
| CustomerOrder | customer_order | 7 | Yes |
| Employee | employee | 24 | Yes |
| InventoryItem | inventory_item | 9 | Yes |
| InventoryLot | inventory_lot | 7 | Yes |
| InventoryOrder | inventory_order | 7 | Yes |
| InventoryStock | inventory_stock | 2 | Yes |
| ItemCategory | item_category | 3 | Yes |
| ItemPrice | item_price | 11 | Yes |
| ItemPriceHistory | item_price_history | 5 | Yes |
| ItemSerial | item_serial | 5 | Yes |
| Notification | notifications | 5 | Yes |
| PortalUser | portal_user | 8 | — |
| PurchaseReceiving | purchase_receiving | 6 | Yes |
| ShipmentTracking | shipment_tracking | 6 | Yes |
| StockTransaction | stock_transaction | 8 | Yes |
| Store | store | 9 | Yes |
| StoreInventory | store_inventory | 3 | Yes |
| Supplier | supplier | 7 | Yes |
| User | users | 11 | — |
| Warehouse | warehouse | 4 | Yes |
| WarehouseLocation | warehouse_location | 7 | Yes |
| WarehouseTransfer | warehouse_transfer | 5 | Yes |
Screens
Frontend routes gated by a permission this module's endpoints also require — the link between a page and its API is the permission string, not the URL.
| Route | Component | Requires |
|---|---|---|
/inventory/dashboard | InventoryDashboard | inventory.dashboard.view |
/inventory/items | InventoryItems | inventory.items.view |
/inventory/lots | InventoryLots | inventory.serials.view |
/inventory/orders | InventoryOrders | inventory.orders.view |
/inventory/portal-orders | PortalAdmin | inventory.portal.manage |
/inventory/pricing | InventoryPricing | inventory.prices.view |
/inventory/profit | InventoryProfit | inventory.profit.view |
/inventory/receiving | InventoryReceiving | inventory.receiving.view |
/inventory/reports | InventoryReports | inventory.reports.view |
/inventory/scan | InventoryScanStation | inventory.stock.manage |
/inventory/serials | InventorySerials | inventory.serials.view |
/inventory/stock | InventoryStock | inventory.stock.view |
/inventory/stores | InventoryStores | inventory.stores.view |
/inventory/suppliers | InventorySuppliers | inventory.suppliers.view |
/inventory/transactions | InventoryTransactions | inventory.stock.view |
/inventory/transfers | InventoryTransfers | inventory.transfers.view |
/inventory/warehouses | InventoryWarehouses | inventory.locations.view |
Unauthenticated endpoints
2 endpoint(s) in this module are permitted without a token by PUBLIC_ENDPOINTS in backend/src/main/java/com/motorph/payroll/config/SecurityConfiguration.java.
| Method | Path |
|---|---|
POST | /api/portal/auth/register |
POST | /api/portal/auth/login |
This page is rebuilt from the source on every docs build by docs-site/scripts/gen-code-wiki.mjs. Editing it has no effect — change the code, or, if what you want to say is prose, write it in docs/.