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.tsxandsrc/app/client/reports/components/RepairListSidebar.tsx, includingsavedRepairLists,currentSavedListId, and thehandleGetQuotespath 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 andincludedInQuotesdrive 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.tsxsrc/app/client/reports/[slug]/repair-list/[id]/request/components/MultiCategoryRequestClient.tsxsrc/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.tsxattik-frontend/src/app/client/reports/components/RepairListProvider.tsxattik-frontend/src/app/client/reports/[slug]/repair-list/[id]/components/CategorizationPageClient.tsxattik-frontend/src/app/client/reports/[slug]/repair-list/[id]/request/page.tsxattik-backend/src/routes/repairList.tsattik-backend/src/models/repairListSchema.ts