- Migration 084: new persoenliche_ausruestung table with catalog link, user
assignment, soft delete; adds zuweisung_typ/ausruestung_id/persoenlich_id
columns to ausruestung_anfrage_positionen; seeds feature group + 5 permissions
- Fix user data purge: table was shop_anfragen, renamed to ausruestung_anfragen
in mig 046 — caused full transaction rollback. Also keep mitglieder_profile
row but NULL FDISK-synced fields (dienstgrad, geburtsdatum, etc.) instead of
deleting the profile
- Personal equipment CRUD: backend service/controller/routes at
/api/persoenliche-ausruestung; frontend page with DataTable, user filter,
catalog Autocomplete, FAB create dialog; widget in Status group; sidebar
entry (Checkroom icon); card in MitgliedDetail Tab 0
- Ausruestungsanfrage item assignment: when a request reaches erledigt,
auto-opens ItemAssignmentDialog listing all delivered positions; each item
can be assigned as general equipment (vehicle/storage), personal item (user,
prefilled with requester), or not tracked; POST /requests/:id/assign backend
- StatCard refactored to use WidgetCard as outer shell for consistent header
styling across all dashboard widget templates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>