Files
motovaultpro/backend/src/features/documents
Eric Gullickson 57debe4252 feat: add shared_vehicle_ids schema and repository methods (refs #31)
- Add migration 004_add_shared_vehicle_ids.sql with UUID array column and GIN index
- Update DocumentRecord interface to include sharedVehicleIds field
- Add sharedVehicleIds to CreateDocumentBody and UpdateDocumentBody schemas
- Update repository mapDocumentRecord() to map shared_vehicle_ids from database
- Update insert() and batchInsert() to handle sharedVehicleIds
- Update updateMetadata() to support sharedVehicleIds updates
- Add addSharedVehicle() method using atomic array_append()
- Add removeSharedVehicle() method using atomic array_remove()
- Add listByVehicle() method to query by primary or shared vehicle

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:24:34 -06:00
..
2025-09-28 20:35:46 -05:00
2025-11-04 18:38:06 -06:00

Documents Feature Capsule

Quick Summary (50 tokens)

Secure vehicle document management with filesystem storage. Metadata and file uploads with private access, user and vehicle ownership enforcement, and mobile-first UX.

API Endpoints

  • GET /api/documents
  • GET /api/documents/:id
  • POST /api/documents
  • PUT /api/documents/:id
  • DELETE /api/documents/:id
  • GET /api/documents/vehicle/:vehicleId
  • POST /api/documents/:id/upload
  • GET /api/documents/:id/download

Structure

  • api/ - HTTP endpoints, routes, validators
  • domain/ - Business logic, types, rules
  • data/ - Repository, database queries
  • migrations/ - Feature-specific schema
  • tests/ - All feature tests

Dependencies

  • Internal: core/auth (JWT validation), core/storage (filesystem adapter), core/logging
  • Database: documents table
  • Storage: Filesystem adapter (/app/data/documents)

Quick Commands

# Run feature tests
npm test -- features/documents

# Run migrations (all features)
npm run migrate:all