feat(quality): add resolution UI for all five rule types and manual scan

DataQualityIssueDetail showed raw JSON as the primary interface for four of
five rule types, with no resolution surface beyond generic defer/reject.
Add a bounded panel per rule type (provide missing fields, retain/correct
an odometer reading, block one of two overlapping bookings, apply the
recommended vehicle status) wired to the new backend endpoints, and move
raw evidence behind a <details> disclosure. Add a "Run quality scan" action
to the workbench (confirmation, progress, per-rule result counts, auto
refresh) -- the endpoint already existed but had no UI trigger.
This commit is contained in:
NuklearRabbit
2026-08-02 06:16:14 +02:00
parent 6e227a214a
commit 477b5e7ce9
4 changed files with 490 additions and 17 deletions
+11
View File
@@ -160,6 +160,7 @@ export interface ReturnPreviewResult {
}
export interface EntitySnapshot {
entity_type: "customer" | "vehicle" | "booking" | "inspection";
public_ref: string;
[key: string]: unknown;
}
@@ -169,6 +170,16 @@ export interface DataQualityIssueDetail extends DataQualityIssue {
related_snapshots: EntitySnapshot[];
}
export interface ApplyRecommendedStatusResult {
issue: DataQualityIssue;
applied_status: string;
reason: string;
}
export interface ScanResult {
created: Record<string, number>;
}
export interface MergeCustomersRequest {
survivor_ref: string;
field_overrides?: Record<string, string>;