Stammdaten
Stammdaten
Section titled “Stammdaten”141 endpoints in this module.
/bookings
Section titled “/bookings”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/bookings |
jwt |
BOOKINGS_READ |
— | List all bookings for tenant (optional status filter) |
| GET | /api/bookings/:id |
jwt |
BOOKINGS_READ |
— | Get booking by ID |
| POST | /api/bookings/check-out |
jwt |
BOOKINGS_WRITE |
— | Check out a tool manually (by toolId) |
| POST | /api/bookings/check-out/qr |
jwt |
BOOKINGS_WRITE |
— | Check out a tool by scanning its QR code |
| POST | /api/bookings/check-in/qr |
jwt |
BOOKINGS_WRITE |
— | Check in a tool by scanning its QR code |
| POST | /api/bookings/:id/check-in |
jwt |
BOOKINGS_WRITE |
— | Check in a tool manually (by bookingId) |
| GET | /api/bookings/tool/:toolId/active |
jwt |
BOOKINGS_READ |
— | Get active booking for a specific tool |
Source: apps/api/src/modules/stammdaten/booking.controller.ts
/branches
Section titled “/branches”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/branches |
jwt |
BRANCHES_READ |
— | List all branches for tenant |
| GET | /api/branches/:id |
jwt |
BRANCHES_READ |
— | Get branch by ID with locations |
| POST | /api/branches |
jwt |
BRANCHES_WRITE |
— | Create branch |
| PATCH | /api/branches/:id |
jwt |
BRANCHES_WRITE |
— | Update branch |
| DELETE | /api/branches/:id |
jwt |
BRANCHES_WRITE |
— | Delete branch |
Source: apps/api/src/modules/stammdaten/branch.controller.ts
/damage-categories
Section titled “/damage-categories”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/damage-categories |
jwt |
DAMAGES_READ |
— | List all damage categories for tenant |
| GET | /api/damage-categories/:id |
jwt |
DAMAGES_READ |
— | Get damage category by ID |
| POST | /api/damage-categories |
jwt |
DAMAGES_WRITE |
— | Create damage category |
| PATCH | /api/damage-categories/:id |
jwt |
DAMAGES_WRITE |
— | Update damage category |
| DELETE | /api/damage-categories/:id |
jwt |
DAMAGES_WRITE |
— | Delete damage category |
Source: apps/api/src/modules/stammdaten/damage-category.controller.ts
/damages
Section titled “/damages”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/damages |
jwt |
DAMAGES_READ |
— | List all damages for tenant (optional status/toolId filter, cursor pagination) |
| GET | /api/damages/:id |
jwt |
DAMAGES_READ |
— | Get damage by ID |
| POST | /api/damages |
jwt |
DAMAGES_WRITE |
— | Report a new damage (E-01: at least 1 photo required; E-02: auto-blocks tool on SEVERE/CRITICAL) |
| PATCH | /api/damages/:id |
jwt |
DAMAGES_WRITE |
— | Update damage (status transitions: REPORTED→IN_REPAIR→RESOLVED/TOTAL_LOSS) |
| DELETE | /api/damages/:id |
jwt |
DAMAGES_WRITE |
— | Delete damage record |
Source: apps/api/src/modules/stammdaten/damage.controller.ts
/inspection-records
Section titled “/inspection-records”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/inspection-records |
jwt |
MAINTENANCE_READ |
— | List all inspection records for tenant |
| GET | /api/inspection-records/:id |
jwt |
MAINTENANCE_READ |
— | Get inspection record by ID |
| POST | /api/inspection-records |
jwt |
MAINTENANCE_WRITE |
— | Create inspection record (E-07: auto-advances schedule nextDate, blocks tool on FAIL) |
| DELETE | /api/inspection-records/:id |
jwt |
MAINTENANCE_WRITE |
— | Delete inspection record |
Source: apps/api/src/modules/stammdaten/inspection-record.controller.ts
/inspection-schedules
Section titled “/inspection-schedules”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/inspection-schedules |
jwt |
MAINTENANCE_READ |
— | List all inspection schedules for tenant |
| GET | /api/inspection-schedules/overdue |
jwt |
MAINTENANCE_READ |
— | List overdue inspection schedules (E-02: abgelaufene Prüffrist) |
| GET | /api/inspection-schedules/:id |
jwt |
MAINTENANCE_READ |
— | Get inspection schedule by ID |
| POST | /api/inspection-schedules |
jwt |
MAINTENANCE_WRITE |
— | Create inspection schedule (E-06) |
| PATCH | /api/inspection-schedules/:id |
jwt |
MAINTENANCE_WRITE |
— | Update inspection schedule |
| DELETE | /api/inspection-schedules/:id |
jwt |
MAINTENANCE_WRITE |
— | Delete inspection schedule |
Source: apps/api/src/modules/stammdaten/inspection-schedule.controller.ts
/locations
Section titled “/locations”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/locations |
jwt |
BRANCHES_READ |
— | List all locations for tenant, optionally filtered by branch and type |
| GET | /api/locations/:id |
jwt |
BRANCHES_READ |
— | Get location by ID |
| POST | /api/locations |
jwt |
BRANCHES_WRITE |
— | Create location |
| PATCH | /api/locations/:id |
jwt |
BRANCHES_WRITE |
— | Update location |
| DELETE | /api/locations/:id |
jwt |
BRANCHES_WRITE |
— | Delete location |
Source: apps/api/src/modules/stammdaten/location.controller.ts
/notifications
Section titled “/notifications”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/notifications |
jwt |
NOTIFICATIONS_READ |
— | List notifications for tenant/user (E-08) |
| GET | /api/notifications/unread-count |
jwt |
NOTIFICATIONS_READ |
— | Get unread notification count |
| GET | /api/notifications/:id |
jwt |
NOTIFICATIONS_READ |
— | Get notification by ID |
| PATCH | /api/notifications/:id/read |
jwt |
NOTIFICATIONS_WRITE |
— | Mark notification as read |
| PATCH | /api/notifications/mark-all-read |
jwt |
NOTIFICATIONS_WRITE |
— | Mark all notifications as read for current user |
| DELETE | /api/notifications/:id |
jwt |
NOTIFICATIONS_WRITE |
— | Delete notification |
Source: apps/api/src/modules/stammdaten/notification.controller.ts
/purchase-requests
Section titled “/purchase-requests”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/purchase-requests |
jwt |
PROCUREMENT_READ |
— | List all purchase requests for tenant (optional status/priority filter) |
| GET | /api/purchase-requests/:id |
jwt |
PROCUREMENT_READ |
— | Get purchase request by ID |
| POST | /api/purchase-requests |
jwt |
PROCUREMENT_WRITE |
— | Create purchase request (F-02: manual or auto from total loss) |
| PATCH | /api/purchase-requests/:id |
jwt |
PROCUREMENT_WRITE |
— | Update purchase request (status: DRAFT→PENDING→APPROVED→ORDERED→RECEIVED) |
| DELETE | /api/purchase-requests/:id |
jwt |
PROCUREMENT_WRITE |
— | Delete purchase request |
Source: apps/api/src/modules/stammdaten/purchase-request.controller.ts
| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/push/vapid-public-key |
jwt |
NOTIFICATIONS_READ |
— | Get VAPID public key for browser subscription (G-05) |
| POST | /api/push/subscribe |
jwt |
NOTIFICATIONS_WRITE |
— | Subscribe a browser to Web Push notifications (G-05) |
| DELETE | /api/push/subscribe |
jwt |
NOTIFICATIONS_WRITE |
— | Unsubscribe a browser from Web Push (G-05) |
| DELETE | /api/push/subscriptions |
jwt |
NOTIFICATIONS_WRITE |
— | Remove all push subscriptions for the current user |
Source: apps/api/src/modules/stammdaten/push.controller.ts
/qr-codes
Section titled “/qr-codes”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/qr-codes |
jwt |
QRCODES_READ |
— | List all QR codes for tenant |
| GET | /api/qr-codes/:id |
jwt |
QRCODES_READ |
— | Get QR code by ID |
| POST | /api/qr-codes |
jwt |
QRCODES_WRITE |
— | Generate QR code for an entity |
| POST | /api/qr-codes/verify |
jwt |
QRCODES_READ |
— | Verify a scanned QR code (HMAC check + duplicate scan detection) |
| POST | /api/qr-codes/:id/regenerate |
jwt |
QRCODES_WRITE |
— | Regenerate QR code (invalidates old one) |
| PATCH | /api/qr-codes/:id/printed |
jwt |
QRCODES_WRITE |
— | Mark QR code as printed |
| GET | /api/qr-codes/:id/pdf |
jwt |
QRCODES_READ |
— | Download QR code label as PDF |
| DELETE | /api/qr-codes/:id |
jwt |
QRCODES_WRITE |
— | Delete QR code |
Source: apps/api/src/modules/stammdaten/qr-code.controller.ts
/rental-pricing
Section titled “/rental-pricing”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/rental-pricing |
jwt |
RENTALS_READ |
— | List all rental pricing entries for tenant |
| GET | /api/rental-pricing/tool/:toolId |
jwt |
RENTALS_READ |
— | Get effective pricing for a tool (tool-specific or tenant default) |
| GET | /api/rental-pricing/:id |
jwt |
RENTALS_READ |
— | Get rental pricing by ID |
| POST | /api/rental-pricing |
jwt |
RENTALS_WRITE |
— | Create rental pricing (tool-specific or tenant default) |
| PATCH | /api/rental-pricing/:id |
jwt |
RENTALS_WRITE |
— | Update rental pricing |
| DELETE | /api/rental-pricing/:id |
jwt |
RENTALS_DELETE |
— | Delete rental pricing |
Source: apps/api/src/modules/stammdaten/rental-pricing.controller.ts
/rental-protocols
Section titled “/rental-protocols”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/rental-protocols |
jwt |
RENTALS_READ |
— | List all rental protocols (optional rentalId filter) |
| GET | /api/rental-protocols/:id |
jwt |
RENTALS_READ |
— | Get rental protocol by ID |
| POST | /api/rental-protocols |
jwt |
RENTALS_WRITE |
— | Create a handover or return protocol with photos and signature (D-06) |
| DELETE | /api/rental-protocols/:id |
jwt |
RENTALS_DELETE |
— | Delete rental protocol |
Source: apps/api/src/modules/stammdaten/rental-protocol.controller.ts
/rentals
Section titled “/rentals”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/rentals |
jwt |
RENTALS_READ |
— | List all rentals for tenant (optional status filter) |
| GET | /api/rentals/:id |
jwt |
RENTALS_READ |
— | Get rental by ID |
| POST | /api/rentals |
jwt |
RENTALS_WRITE |
— | Create a new rental (intern by employee, external renter data) |
| PATCH | /api/rentals/:id |
jwt |
RENTALS_WRITE |
— | Update rental details |
| POST | /api/rentals/:id/pickup |
jwt |
RENTALS_WRITE |
— | Mark rental as picked up (RESERVED → ACTIVE, tool → CHECKED_OUT) |
| POST | /api/rentals/:id/return |
jwt |
RENTALS_WRITE |
— | Mark rental as returned (ACTIVE/OVERDUE → RETURNED, tool → AVAILABLE, cost calculated) |
| POST | /api/rentals/:id/cancel |
jwt |
RENTALS_WRITE |
— | Cancel a reserved rental |
| POST | /api/rentals/:id/deposit/collect |
jwt |
RENTALS_WRITE |
— | Collect deposit for a rental (D-05) |
| POST | /api/rentals/:id/deposit/return |
jwt |
RENTALS_WRITE |
— | Return deposit (full or partial withholding) for a rental (D-05) |
| POST | /api/rentals/:id/export-webhook |
jwt |
RENTALS_WRITE |
— | Mark rental as exported for webhook data transfer (D-07) |
| POST | /api/rentals/:id/anonymize |
jwt |
RENTALS_DELETE |
— | Anonymize external renter data (DSGVO, D-08) |
| GET | /api/rentals/anonymization/candidates |
jwt |
RENTALS_READ |
— | List rentals eligible for anonymization (2+ years after return) |
| DELETE | /api/rentals/:id |
jwt |
RENTALS_DELETE |
— | Delete rental record |
Source: apps/api/src/modules/stammdaten/rental.controller.ts
/repair-orders
Section titled “/repair-orders”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/repair-orders |
jwt |
MAINTENANCE_READ |
— | List all repair orders for tenant (optional status/toolId filter) |
| GET | /api/repair-orders/warranty-alerts |
jwt |
MAINTENANCE_READ |
— | E-04: Get repair orders with expiring/expired warranties (default 30 days ahead) |
| GET | /api/repair-orders/:id |
jwt |
MAINTENANCE_READ |
— | Get repair order by ID |
| POST | /api/repair-orders |
jwt |
MAINTENANCE_WRITE |
— | Create repair order (E-03: INTERNAL or EXTERNAL, auto-sets tool to IN_REPAIR) |
| PATCH | /api/repair-orders/:id |
jwt |
MAINTENANCE_WRITE |
— | Update repair order (status: PENDING→IN_PROGRESS→COMPLETED/TOTAL_LOSS) |
| DELETE | /api/repair-orders/:id |
jwt |
MAINTENANCE_WRITE |
— | Delete repair order |
Source: apps/api/src/modules/stammdaten/repair-order.controller.ts
/reports
Section titled “/reports”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/reports/admin-stats |
jwt |
REPORTS_READ |
— | Get admin dashboard statistics |
| GET | /api/reports/inventory-summary |
jwt |
REPORTS_READ |
— | Get inventory summary statistics |
| GET | /api/reports/inventory-pdf |
jwt |
REPORTS_READ |
— | Download inventory report as PDF |
| GET | /api/reports/rental-stats |
jwt |
REPORTS_READ |
— | Get rental statistics (revenue, utilization, top tools) |
| GET | /api/reports/damage-history |
jwt |
REPORTS_READ |
— | Get damage history report |
| GET | /api/reports/inspection-report |
jwt |
REPORTS_READ |
— | Get inspection report (upcoming/overdue inspections) |
| GET | /api/reports/inspection-pdf |
jwt |
REPORTS_READ |
— | Download inspection report as PDF |
Source: apps/api/src/modules/stammdaten/report.controller.ts
/reservations
Section titled “/reservations”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/reservations |
jwt |
RENTALS_READ |
— | List all reservations for tenant (optional status filter) |
| GET | /api/reservations/:id |
jwt |
RENTALS_READ |
— | Get reservation by ID |
| GET | /api/reservations/tool/:toolId/availability |
jwt |
RENTALS_READ |
— | Check tool availability for a date range |
| POST | /api/reservations |
jwt |
RENTALS_WRITE |
— | Create a reservation (pre-booking for a tool) |
| POST | /api/reservations/:id/confirm |
jwt |
RENTALS_WRITE |
— | Confirm a pending reservation |
| POST | /api/reservations/:id/cancel |
jwt |
RENTALS_WRITE |
— | Cancel a reservation |
| DELETE | /api/reservations/:id |
jwt |
RENTALS_DELETE |
— | Delete reservation record |
Source: apps/api/src/modules/stammdaten/reservation.controller.ts
/stock-thresholds
Section titled “/stock-thresholds”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/stock-thresholds |
jwt |
PROCUREMENT_READ |
— | List all stock thresholds for tenant |
| GET | /api/stock-thresholds/by-tool/:toolId |
jwt |
PROCUREMENT_READ |
— | Get stock threshold by tool ID |
| GET | /api/stock-thresholds/by-category/:categoryId |
jwt |
PROCUREMENT_READ |
— | Get stock threshold by category ID (F-05) |
| GET | /api/stock-thresholds/:id |
jwt |
PROCUREMENT_READ |
— | Get stock threshold by ID |
| POST | /api/stock-thresholds |
jwt |
PROCUREMENT_WRITE |
— | Create stock threshold (F-03/F-05: per-tool or per-category min quantity + auto-reorder) |
| PATCH | /api/stock-thresholds/:id |
jwt |
PROCUREMENT_WRITE |
— | Update stock threshold |
| POST | /api/stock-thresholds/trigger-reorder-check |
jwt |
PROCUREMENT_WRITE |
— | Manually trigger stock reorder check (F-06) |
| DELETE | /api/stock-thresholds/:id |
jwt |
PROCUREMENT_WRITE |
— | Delete stock threshold |
Source: apps/api/src/modules/stammdaten/stock-threshold.controller.ts
/tool-brands
Section titled “/tool-brands”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/tool-brands |
jwt |
TOOLS_READ |
— | List all tool brands for tenant |
| GET | /api/tool-brands/:id |
jwt |
TOOLS_READ |
— | Get tool brand by ID |
| POST | /api/tool-brands |
jwt |
TOOLS_WRITE |
— | Create tool brand |
| PATCH | /api/tool-brands/:id |
jwt |
TOOLS_WRITE |
— | Update tool brand |
| DELETE | /api/tool-brands/:id |
jwt |
TOOLS_DELETE |
— | Delete tool brand |
Source: apps/api/src/modules/stammdaten/tool-brand.controller.ts
/tool-categories
Section titled “/tool-categories”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/tool-categories |
jwt |
TOOLS_READ |
— | List all tool categories for tenant |
| GET | /api/tool-categories/:id |
jwt |
TOOLS_READ |
— | Get tool category by ID |
| POST | /api/tool-categories |
jwt |
TOOLS_WRITE |
— | Create tool category |
| PATCH | /api/tool-categories/:id |
jwt |
TOOLS_WRITE |
— | Update tool category |
| DELETE | /api/tool-categories/:id |
jwt |
TOOLS_DELETE |
— | Delete tool category |
Source: apps/api/src/modules/stammdaten/tool-category.controller.ts
/tool-history
Section titled “/tool-history”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/tool-history/tool/:toolId |
jwt |
TOOLS_READ |
— | Get history for a specific tool |
| GET | /api/tool-history |
jwt |
TOOLS_READ |
— | Get recent tool history for tenant |
Source: apps/api/src/modules/stammdaten/tool-history.controller.ts
/tool-sets
Section titled “/tool-sets”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/tool-sets |
jwt |
TOOLS_READ |
— | List all tool sets for tenant |
| GET | /api/tool-sets/:id |
jwt |
TOOLS_READ |
— | Get tool set by ID with items |
| POST | /api/tool-sets |
jwt |
TOOLS_WRITE |
— | Create tool set with optional items |
| PATCH | /api/tool-sets/:id |
jwt |
TOOLS_WRITE |
— | Update tool set (replaces items if provided) |
| DELETE | /api/tool-sets/:id |
jwt |
TOOLS_DELETE |
— | Delete tool set |
Source: apps/api/src/modules/stammdaten/tool-set.controller.ts
/tools
Section titled “/tools”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/tools |
jwt |
TOOLS_READ |
— | List all tools for tenant (cursor pagination optional) |
| GET | /api/tools/:id |
jwt |
TOOLS_READ |
— | Get tool by ID |
| POST | /api/tools |
jwt |
TOOLS_WRITE |
— | Create tool |
| PATCH | /api/tools/:id |
jwt |
TOOLS_WRITE |
— | Update tool |
| DELETE | /api/tools/:id |
jwt |
TOOLS_DELETE |
— | Delete tool |
| POST | /api/tools/upload-image |
jwt |
TOOLS_WRITE |
— | Upload sample image for a tool (base64 JSON) |
Source: apps/api/src/modules/stammdaten/tool.controller.ts
/transfers
Section titled “/transfers”| Method | Path | Auth | Permissions | Roles | Description |
|---|---|---|---|---|---|
| GET | /api/transfers |
jwt |
TRANSFERS_READ |
— | List all transfers for tenant (optional status/branch filters) |
| GET | /api/transfers/:id |
jwt |
TRANSFERS_READ |
— | Get transfer by ID (F-01) |
| POST | /api/transfers |
jwt |
TRANSFERS_WRITE |
— | Create transfer (F-01: cross-branch tool transfer) |
| PATCH | /api/transfers/:id |
jwt |
TRANSFERS_WRITE |
— | Update transfer (F-03: status transitions REQUESTED→APPROVED→IN_TRANSIT→RECEIVED) |
| DELETE | /api/transfers/:id |
jwt |
TRANSFERS_WRITE |
— | Delete transfer (only when REQUESTED or CANCELLED) |
| GET | /api/transfers/:id/delivery-note |
jwt |
TRANSFERS_READ |
— | Get delivery note data as JSON (F-02: Digitaler Lieferschein) |
| GET | /api/transfers/:id/delivery-note.pdf |
jwt |
TRANSFERS_READ |
— | Download delivery note as PDF (F-02: Digitaler Lieferschein) |
Source: apps/api/src/modules/stammdaten/transfer.controller.ts