Overview
A formal UI for the asset retirement workflow: users submit a retirement request from the asset detail page, managers approve or reject it, and the disposal is recorded with method, date, and proceeds. Depends on BE-31.
Context
- The asset detail page (
frontend/app/(dashboard)/assets/[id]/page.tsx) should get a "Request Disposal" button in the overview tab
- API endpoints (from BE-31):
POST /assets/:id/disposal, PATCH /assets/:id/disposal/:disposalId/approve, PATCH /assets/:id/disposal/:disposalId/reject
- A separate "Retirement Requests" section is needed in a management page (or on the reports page)
Acceptance Criteria
Overview
A formal UI for the asset retirement workflow: users submit a retirement request from the asset detail page, managers approve or reject it, and the disposal is recorded with method, date, and proceeds. Depends on BE-31.
Context
frontend/app/(dashboard)/assets/[id]/page.tsx) should get a "Request Disposal" button in the overview tabPOST /assets/:id/disposal,PATCH /assets/:id/disposal/:disposalId/approve,PATCH /assets/:id/disposal/:disposalId/rejectAcceptance Criteria
frontend/app/(dashboard)/assets/disposals/page.tsx— an admin/manager page listing all pending disposal requests with Approve and Reject buttonsuseCreateDisposalRequest(),useApproveDisposal(),useRejectDisposal(),usePendingDisposals()