Eric Gullickson
|
e7f3728771
|
feat: add email ingestion processing service and repository (refs #156)
- EmailIngestionRepository: queue CRUD (insert, update status, get,
find by email ID), pending vehicle association management, mapRow
pattern for snake_case -> camelCase conversion
- EmailIngestionService: full processing pipeline with sender validation,
attachment filtering (PDF/PNG/JPG/JPEG/HEIC, <10MB), dual OCR
classification (fuel vs maintenance), vehicle association logic
(single-vehicle auto-associate, multi-vehicle pending), retry handling
(max 3 attempts), and templated email replies (confirmation, failure,
pending vehicle)
- Updated controller to delegate async processing to service
- Added receipt_processed/receipt_failed/receipt_pending_vehicle to
TemplateKey union type
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-13 08:32:10 -06:00 |
|