feat(contacts): add duplicate detection, photo upload, and batch operations

- Add duplicate detection service with merge functionality
  - Find duplicates by email, phone, or name
  - Merge contacts with field selection UI
  - Dismiss false positives

- Add contact photo upload
  - Upload photos to MinIO/S3 storage
  - Display photos in all contact views
  - Delete photo functionality

- Add batch operations for multiple contacts
  - Selection mode with checkboxes in all views
  - Batch delete, archive, and favorite actions
  - Fixed-height action bar to prevent layout shifts

- Add multiple contact view modes
  - List view, Grid view, Alphabet view
  - View mode toggle component
  - Sort by first/last name

- Increase avatar sizes across all views

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Till-JS 2025-12-09 17:45:29 +01:00
parent 23c2d85f6e
commit dd40bb40e7
41 changed files with 5174 additions and 619 deletions

View file

@ -63,7 +63,7 @@
"dev:contacts:landing": "pnpm --filter @contacts/landing dev",
"dev:contacts:backend": "pnpm --filter @contacts/backend dev",
"dev:contacts:app": "turbo run dev --filter=@contacts/web --filter=@contacts/backend",
"dev:contacts:full": "./scripts/setup-databases.sh contacts && ./scripts/setup-databases.sh auth && concurrently -n auth,backend,web -c blue,green,cyan \"pnpm dev:auth\" \"pnpm dev:contacts:backend\" \"pnpm dev:contacts:web\"",
"dev:contacts:full": "./scripts/setup-databases.sh contacts && ./scripts/setup-databases.sh auth && pnpm contacts:db:seed && concurrently -n auth,backend,web -c blue,green,cyan \"pnpm dev:auth\" \"pnpm dev:contacts:backend\" \"pnpm dev:contacts:web\"",
"contacts:db:push": "pnpm --filter @contacts/backend db:push",
"contacts:db:studio": "pnpm --filter @contacts/backend db:studio",
"contacts:db:seed": "pnpm --filter @contacts/backend db:seed",