- 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>
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