Objective:
Implement offer list, create, retrieve, update, delete, detail retrieval, filtering, search, ordering, pagination, and image upload behavior.
Acceptance criteria:
- GET /api/offers/ returns paginated count/results data.
- Supported query params include creator_id, search, ordering, page, max_delivery_time, min_price, and page_size where applicable.
- POST /api/offers/ requires a business user and exactly three details.
- PATCH /api/offers/{id}/ supports JSON detail updates and FormData image updates.
- DELETE /api/offers/{id}/ is restricted to the offer owner.
- GET /api/offerdetails/{id}/ returns the documented detail structure.
Frontend notes:
The frontend creates the offer first as JSON and uploads image afterwards via PATCH FormData.
Objective:
Implement offer list, create, retrieve, update, delete, detail retrieval, filtering, search, ordering, pagination, and image upload behavior.
Acceptance criteria:
Frontend notes:
The frontend creates the offer first as JSON and uploads image afterwards via PATCH FormData.