# 🔮 Future Roadmap

## 🚧 Technical Debt & Improvements

### Error Handling
- **Ingestion Robustness**: Currently, `DataIntegrityViolationException` is ignored during scanning. A more detailed logging or reporting mechanism for skipped files would be beneficial.
- **Path Handling**: Move away from string concatenation for paths (e.g., `"images" + "/" + ...`) to `java.nio.Path` resolution to ensure cross-platform compatibility (Windows vs Linux separators).

### Performance
- **Caching**: Implement Spring Cache for `getPagedPhotos` and `getRandomPhotos` to reduce database load.
- **Batch Processing**: The current scanning process saves photos one by one. Implementing `saveAll()` with batching would significantly speed up large library imports.

## ✨ Planned Features

### AI Integration
- **Auto-Tagging**: Re-enable and implement the `taggingService` (currently commented out in `PhotoService`) to automatically generate tags using a local ML model or cloud API.
- **Face Recognition**: Group photos by detected faces.

### User Experience
- **Dark Mode**: Toggle between light and dark themes.
- **Multi-Select**: Allow selecting multiple photos for batch tagging or deleting.
- **EXIF Editing**: Allow users to manually update incorrect EXIF data via the UI.

### Backend
- **Cloud Storage**: Add an abstraction layer to support S3 or Azure Blob Storage instead of just local file systems.
- **User Accounts**: Add Spring Security to support multiple users with private galleries.

## 🧪 Testing

- **Unit Tests**: Add JUnit 5 tests for `PhotoService` logic.
- **Integration Tests**: Test the full ingestion flow with temporary directories.

---

> **Note**: This document serves as a living roadmap. Priorities may change based on user feedback and technical requirements.