Admin request management: review, quote, and respond to client requests #124

Open
opened 2026-06-06 20:55:47 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Child of spike #121 (client request flow design). Part of Phase 3. Depends on ServiceRequest model and client UI tickets.

Repo

ldraney/landscaping-assistant

User Story

As admin, I want to review client requests, set a price, and send a Stripe payment link so clients can pay for package changes and projects.

Context

Admin sees incoming requests on the Crew tab activity feed. They review the request, set a price (or $0 for skips/downgrades), and attach a Stripe payment link. The client gets notified and pays through the app. Admin can also decline requests.

File Targets

  • app/controllers/service_requests_controller.rb (add update action for admin)
  • app/views/service_requests/_admin_review.html.erb (new)
  • app/views/crew/index.html.erb (add request feed section)
  • spec/requests/service_requests_spec.rb (add admin actions)

Acceptance Criteria

  • Admin sees pending requests in Crew tab activity feed
  • Admin can set price and add Stripe payment link
  • Admin can decline a request (status → declined)
  • Admin can mark $0 requests as approved (skip quoted/paid steps)
  • Client sees updated status on My Property
  • Only admin role can quote/decline (role check)

Test Expectations

  • spec/requests/service_requests_spec.rb: admin update, decline, authorization
  • Run: bundle exec rspec

Constraints

  • Stripe link is manually generated by admin for V1 (no Stripe API integration yet)
  • Status transitions enforced: admin can only quote a "requested" item, not a "paid" one

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • #121 — parent spike
  • #107 — auth parent
### Type Feature ### Lineage Child of spike #121 (client request flow design). Part of Phase 3. Depends on ServiceRequest model and client UI tickets. ### Repo `ldraney/landscaping-assistant` ### User Story As admin, I want to review client requests, set a price, and send a Stripe payment link so clients can pay for package changes and projects. ### Context Admin sees incoming requests on the Crew tab activity feed. They review the request, set a price (or $0 for skips/downgrades), and attach a Stripe payment link. The client gets notified and pays through the app. Admin can also decline requests. ### File Targets - `app/controllers/service_requests_controller.rb` (add update action for admin) - `app/views/service_requests/_admin_review.html.erb` (new) - `app/views/crew/index.html.erb` (add request feed section) - `spec/requests/service_requests_spec.rb` (add admin actions) ### Acceptance Criteria - [ ] Admin sees pending requests in Crew tab activity feed - [ ] Admin can set price and add Stripe payment link - [ ] Admin can decline a request (status → declined) - [ ] Admin can mark $0 requests as approved (skip quoted/paid steps) - [ ] Client sees updated status on My Property - [ ] Only admin role can quote/decline (role check) ### Test Expectations - `spec/requests/service_requests_spec.rb`: admin update, decline, authorization - Run: `bundle exec rspec` ### Constraints - Stripe link is manually generated by admin for V1 (no Stripe API integration yet) - Status transitions enforced: admin can only quote a "requested" item, not a "paid" one ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - #121 — parent spike - #107 — auth parent
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/landscaping-assistant#124
No description provided.