wire Expert TD branch: state, activities, RV, DV mapping
This commit is contained in:
parent
b621eb9d5d
commit
40dd53e0e3
@ -18,6 +18,7 @@ const ACTIVITY_META: Record<string, { label: string; icon: React.ReactNode; styl
|
||||
[ACTIVITY_IDS.MARK_TEST_DRIVE_DONE]: { label: "Mark Test Drive Done", icon: <CheckCircle2 size={14} />, style: "primary" },
|
||||
[ACTIVITY_IDS.RETRY_SCHEDULING_CALL]: { label: "Retry Scheduling Call", icon: <RefreshCw size={14} />, style: "primary" },
|
||||
[ACTIVITY_IDS.RETRY_FEEDBACK_CALL]: { label: "Retry Feedback Call", icon: <RefreshCw size={14} />, style: "primary" },
|
||||
[ACTIVITY_IDS.MARK_EXPERT_TD_DONE]: { label: "Mark Expert TD Done", icon: <CheckCircle2 size={14} />, style: "primary" },
|
||||
};
|
||||
|
||||
const BTN_STYLES: Record<string, string> = {
|
||||
@ -33,6 +34,7 @@ const STATE_LABEL: Record<string, string> = {
|
||||
[STATE_IDS.FEEDBACK_COLLECTED]: "Feedback Collected",
|
||||
[STATE_IDS.SCHEDULING_CALL_FAILED]: "Scheduling Call Failed",
|
||||
[STATE_IDS.FEEDBACK_CALL_FAILED]: "Feedback Call Failed",
|
||||
[STATE_IDS.EXPERT_TD_SCHEDULED]: "Expert TD Scheduled",
|
||||
[STATE_IDS.END_STATE]: "Closed",
|
||||
};
|
||||
|
||||
@ -45,7 +47,7 @@ function stateTone(stateId: string | null) {
|
||||
return { bg: "rgba(239,68,68,0.12)", fg: "#B91C1C", ring: "rgba(239,68,68,0.30)" };
|
||||
if (stateId === STATE_IDS.AWAITING_SCHEDULER_CALL || stateId === STATE_IDS.AWAITING_FEEDBACK_CALL)
|
||||
return { bg: "rgba(200,16,46,0.10)", fg: "#C8102E", ring: "rgba(200,16,46,0.28)" };
|
||||
if (stateId === STATE_IDS.SCHEDULED)
|
||||
if (stateId === STATE_IDS.SCHEDULED || stateId === STATE_IDS.EXPERT_TD_SCHEDULED)
|
||||
return { bg: "rgba(245,158,11,0.14)", fg: "#B45309", ring: "rgba(245,158,11,0.30)" };
|
||||
return { bg: "rgba(168,162,158,0.15)", fg: "#57534E", ring: "rgba(168,162,158,0.30)" };
|
||||
}
|
||||
@ -158,6 +160,7 @@ function CurrentAppShell() {
|
||||
if (instanceState === STATE_IDS.SCHEDULED) return [ACTIVITY_IDS.MARK_TEST_DRIVE_DONE];
|
||||
if (instanceState === STATE_IDS.SCHEDULING_CALL_FAILED) return [ACTIVITY_IDS.RETRY_SCHEDULING_CALL];
|
||||
if (instanceState === STATE_IDS.FEEDBACK_CALL_FAILED) return [ACTIVITY_IDS.RETRY_FEEDBACK_CALL];
|
||||
if (instanceState === STATE_IDS.EXPERT_TD_SCHEDULED) return [ACTIVITY_IDS.MARK_EXPERT_TD_DONE];
|
||||
return [];
|
||||
})();
|
||||
|
||||
@ -373,6 +376,8 @@ function fmtAct(id: string): string {
|
||||
case ACTIVITY_IDS.AI_CONFIRM_FEEDBACK_COLLECTED: return "AI · Feedback Collected";
|
||||
case ACTIVITY_IDS.AI_CONFIRM_FEEDBACK_FAILED: return "AI · Feedback Failed";
|
||||
case ACTIVITY_IDS.RETRY_FEEDBACK_CALL: return "Retry Feedback Call";
|
||||
case ACTIVITY_IDS.CONCERN_EXPERT_TD_BOOKED: return "AI · Concern → Expert TD Booked";
|
||||
case ACTIVITY_IDS.MARK_EXPERT_TD_DONE: return "Expert TD Completed";
|
||||
default: return id.slice(0, 8) + "…";
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,6 +60,7 @@ const STATE_TONE: Record<string, { bg: string; fg: string; dot: string }> = {
|
||||
"Awaiting Scheduler Call": { bg: "#FEF3C7", fg: "#92400E", dot: "#e6ab2e" },
|
||||
"Scheduled": { bg: "#FEF3C7", fg: "#92400E", dot: "#e6ab2e" },
|
||||
"Awaiting Feedback Call": { bg: "#FEF3C7", fg: "#92400E", dot: "#e6ab2e" },
|
||||
"Expert TD Scheduled": { bg: "#FEF3C7", fg: "#92400E", dot: "#e6ab2e" },
|
||||
"Feedback Collected": { bg: "#DCFCE7", fg: "#166534", dot: "#27a846" },
|
||||
"Scheduling Call Failed": { bg: ACCENT_SOFT, fg: ACCENT_DARK, dot: ACCENT },
|
||||
"Feedback Call Failed": { bg: ACCENT_SOFT, fg: ACCENT_DARK, dot: ACCENT },
|
||||
@ -779,6 +780,7 @@ function DetailPage({
|
||||
if (instanceState === STATE_IDS.SCHEDULED) return [{ id: ACTIVITY_IDS.MARK_TEST_DRIVE_DONE, label: "Mark Test Drive Done", icon: <CheckCircle2 size={14} /> }];
|
||||
if (instanceState === STATE_IDS.SCHEDULING_CALL_FAILED) return [{ id: ACTIVITY_IDS.RETRY_SCHEDULING_CALL, label: "Retry Scheduling Call", icon: <RefreshCw size={14} /> }];
|
||||
if (instanceState === STATE_IDS.FEEDBACK_CALL_FAILED) return [{ id: ACTIVITY_IDS.RETRY_FEEDBACK_CALL, label: "Retry Feedback Call", icon: <RefreshCw size={14} /> }];
|
||||
if (instanceState === STATE_IDS.EXPERT_TD_SCHEDULED) return [{ id: ACTIVITY_IDS.MARK_EXPERT_TD_DONE, label: "Mark Expert TD Done", icon: <CheckCircle2 size={14} /> }];
|
||||
return [];
|
||||
}, [instanceState]);
|
||||
|
||||
@ -1083,6 +1085,8 @@ const ACTIVITY_LABELS: Record<string, { label: string; tone: "user" | "ai" | "sy
|
||||
[ACTIVITY_IDS.AI_CONFIRM_FEEDBACK_COLLECTED]: { label: "Feedback collected", tone: "ai" },
|
||||
[ACTIVITY_IDS.AI_CONFIRM_FEEDBACK_FAILED]: { label: "Feedback call failed", tone: "ai" },
|
||||
[ACTIVITY_IDS.RETRY_FEEDBACK_CALL]: { label: "Retried feedback call", tone: "user" },
|
||||
[ACTIVITY_IDS.CONCERN_EXPERT_TD_BOOKED]: { label: "Concern → Expert TD booked", tone: "ai" },
|
||||
[ACTIVITY_IDS.MARK_EXPERT_TD_DONE]: { label: "Expert TD marked done", tone: "user" },
|
||||
};
|
||||
|
||||
const SECTION_TITLE: Record<string, string> = {
|
||||
|
||||
@ -15,6 +15,8 @@ export const ACTIVITY_IDS = {
|
||||
AI_CONFIRM_FEEDBACK_COLLECTED: "a6666666-6666-4abc-8000-000000000006", // AI submits on feedback success
|
||||
AI_CONFIRM_FEEDBACK_FAILED: "a7777777-7777-4abc-8000-000000000007", // AI submits on feedback failure
|
||||
RETRY_FEEDBACK_CALL: "a8888888-8888-4abc-8000-000000000008", // Re-fire AI from failed feedback
|
||||
CONCERN_EXPERT_TD_BOOKED: "e1111111-1111-4abc-8000-000000000009", // AI submits when feedback call surfaces concern + expert TD slot booked
|
||||
MARK_EXPERT_TD_DONE: "e2222222-2222-4abc-8000-000000000010", // Dealer marks the expert/specialist drive complete
|
||||
} as const;
|
||||
|
||||
export const RECORD_VIEW_IDS = {
|
||||
@ -23,6 +25,7 @@ export const RECORD_VIEW_IDS = {
|
||||
PENDING_FEEDBACK: "rv-mahindra-pending-feedback",
|
||||
COMPLETED: "rv-mahindra-completed",
|
||||
SCHEDULED_TEST_DRIVES: "rv-mahindra-scheduled-td",
|
||||
CONCERN_EXPERT_TD: "ab66664a-19e1-45a2-be51-dca0211a8be7",
|
||||
} as const;
|
||||
|
||||
// rv_uid -> field_keys that should NOT render as table columns even though
|
||||
@ -34,6 +37,7 @@ export const RV_HIDDEN_COLUMNS: Record<string, string[]> = {
|
||||
"rv-mahindra-scheduled-td": ["current_state_id"],
|
||||
"rv-mahindra-pending-feedback": ["current_state_id"],
|
||||
"rv-mahindra-completed": ["current_state_id"],
|
||||
"ab66664a-19e1-45a2-be51-dca0211a8be7": ["current_state_id"],
|
||||
};
|
||||
|
||||
export const DETAIL_VIEW_IDS = {
|
||||
@ -49,6 +53,7 @@ export const SCREEN_TO_DV: Record<string, string> = {
|
||||
"dfa82b37-ecc0-4b21-99aa-ae50d62c4dfb": "1eb72636-f6fc-41b6-9107-775f93de1fa1", // Pending Feedback
|
||||
"1fe0a811-19bf-4dbd-a643-32ae1a067162": "f9828eb2-2c32-4a87-b7f1-fc0c8c16ac86", // Completed
|
||||
"66c003dc-0162-46f2-9b87-a7b73051a4ca": "f07f3a7f-300e-4040-b5ff-dba75493738a", // Leads
|
||||
"857596bf-2d50-489d-9316-c5dd10b1b42d": "9cb88bfa-13b5-42e3-88dd-c7eb1f419439", // Concern - Expert TD
|
||||
};
|
||||
|
||||
// Workflow states
|
||||
@ -59,6 +64,7 @@ export const STATE_IDS = {
|
||||
FEEDBACK_COLLECTED: "aab92dd6-46e6-4448-b61b-fe37f8727c00",
|
||||
SCHEDULING_CALL_FAILED: "b1f1ce11-fa11-4abc-9001-0000000000a1",
|
||||
FEEDBACK_CALL_FAILED: "b1f1ce11-fa11-4abc-9001-0000000000a2",
|
||||
EXPERT_TD_SCHEDULED: "e0000000-0000-4abc-9003-000000000001",
|
||||
END_STATE: "33cce5a0-f493-4fac-a1b7-7b68fbcbffce",
|
||||
} as const;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user