Let agents choose quote scope from repair lists or full report

Objective

  • Let agents choose quote scope when requesting repair quotes so they can request quotes for:
  • the current repair list
  • all report deficiencies
  • selected repair lists when multiple lists exist
  • Support negotiation workflows where buyer agents sometimes want a focused subset, and other times need a full-deficiency scope.
  • Avoid forcing one quote-request model across all repair and QuickFix workflows.

Background

  • Current quote-request flows are organized around a single active repair list and category selection, with quote requests generated from selected items.
  • Product feedback highlights three valid scope modes:
  • curated list for negotiation
  • complete deficiency set from report
  • multi-list selection for jobs with multiple saved repair lists
  • Existing client repair-list UX already supports multiple saved lists and category-level item inclusion for quotes, but scope choice (current vs all vs selected lists) is not explicit in the request entry flow.
  • Decision needed on source-of-truth behavior when the same deficiency appears in multiple lists (dedupe strategy, ordering, and quote payload semantics).

Scope

Frontend (attik-frontend)

  • Repair-list state and saved-list selection are managed in src/app/client/reports/components/RepairListProvider.tsx and src/app/client/reports/components/RepairListSidebar.tsx, including savedRepairLists, currentSavedListId, and the handleGetQuotes path that currently navigates from one active list context.
  • Categorization and quote-request preflight are in src/app/client/reports/[slug]/repair-list/[id]/components/CategorizationPageClient.tsx, where selected categories and includedInQuotes drive the request URL (/request?categories=...) and persist assignment state.
  • Quote request execution flow is in:
  • src/app/client/reports/[slug]/repair-list/[id]/request/page.tsx
  • src/app/client/reports/[slug]/repair-list/[id]/request/components/MultiCategoryRequestClient.tsx
  • src/app/client/reports/[slug]/repair-list/[id]/request/components/RequestFlowDrawer.tsx
  • Scope-selection UI likely belongs near the existing “Get quotes” entry in RepairListSidebar.tsx, with a model that can gather item IDs from:
  • current list only
  • all deficiencies in report context
  • selected saved lists
  • Decision needed on where to host this control: pre-navigation modal in sidebar vs. in categorization/request pages.

Backend (attik-backend)

  • Quote requests are persisted and sent in src/routes/repairList.ts, especially:
  • POST /repair-list/:id/request-quotes (company assignments + item IDs)
  • category endpoints (/categorize, /categories) that currently shape item inclusion
  • Repair list data model is in src/models/repairListSchema.ts (repairItems, quoteRequests, quoteSubmissions, categoryAssignments, includedInQuotes).
  • Scope expansion for “all report deficiencies” and “selected repair lists” likely needs request-contract changes so the server can accept/resolve multi-list or report-wide item sets deterministically.
  • Decision needed on validation and dedupe rules before sending PDFs/emails when items are merged from multiple sources.

Mobile

  • No direct mobile quote-scope flow surfaced in current audit; treat mobile as out of scope unless explicitly requested.

References

  • attik-frontend/src/app/client/reports/components/RepairListSidebar.tsx
  • attik-frontend/src/app/client/reports/components/RepairListProvider.tsx
  • attik-frontend/src/app/client/reports/[slug]/repair-list/[id]/components/CategorizationPageClient.tsx
  • attik-frontend/src/app/client/reports/[slug]/repair-list/[id]/request/page.tsx
  • attik-backend/src/routes/repairList.ts
  • attik-backend/src/models/repairListSchema.ts

Please authenticate to join the conversation.

Upvoters
Status

Completed

Board
🏠

Main App

Date

About 1 month ago

Author

Linear

Subscribe to post

Get notified by email when there are changes.