The camping gear dashboard (#2122) shows upcoming pick-ups and drop-offs, but it doesn't indicate whether a pickup or return has actually happened yet. Jim pointed out this would be really useful for the at-a-glance workflow.
We found that MyTurn's reservation data doesn't track this (the fulfilled field exists but is always false). However, their loan report endpoint (/library/rpc/loanReport) has individual checkout/checkin records with timestamps, user info, and location. We can cross-reference loans with reservations by matching on user + date to derive a status like "Picked up" or "Returned."
The main challenge is performance. The loan report endpoint is slow and returns a lot of data (11k+ records for a broad date range). We'd probably want to either narrow the query window tightly around the displayed day, or introduce some lightweight caching so we're not hitting it on every page load.
Builds on #2122.
The camping gear dashboard (#2122) shows upcoming pick-ups and drop-offs, but it doesn't indicate whether a pickup or return has actually happened yet. Jim pointed out this would be really useful for the at-a-glance workflow.
We found that MyTurn's reservation data doesn't track this (the
fulfilledfield exists but is always false). However, their loan report endpoint (/library/rpc/loanReport) has individual checkout/checkin records with timestamps, user info, and location. We can cross-reference loans with reservations by matching on user + date to derive a status like "Picked up" or "Returned."The main challenge is performance. The loan report endpoint is slow and returns a lot of data (11k+ records for a broad date range). We'd probably want to either narrow the query window tightly around the displayed day, or introduce some lightweight caching so we're not hitting it on every page load.
Builds on #2122.