The frontend was calculating wrong time remaining because
end_time was sent without timezone suffix (Z).
JavaScript's new Date() interprets "2025-12-20T20:49:20" as
local time, but the server stores it as UTC.
Fix: Add json_encoders to Pydantic models that append "Z"
to all datetime fields, marking them as UTC.
Affected models:
- AuctionListing
- AuctionSearchResponse
- MarketFeedItem
- MarketFeedResponse
- ScrapeStatus