@burdenoff/microfe-subscriberbot 2026.1031.1 → 2026.1102.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/stories/pages/NegotiationDetailPage.stories.d.ts +11 -0
  2. package/dist/stories/pages/NegotiationDetailPage.stories.d.ts.map +1 -0
  3. package/dist/stories/pages/NegotiationNewPage.stories.d.ts +9 -0
  4. package/dist/stories/pages/NegotiationNewPage.stories.d.ts.map +1 -0
  5. package/dist/stories/pages/NegotiationsPage.stories.d.ts +11 -0
  6. package/dist/stories/pages/NegotiationsPage.stories.d.ts.map +1 -0
  7. package/dist/stories/support/negotiationFixtures.d.ts +14 -0
  8. package/dist/stories/support/negotiationFixtures.d.ts.map +1 -0
  9. package/dist/subscriberbot/SubscriberBotRoutes.d.ts.map +1 -1
  10. package/dist/subscriberbot/SubscriberBotRoutes.js +18 -6
  11. package/dist/subscriberbot/SubscriberBotRoutes.js.map +1 -1
  12. package/dist/subscriberbot/admin/AdminDashboardPage.d.ts.map +1 -1
  13. package/dist/subscriberbot/admin/AdminDashboardPage.js +61 -51
  14. package/dist/subscriberbot/admin/AdminDashboardPage.js.map +1 -1
  15. package/dist/subscriberbot/admin/NegotiationDeskPanel.d.ts +4 -0
  16. package/dist/subscriberbot/admin/NegotiationDeskPanel.d.ts.map +1 -0
  17. package/dist/subscriberbot/admin/NegotiationDeskPanel.js +210 -0
  18. package/dist/subscriberbot/admin/NegotiationDeskPanel.js.map +1 -0
  19. package/dist/subscriberbot/components/negotiations/NegotiationStatusPill.d.ts +8 -0
  20. package/dist/subscriberbot/components/negotiations/NegotiationStatusPill.d.ts.map +1 -0
  21. package/dist/subscriberbot/components/negotiations/NegotiationStatusPill.js +18 -0
  22. package/dist/subscriberbot/components/negotiations/NegotiationStatusPill.js.map +1 -0
  23. package/dist/subscriberbot/components/negotiations/NegotiationTimeline.d.ts +8 -0
  24. package/dist/subscriberbot/components/negotiations/NegotiationTimeline.d.ts.map +1 -0
  25. package/dist/subscriberbot/components/negotiations/NegotiationTimeline.js +49 -0
  26. package/dist/subscriberbot/components/negotiations/NegotiationTimeline.js.map +1 -0
  27. package/dist/subscriberbot/components/negotiations/OutcomeForm.d.ts +13 -0
  28. package/dist/subscriberbot/components/negotiations/OutcomeForm.d.ts.map +1 -0
  29. package/dist/subscriberbot/components/negotiations/OutcomeForm.js +112 -0
  30. package/dist/subscriberbot/components/negotiations/OutcomeForm.js.map +1 -0
  31. package/dist/subscriberbot/components/negotiations/index.d.ts +5 -0
  32. package/dist/subscriberbot/components/negotiations/index.d.ts.map +1 -0
  33. package/dist/subscriberbot/components/negotiations/index.js +4 -0
  34. package/dist/subscriberbot/components/negotiations/labels.d.ts +16 -0
  35. package/dist/subscriberbot/components/negotiations/labels.d.ts.map +1 -0
  36. package/dist/subscriberbot/components/negotiations/labels.js +179 -0
  37. package/dist/subscriberbot/components/negotiations/labels.js.map +1 -0
  38. package/dist/subscriberbot/hooks/useNegotiationApi.d.ts +51 -0
  39. package/dist/subscriberbot/hooks/useNegotiationApi.d.ts.map +1 -0
  40. package/dist/subscriberbot/hooks/useNegotiationApi.js +106 -0
  41. package/dist/subscriberbot/hooks/useNegotiationApi.js.map +1 -0
  42. package/dist/subscriberbot/hooks/useSubscriberBotApi.d.ts +1 -0
  43. package/dist/subscriberbot/hooks/useSubscriberBotApi.d.ts.map +1 -1
  44. package/dist/subscriberbot/hooks/useSubscriberBotApi.js +1 -1
  45. package/dist/subscriberbot/hooks/useSubscriberBotApi.js.map +1 -1
  46. package/dist/subscriberbot/pages/negotiations/NegotiationDetailPage.d.ts +11 -0
  47. package/dist/subscriberbot/pages/negotiations/NegotiationDetailPage.d.ts.map +1 -0
  48. package/dist/subscriberbot/pages/negotiations/NegotiationDetailPage.js +312 -0
  49. package/dist/subscriberbot/pages/negotiations/NegotiationDetailPage.js.map +1 -0
  50. package/dist/subscriberbot/pages/negotiations/NegotiationNewPage.d.ts +11 -0
  51. package/dist/subscriberbot/pages/negotiations/NegotiationNewPage.d.ts.map +1 -0
  52. package/dist/subscriberbot/pages/negotiations/NegotiationNewPage.js +375 -0
  53. package/dist/subscriberbot/pages/negotiations/NegotiationNewPage.js.map +1 -0
  54. package/dist/subscriberbot/pages/negotiations/NegotiationsPage.d.ts +10 -0
  55. package/dist/subscriberbot/pages/negotiations/NegotiationsPage.d.ts.map +1 -0
  56. package/dist/subscriberbot/pages/negotiations/NegotiationsPage.js +155 -0
  57. package/dist/subscriberbot/pages/negotiations/NegotiationsPage.js.map +1 -0
  58. package/dist/subscriberbot/pages/relationships/RelationshipDetailPage.d.ts.map +1 -1
  59. package/dist/subscriberbot/pages/relationships/RelationshipDetailPage.js +321 -307
  60. package/dist/subscriberbot/pages/relationships/RelationshipDetailPage.js.map +1 -1
  61. package/dist/subscriberbot/types/negotiation.d.ts +101 -0
  62. package/dist/subscriberbot/types/negotiation.d.ts.map +1 -0
  63. package/package.json +1 -1
@@ -0,0 +1,112 @@
1
+ import { formatCurrency as e } from "../../utils/formatters.js";
2
+ import { useTr as t } from "../../hooks/useTr.js";
3
+ import { useState as n } from "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ //#region src/subscriberbot/components/negotiations/OutcomeForm.tsx
6
+ var a = "w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", o = "mb-1 block text-xs font-medium text-text-secondary", s = ({ negotiation: s, pending: c, error: l, submitLabel: u, onSubmit: d }) => {
7
+ let f = t(), [p, m] = n("SUCCEEDED"), [h, g] = n(""), [_, v] = n(""), [y, b] = n(""), [x, S] = n(!!s.relationshipId);
8
+ return /* @__PURE__ */ i("form", {
9
+ onSubmit: (e) => {
10
+ e.preventDefault(), d({
11
+ outcome: p,
12
+ ...p === "SUCCEEDED" && h ? { newAmount: Number(h) } : {},
13
+ ...p === "SUCCEEDED" && _ ? { oneTimeCredit: Number(_) } : {},
14
+ ...y.trim() ? { summary: y.trim() } : {},
15
+ ...p === "SUCCEEDED" && s.relationshipId ? { applyToRelationship: x } : {}
16
+ });
17
+ },
18
+ className: "space-y-3",
19
+ "data-testid": "negotiation-outcome-form",
20
+ children: [
21
+ /* @__PURE__ */ i("fieldset", {
22
+ className: "flex flex-wrap gap-4 text-sm text-text-primary",
23
+ children: [
24
+ /* @__PURE__ */ r("legend", {
25
+ className: o,
26
+ children: f("negotiations.outcome.result", "Result")
27
+ }),
28
+ /* @__PURE__ */ i("label", {
29
+ className: "inline-flex items-center gap-2",
30
+ children: [/* @__PURE__ */ r("input", {
31
+ type: "radio",
32
+ name: "outcome",
33
+ checked: p === "SUCCEEDED",
34
+ onChange: () => m("SUCCEEDED")
35
+ }), f("negotiations.outcome.succeeded", "The bill was lowered or credited")]
36
+ }),
37
+ /* @__PURE__ */ i("label", {
38
+ className: "inline-flex items-center gap-2",
39
+ children: [/* @__PURE__ */ r("input", {
40
+ type: "radio",
41
+ name: "outcome",
42
+ checked: p === "NO_SAVINGS",
43
+ onChange: () => m("NO_SAVINGS")
44
+ }), f("negotiations.outcome.noSavings", "No savings offered")]
45
+ })
46
+ ]
47
+ }),
48
+ p === "SUCCEEDED" && /* @__PURE__ */ i("div", {
49
+ className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
50
+ children: [/* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
51
+ htmlFor: "outcome-new-amount",
52
+ className: o,
53
+ children: f("negotiations.outcome.newAmount", "New price ({{current}} today)", { current: e(s.currentAmount, s.currency) })
54
+ }), /* @__PURE__ */ r("input", {
55
+ id: "outcome-new-amount",
56
+ type: "number",
57
+ min: "0",
58
+ step: "0.01",
59
+ value: h,
60
+ onChange: (e) => g(e.target.value),
61
+ className: a
62
+ })] }), /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
63
+ htmlFor: "outcome-credit",
64
+ className: o,
65
+ children: f("negotiations.outcome.credit", "One-off credit or refund")
66
+ }), /* @__PURE__ */ r("input", {
67
+ id: "outcome-credit",
68
+ type: "number",
69
+ min: "0",
70
+ step: "0.01",
71
+ value: _,
72
+ onChange: (e) => v(e.target.value),
73
+ className: a
74
+ })] })]
75
+ }),
76
+ /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
77
+ htmlFor: "outcome-summary",
78
+ className: o,
79
+ children: f("negotiations.outcome.summary", "What was agreed")
80
+ }), /* @__PURE__ */ r("textarea", {
81
+ id: "outcome-summary",
82
+ rows: 2,
83
+ value: y,
84
+ onChange: (e) => b(e.target.value),
85
+ className: a
86
+ })] }),
87
+ p === "SUCCEEDED" && s.relationshipId && /* @__PURE__ */ i("label", {
88
+ className: "inline-flex items-center gap-2 text-sm text-text-primary",
89
+ children: [/* @__PURE__ */ r("input", {
90
+ type: "checkbox",
91
+ checked: x,
92
+ onChange: (e) => S(e.target.checked)
93
+ }), f("negotiations.outcome.apply", "Update the tracked subscription with the new price")]
94
+ }),
95
+ l && /* @__PURE__ */ r("p", {
96
+ role: "alert",
97
+ className: "text-sm text-status-error-text",
98
+ children: l
99
+ }),
100
+ /* @__PURE__ */ r("button", {
101
+ type: "submit",
102
+ disabled: c,
103
+ className: "rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90 disabled:opacity-50",
104
+ children: u
105
+ })
106
+ ]
107
+ });
108
+ };
109
+ //#endregion
110
+ export { s as OutcomeForm };
111
+
112
+ //# sourceMappingURL=OutcomeForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutcomeForm.js","names":[],"sources":["../../../../src/subscriberbot/components/negotiations/OutcomeForm.tsx"],"sourcesContent":["/**\n * Outcome form shared by the customer (self-serve) and the negotiation desk.\n */\nimport { useState, type FC, type FormEvent } from 'react';\nimport { useTr } from '../../hooks/useTr';\nimport { formatCurrency } from '../../utils/formatters';\nimport type {\n SubNegotiation,\n SubNegotiationOutcome,\n SubRecordNegotiationOutcomeInput,\n} from '../../types/negotiation';\n\nconst inputCls =\n 'w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]';\nconst labelCls = 'mb-1 block text-xs font-medium text-text-secondary';\n\ninterface OutcomeFormProps {\n negotiation: SubNegotiation;\n pending: boolean;\n error?: string | null;\n submitLabel: string;\n onSubmit: (input: SubRecordNegotiationOutcomeInput) => void;\n}\n\nexport const OutcomeForm: FC<OutcomeFormProps> = ({\n negotiation,\n pending,\n error,\n submitLabel,\n onSubmit,\n}) => {\n const tr = useTr();\n const [outcome, setOutcome] = useState<SubNegotiationOutcome>('SUCCEEDED');\n const [newAmount, setNewAmount] = useState('');\n const [credit, setCredit] = useState('');\n const [summary, setSummary] = useState('');\n const [apply, setApply] = useState(Boolean(negotiation.relationshipId));\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n onSubmit({\n outcome,\n ...(outcome === 'SUCCEEDED' && newAmount ? { newAmount: Number(newAmount) } : {}),\n ...(outcome === 'SUCCEEDED' && credit ? { oneTimeCredit: Number(credit) } : {}),\n ...(summary.trim() ? { summary: summary.trim() } : {}),\n ...(outcome === 'SUCCEEDED' && negotiation.relationshipId\n ? { applyToRelationship: apply }\n : {}),\n });\n };\n\n return (\n <form onSubmit={handleSubmit} className=\"space-y-3\" data-testid=\"negotiation-outcome-form\">\n <fieldset className=\"flex flex-wrap gap-4 text-sm text-text-primary\">\n <legend className={labelCls}>{tr('negotiations.outcome.result', 'Result')}</legend>\n <label className=\"inline-flex items-center gap-2\">\n <input\n type=\"radio\"\n name=\"outcome\"\n checked={outcome === 'SUCCEEDED'}\n onChange={() => setOutcome('SUCCEEDED')}\n />\n {tr('negotiations.outcome.succeeded', 'The bill was lowered or credited')}\n </label>\n <label className=\"inline-flex items-center gap-2\">\n <input\n type=\"radio\"\n name=\"outcome\"\n checked={outcome === 'NO_SAVINGS'}\n onChange={() => setOutcome('NO_SAVINGS')}\n />\n {tr('negotiations.outcome.noSavings', 'No savings offered')}\n </label>\n </fieldset>\n {outcome === 'SUCCEEDED' && (\n <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-2\">\n <div>\n <label htmlFor=\"outcome-new-amount\" className={labelCls}>\n {tr('negotiations.outcome.newAmount', 'New price ({{current}} today)', {\n current: formatCurrency(negotiation.currentAmount, negotiation.currency),\n })}\n </label>\n <input\n id=\"outcome-new-amount\"\n type=\"number\"\n min=\"0\"\n step=\"0.01\"\n value={newAmount}\n onChange={(e) => setNewAmount(e.target.value)}\n className={inputCls}\n />\n </div>\n <div>\n <label htmlFor=\"outcome-credit\" className={labelCls}>\n {tr('negotiations.outcome.credit', 'One-off credit or refund')}\n </label>\n <input\n id=\"outcome-credit\"\n type=\"number\"\n min=\"0\"\n step=\"0.01\"\n value={credit}\n onChange={(e) => setCredit(e.target.value)}\n className={inputCls}\n />\n </div>\n </div>\n )}\n <div>\n <label htmlFor=\"outcome-summary\" className={labelCls}>\n {tr('negotiations.outcome.summary', 'What was agreed')}\n </label>\n <textarea\n id=\"outcome-summary\"\n rows={2}\n value={summary}\n onChange={(e) => setSummary(e.target.value)}\n className={inputCls}\n />\n </div>\n {outcome === 'SUCCEEDED' && negotiation.relationshipId && (\n <label className=\"inline-flex items-center gap-2 text-sm text-text-primary\">\n <input type=\"checkbox\" checked={apply} onChange={(e) => setApply(e.target.checked)} />\n {tr('negotiations.outcome.apply', 'Update the tracked subscription with the new price')}\n </label>\n )}\n {error && (\n <p role=\"alert\" className=\"text-sm text-status-error-text\">\n {error}\n </p>\n )}\n <button\n type=\"submit\"\n disabled={pending}\n className=\"rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90 disabled:opacity-50\"\n >\n {submitLabel}\n </button>\n </form>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './labels';
2
+ export { NegotiationStatusPill } from './NegotiationStatusPill';
3
+ export { NegotiationTimeline } from './NegotiationTimeline';
4
+ export { OutcomeForm } from './OutcomeForm';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/subscriberbot/components/negotiations/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "./labels.js";
2
+ import "./NegotiationStatusPill.js";
3
+ import "./NegotiationTimeline.js";
4
+ import "./OutcomeForm.js";
@@ -0,0 +1,16 @@
1
+ import { SubNegotiationBillType, SubNegotiationEventKind, SubNegotiationFeeStatus, SubNegotiationStatus, SubNegotiationTarget } from '../../types/negotiation';
2
+
3
+ export type Label = {
4
+ key: string;
5
+ fallback: string;
6
+ };
7
+ export declare const BILL_TYPES: SubNegotiationBillType[];
8
+ export declare const BILL_TYPE_LABEL: Record<SubNegotiationBillType, Label>;
9
+ export declare const TARGETS: SubNegotiationTarget[];
10
+ export declare const TARGET_LABEL: Record<SubNegotiationTarget, Label>;
11
+ export declare const STATUS_LABEL: Record<SubNegotiationStatus, Label>;
12
+ export declare const FEE_STATUS_LABEL: Record<SubNegotiationFeeStatus, Label>;
13
+ export declare const EVENT_LABEL: Record<SubNegotiationEventKind, Label>;
14
+ export declare function statusTone(status: SubNegotiationStatus): string;
15
+ export declare const OPEN_STATUSES: SubNegotiationStatus[];
16
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../../src/subscriberbot/components/negotiations/labels.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,KAAK,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,UAAU,EAAE,sBAAsB,EAS9C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,sBAAsB,EAAE,KAAK,CASjE,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,oBAAoB,EAMzC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAY5D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAQ5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,uBAAuB,EAAE,KAAK,CAKnE,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,uBAAuB,EAAE,KAAK,CAc9D,CAAC;AAYF,wBAAgB,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAE/D;AAED,eAAO,MAAM,aAAa,EAAE,oBAAoB,EAK/C,CAAC"}
@@ -0,0 +1,179 @@
1
+ //#region src/subscriberbot/components/negotiations/labels.ts
2
+ var e = [
3
+ "INTERNET",
4
+ "CABLE_TV",
5
+ "MOBILE_PHONE",
6
+ "HOME_PHONE",
7
+ "INSURANCE",
8
+ "UTILITY",
9
+ "SUBSCRIPTION",
10
+ "OTHER"
11
+ ], t = {
12
+ CABLE_TV: {
13
+ key: "negotiations.billType.cableTv",
14
+ fallback: "Cable TV"
15
+ },
16
+ INTERNET: {
17
+ key: "negotiations.billType.internet",
18
+ fallback: "Internet"
19
+ },
20
+ MOBILE_PHONE: {
21
+ key: "negotiations.billType.mobilePhone",
22
+ fallback: "Mobile phone"
23
+ },
24
+ HOME_PHONE: {
25
+ key: "negotiations.billType.homePhone",
26
+ fallback: "Home phone"
27
+ },
28
+ INSURANCE: {
29
+ key: "negotiations.billType.insurance",
30
+ fallback: "Insurance"
31
+ },
32
+ UTILITY: {
33
+ key: "negotiations.billType.utility",
34
+ fallback: "Utility"
35
+ },
36
+ SUBSCRIPTION: {
37
+ key: "negotiations.billType.subscription",
38
+ fallback: "Subscription"
39
+ },
40
+ OTHER: {
41
+ key: "negotiations.billType.other",
42
+ fallback: "Other"
43
+ }
44
+ }, n = [
45
+ "LOWER_PRICE",
46
+ "REMOVE_FEES",
47
+ "BETTER_PLAN_SAME_PRICE",
48
+ "RETENTION_OFFER",
49
+ "CANCEL_IF_NO_DEAL"
50
+ ], r = {
51
+ LOWER_PRICE: {
52
+ key: "negotiations.target.lowerPrice",
53
+ fallback: "Lower the price"
54
+ },
55
+ REMOVE_FEES: {
56
+ key: "negotiations.target.removeFees",
57
+ fallback: "Remove fees"
58
+ },
59
+ BETTER_PLAN_SAME_PRICE: {
60
+ key: "negotiations.target.betterPlan",
61
+ fallback: "Better plan for the same price"
62
+ },
63
+ RETENTION_OFFER: {
64
+ key: "negotiations.target.retention",
65
+ fallback: "Best retention offer"
66
+ },
67
+ CANCEL_IF_NO_DEAL: {
68
+ key: "negotiations.target.cancelIfNoDeal",
69
+ fallback: "Lower the price or cancel"
70
+ }
71
+ }, i = {
72
+ DRAFT: {
73
+ key: "negotiations.status.draft",
74
+ fallback: "Draft"
75
+ },
76
+ SUBMITTED: {
77
+ key: "negotiations.status.submitted",
78
+ fallback: "Submitted"
79
+ },
80
+ IN_PROGRESS: {
81
+ key: "negotiations.status.inProgress",
82
+ fallback: "Negotiating"
83
+ },
84
+ AWAITING_CUSTOMER: {
85
+ key: "negotiations.status.awaitingCustomer",
86
+ fallback: "Needs your reply"
87
+ },
88
+ SUCCEEDED: {
89
+ key: "negotiations.status.succeeded",
90
+ fallback: "Bill lowered"
91
+ },
92
+ NO_SAVINGS: {
93
+ key: "negotiations.status.noSavings",
94
+ fallback: "No savings"
95
+ },
96
+ CANCELLED: {
97
+ key: "negotiations.status.cancelled",
98
+ fallback: "Cancelled"
99
+ }
100
+ }, a = {
101
+ NONE: {
102
+ key: "negotiations.fee.none",
103
+ fallback: "No fee"
104
+ },
105
+ PENDING_BILLING: {
106
+ key: "negotiations.fee.pending",
107
+ fallback: "Fee pending"
108
+ },
109
+ BILLED: {
110
+ key: "negotiations.fee.billed",
111
+ fallback: "Fee billed"
112
+ },
113
+ WAIVED: {
114
+ key: "negotiations.fee.waived",
115
+ fallback: "Fee waived"
116
+ }
117
+ }, o = {
118
+ CREATED: {
119
+ key: "negotiations.event.created",
120
+ fallback: "Request created"
121
+ },
122
+ UPDATED: {
123
+ key: "negotiations.event.updated",
124
+ fallback: "Details updated"
125
+ },
126
+ SUBMITTED: {
127
+ key: "negotiations.event.submitted",
128
+ fallback: "Submitted"
129
+ },
130
+ STATUS_CHANGED: {
131
+ key: "negotiations.event.statusChanged",
132
+ fallback: "Status changed"
133
+ },
134
+ NOTE: {
135
+ key: "negotiations.event.note",
136
+ fallback: "Message"
137
+ },
138
+ OUTCOME_RECORDED: {
139
+ key: "negotiations.event.outcome",
140
+ fallback: "Outcome recorded"
141
+ },
142
+ FEE_BILLED: {
143
+ key: "negotiations.event.feeBilled",
144
+ fallback: "Success fee billed"
145
+ },
146
+ FEE_BILLING_FAILED: {
147
+ key: "negotiations.event.feeBillingFailed",
148
+ fallback: "Fee billing failed (will be retried)"
149
+ },
150
+ FEE_WAIVED: {
151
+ key: "negotiations.event.feeWaived",
152
+ fallback: "Success fee waived"
153
+ },
154
+ CANCELLED: {
155
+ key: "negotiations.event.cancelled",
156
+ fallback: "Cancelled"
157
+ }
158
+ }, s = {
159
+ DRAFT: "bg-bg-sunken text-text-secondary",
160
+ SUBMITTED: "bg-[var(--color-accent-soft)] text-text-primary",
161
+ IN_PROGRESS: "bg-[var(--color-accent-soft)] text-text-primary",
162
+ AWAITING_CUSTOMER: "bg-status-warning-bg-subtle text-status-warning-text",
163
+ SUCCEEDED: "bg-status-success-bg-subtle text-status-success-text",
164
+ NO_SAVINGS: "bg-bg-sunken text-text-secondary",
165
+ CANCELLED: "bg-bg-sunken text-text-secondary"
166
+ };
167
+ function c(e) {
168
+ return s[e];
169
+ }
170
+ var l = [
171
+ "DRAFT",
172
+ "SUBMITTED",
173
+ "IN_PROGRESS",
174
+ "AWAITING_CUSTOMER"
175
+ ];
176
+ //#endregion
177
+ export { e as BILL_TYPES, t as BILL_TYPE_LABEL, o as EVENT_LABEL, a as FEE_STATUS_LABEL, l as OPEN_STATUSES, i as STATUS_LABEL, n as TARGETS, r as TARGET_LABEL, c as statusTone };
178
+
179
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","names":[],"sources":["../../../../src/subscriberbot/components/negotiations/labels.ts"],"sourcesContent":["/**\n * Bill negotiation labels (BOFF-4154): i18n keys with English fallbacks.\n */\nimport type {\n SubNegotiationBillType,\n SubNegotiationEventKind,\n SubNegotiationFeeStatus,\n SubNegotiationStatus,\n SubNegotiationTarget,\n} from '../../types/negotiation';\n\nexport type Label = { key: string; fallback: string };\n\nexport const BILL_TYPES: SubNegotiationBillType[] = [\n 'INTERNET',\n 'CABLE_TV',\n 'MOBILE_PHONE',\n 'HOME_PHONE',\n 'INSURANCE',\n 'UTILITY',\n 'SUBSCRIPTION',\n 'OTHER',\n];\n\nexport const BILL_TYPE_LABEL: Record<SubNegotiationBillType, Label> = {\n CABLE_TV: { key: 'negotiations.billType.cableTv', fallback: 'Cable TV' },\n INTERNET: { key: 'negotiations.billType.internet', fallback: 'Internet' },\n MOBILE_PHONE: { key: 'negotiations.billType.mobilePhone', fallback: 'Mobile phone' },\n HOME_PHONE: { key: 'negotiations.billType.homePhone', fallback: 'Home phone' },\n INSURANCE: { key: 'negotiations.billType.insurance', fallback: 'Insurance' },\n UTILITY: { key: 'negotiations.billType.utility', fallback: 'Utility' },\n SUBSCRIPTION: { key: 'negotiations.billType.subscription', fallback: 'Subscription' },\n OTHER: { key: 'negotiations.billType.other', fallback: 'Other' },\n};\n\nexport const TARGETS: SubNegotiationTarget[] = [\n 'LOWER_PRICE',\n 'REMOVE_FEES',\n 'BETTER_PLAN_SAME_PRICE',\n 'RETENTION_OFFER',\n 'CANCEL_IF_NO_DEAL',\n];\n\nexport const TARGET_LABEL: Record<SubNegotiationTarget, Label> = {\n LOWER_PRICE: { key: 'negotiations.target.lowerPrice', fallback: 'Lower the price' },\n REMOVE_FEES: { key: 'negotiations.target.removeFees', fallback: 'Remove fees' },\n BETTER_PLAN_SAME_PRICE: {\n key: 'negotiations.target.betterPlan',\n fallback: 'Better plan for the same price',\n },\n RETENTION_OFFER: { key: 'negotiations.target.retention', fallback: 'Best retention offer' },\n CANCEL_IF_NO_DEAL: {\n key: 'negotiations.target.cancelIfNoDeal',\n fallback: 'Lower the price or cancel',\n },\n};\n\nexport const STATUS_LABEL: Record<SubNegotiationStatus, Label> = {\n DRAFT: { key: 'negotiations.status.draft', fallback: 'Draft' },\n SUBMITTED: { key: 'negotiations.status.submitted', fallback: 'Submitted' },\n IN_PROGRESS: { key: 'negotiations.status.inProgress', fallback: 'Negotiating' },\n AWAITING_CUSTOMER: { key: 'negotiations.status.awaitingCustomer', fallback: 'Needs your reply' },\n SUCCEEDED: { key: 'negotiations.status.succeeded', fallback: 'Bill lowered' },\n NO_SAVINGS: { key: 'negotiations.status.noSavings', fallback: 'No savings' },\n CANCELLED: { key: 'negotiations.status.cancelled', fallback: 'Cancelled' },\n};\n\nexport const FEE_STATUS_LABEL: Record<SubNegotiationFeeStatus, Label> = {\n NONE: { key: 'negotiations.fee.none', fallback: 'No fee' },\n PENDING_BILLING: { key: 'negotiations.fee.pending', fallback: 'Fee pending' },\n BILLED: { key: 'negotiations.fee.billed', fallback: 'Fee billed' },\n WAIVED: { key: 'negotiations.fee.waived', fallback: 'Fee waived' },\n};\n\nexport const EVENT_LABEL: Record<SubNegotiationEventKind, Label> = {\n CREATED: { key: 'negotiations.event.created', fallback: 'Request created' },\n UPDATED: { key: 'negotiations.event.updated', fallback: 'Details updated' },\n SUBMITTED: { key: 'negotiations.event.submitted', fallback: 'Submitted' },\n STATUS_CHANGED: { key: 'negotiations.event.statusChanged', fallback: 'Status changed' },\n NOTE: { key: 'negotiations.event.note', fallback: 'Message' },\n OUTCOME_RECORDED: { key: 'negotiations.event.outcome', fallback: 'Outcome recorded' },\n FEE_BILLED: { key: 'negotiations.event.feeBilled', fallback: 'Success fee billed' },\n FEE_BILLING_FAILED: {\n key: 'negotiations.event.feeBillingFailed',\n fallback: 'Fee billing failed (will be retried)',\n },\n FEE_WAIVED: { key: 'negotiations.event.feeWaived', fallback: 'Success fee waived' },\n CANCELLED: { key: 'negotiations.event.cancelled', fallback: 'Cancelled' },\n};\n\nconst STATUS_TONE: Record<SubNegotiationStatus, string> = {\n DRAFT: 'bg-bg-sunken text-text-secondary',\n SUBMITTED: 'bg-[var(--color-accent-soft)] text-text-primary',\n IN_PROGRESS: 'bg-[var(--color-accent-soft)] text-text-primary',\n AWAITING_CUSTOMER: 'bg-status-warning-bg-subtle text-status-warning-text',\n SUCCEEDED: 'bg-status-success-bg-subtle text-status-success-text',\n NO_SAVINGS: 'bg-bg-sunken text-text-secondary',\n CANCELLED: 'bg-bg-sunken text-text-secondary',\n};\n\nexport function statusTone(status: SubNegotiationStatus): string {\n return STATUS_TONE[status];\n}\n\nexport const OPEN_STATUSES: SubNegotiationStatus[] = [\n 'DRAFT',\n 'SUBMITTED',\n 'IN_PROGRESS',\n 'AWAITING_CUSTOMER',\n];\n"],"mappings":";AAaA,IAAa,IAAuC;CAClD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,IAAyD;CACpE,UAAU;EAAE,KAAK;EAAiC,UAAU;CAAW;CACvE,UAAU;EAAE,KAAK;EAAkC,UAAU;CAAW;CACxE,cAAc;EAAE,KAAK;EAAqC,UAAU;CAAe;CACnF,YAAY;EAAE,KAAK;EAAmC,UAAU;CAAa;CAC7E,WAAW;EAAE,KAAK;EAAmC,UAAU;CAAY;CAC3E,SAAS;EAAE,KAAK;EAAiC,UAAU;CAAU;CACrE,cAAc;EAAE,KAAK;EAAsC,UAAU;CAAe;CACpF,OAAO;EAAE,KAAK;EAA+B,UAAU;CAAQ;AACjE,GAEa,IAAkC;CAC7C;CACA;CACA;CACA;CACA;AACF,GAEa,IAAoD;CAC/D,aAAa;EAAE,KAAK;EAAkC,UAAU;CAAkB;CAClF,aAAa;EAAE,KAAK;EAAkC,UAAU;CAAc;CAC9E,wBAAwB;EACtB,KAAK;EACL,UAAU;CACZ;CACA,iBAAiB;EAAE,KAAK;EAAiC,UAAU;CAAuB;CAC1F,mBAAmB;EACjB,KAAK;EACL,UAAU;CACZ;AACF,GAEa,IAAoD;CAC/D,OAAO;EAAE,KAAK;EAA6B,UAAU;CAAQ;CAC7D,WAAW;EAAE,KAAK;EAAiC,UAAU;CAAY;CACzE,aAAa;EAAE,KAAK;EAAkC,UAAU;CAAc;CAC9E,mBAAmB;EAAE,KAAK;EAAwC,UAAU;CAAmB;CAC/F,WAAW;EAAE,KAAK;EAAiC,UAAU;CAAe;CAC5E,YAAY;EAAE,KAAK;EAAiC,UAAU;CAAa;CAC3E,WAAW;EAAE,KAAK;EAAiC,UAAU;CAAY;AAC3E,GAEa,IAA2D;CACtE,MAAM;EAAE,KAAK;EAAyB,UAAU;CAAS;CACzD,iBAAiB;EAAE,KAAK;EAA4B,UAAU;CAAc;CAC5E,QAAQ;EAAE,KAAK;EAA2B,UAAU;CAAa;CACjE,QAAQ;EAAE,KAAK;EAA2B,UAAU;CAAa;AACnE,GAEa,IAAsD;CACjE,SAAS;EAAE,KAAK;EAA8B,UAAU;CAAkB;CAC1E,SAAS;EAAE,KAAK;EAA8B,UAAU;CAAkB;CAC1E,WAAW;EAAE,KAAK;EAAgC,UAAU;CAAY;CACxE,gBAAgB;EAAE,KAAK;EAAoC,UAAU;CAAiB;CACtF,MAAM;EAAE,KAAK;EAA2B,UAAU;CAAU;CAC5D,kBAAkB;EAAE,KAAK;EAA8B,UAAU;CAAmB;CACpF,YAAY;EAAE,KAAK;EAAgC,UAAU;CAAqB;CAClF,oBAAoB;EAClB,KAAK;EACL,UAAU;CACZ;CACA,YAAY;EAAE,KAAK;EAAgC,UAAU;CAAqB;CAClF,WAAW;EAAE,KAAK;EAAgC,UAAU;CAAY;AAC1E,GAEM,IAAoD;CACxD,OAAO;CACP,WAAW;CACX,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX,YAAY;CACZ,WAAW;AACb;AAEA,SAAgB,EAAW,GAAsC;CAC/D,OAAO,EAAY;AACrB;AAEA,IAAa,IAAwC;CACnD;CACA;CACA;CACA;AACF"}
@@ -0,0 +1,51 @@
1
+ import { SubConnection, PaginationInput } from '../types';
2
+ import { SubCreateNegotiationInput, SubNegotiation, SubNegotiationStatus, SubNegotiationSummary, SubNegotiationTerms, SubRecordNegotiationOutcomeInput } from '../types/negotiation';
3
+
4
+ export declare const useNegotiationTerms: () => import('@tanstack/react-query').UseQueryResult<SubNegotiationTerms, Error>;
5
+ export declare const useNegotiations: (status?: SubNegotiationStatus | null, relationshipId?: string | null, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<SubConnection<SubNegotiation>, Error>;
6
+ export declare const useNegotiation: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<SubNegotiation | null, Error>;
7
+ export declare const useNegotiationSummary: () => import('@tanstack/react-query').UseQueryResult<SubNegotiationSummary, Error>;
8
+ export declare const useCreateNegotiation: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
9
+ input: SubCreateNegotiationInput;
10
+ }, unknown>;
11
+ export declare const useUpdateNegotiation: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
12
+ id: string;
13
+ input: Omit<SubCreateNegotiationInput, "relationshipId">;
14
+ }, unknown>;
15
+ export declare const useSubmitNegotiation: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
16
+ id: string;
17
+ input?: {
18
+ acceptAuthorization?: boolean;
19
+ authorizationVersion?: string;
20
+ };
21
+ }, unknown>;
22
+ export declare const useCancelNegotiation: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
23
+ id: string;
24
+ reason?: string | null;
25
+ }, unknown>;
26
+ export declare const useAddNegotiationNote: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
27
+ id: string;
28
+ message: string;
29
+ }, unknown>;
30
+ export declare const useRecordNegotiationOutcome: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
31
+ id: string;
32
+ input: SubRecordNegotiationOutcomeInput;
33
+ }, unknown>;
34
+ export declare const useDeskNegotiations: (status?: SubNegotiationStatus | null) => import('@tanstack/react-query').UseQueryResult<SubConnection<SubNegotiation>, Error>;
35
+ export declare const useDeskSetStatus: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
36
+ id: string;
37
+ status: SubNegotiationStatus;
38
+ message?: string | null;
39
+ }, unknown>;
40
+ export declare const useDeskRecordOutcome: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
41
+ id: string;
42
+ input: SubRecordNegotiationOutcomeInput;
43
+ }, unknown>;
44
+ export declare const useDeskRetryFeeBilling: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
45
+ id: string;
46
+ }, unknown>;
47
+ export declare const useDeskWaiveFee: () => import('@tanstack/react-query').UseMutationResult<SubNegotiation, Error, {
48
+ id: string;
49
+ reason: string;
50
+ }, unknown>;
51
+ //# sourceMappingURL=useNegotiationApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNegotiationApi.d.ts","sourceRoot":"","sources":["../../../src/subscriberbot/hooks/useNegotiationApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EACV,yBAAyB,EACzB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,sBAAsB,CAAC;AAwB9B,eAAO,MAAM,mBAAmB,kFAgB/B,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAQ,oBAAoB,GAAG,IAAW,EAC1C,iBAAgB,MAAM,GAAG,IAAW,EACpC,aAAY,eAA+B,yFAmB5C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,GAAG,SAAS,iFAgBpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,oFAkBjC,CAAC;AAyBF,eAAO,MAAM,oBAAoB;WACC,yBAAyB;WAGxD,CAAC;AAEJ,eAAO,MAAM,oBAAoB;QACF,MAAM;WAAS,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;WAG5F,CAAC;AAEJ,eAAO,MAAM,oBAAoB;QAEzB,MAAM;YACF;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAAE;WAIzE,CAAC;AAEJ,eAAO,MAAM,oBAAoB;QACF,MAAM;aAAW,MAAM,GAAG,IAAI;WAG1D,CAAC;AAEJ,eAAO,MAAM,qBAAqB;QACH,MAAM;aAAW,MAAM;WAGnD,CAAC;AAEJ,eAAO,MAAM,2BAA2B;QACT,MAAM;WAAS,gCAAgC;WAG3E,CAAC;AAMJ,eAAO,MAAM,mBAAmB,GAAI,SAAQ,oBAAoB,GAAG,IAAW,yFAkB7E,CAAC;AAEF,eAAO,MAAM,gBAAgB;QACE,MAAM;YAAU,oBAAoB;cAAY,MAAM,GAAG,IAAI;WAGzF,CAAC;AAEJ,eAAO,MAAM,oBAAoB;QACF,MAAM;WAAS,gCAAgC;WAG3E,CAAC;AAEJ,eAAO,MAAM,sBAAsB;QACJ,MAAM;WAGlC,CAAC;AAEJ,eAAO,MAAM,eAAe;QACG,MAAM;YAAU,MAAM;WAGlD,CAAC"}
@@ -0,0 +1,106 @@
1
+ import { useSubscriberBot as e } from "../context/SubscriberBotContext.js";
2
+ import "../context/index.js";
3
+ import { subQuery as t } from "./useSubscriberBotApi.js";
4
+ import { useMutation as n, useQuery as r, useQueryClient as i } from "@tanstack/react-query";
5
+ //#region src/subscriberbot/hooks/useNegotiationApi.ts
6
+ var a = {
7
+ all: ["subscriberbot", "negotiations"],
8
+ list: (e, t) => [
9
+ "subscriberbot",
10
+ "negotiations",
11
+ "list",
12
+ e,
13
+ t
14
+ ],
15
+ one: (e) => [
16
+ "subscriberbot",
17
+ "negotiations",
18
+ "one",
19
+ e
20
+ ],
21
+ summary: [
22
+ "subscriberbot",
23
+ "negotiations",
24
+ "summary"
25
+ ],
26
+ terms: [
27
+ "subscriberbot",
28
+ "negotiations",
29
+ "terms"
30
+ ],
31
+ desk: (e) => [
32
+ "subscriberbot",
33
+ "negotiations",
34
+ "desk",
35
+ e
36
+ ]
37
+ }, o = "\n id workspaceId ownerId relationshipId providerName billType mode status targetOutcome\n currentAmount currency interval targetAmount tenureMonths competitorOffer accountHolderName\n accountHint notes playbook authorizationVersion authorizedAt submittedAt startedAt completedAt\n newAmount oneTimeCredit recurringSavings firstYearSavings outcomeSummary appliedToRelationship\n feeRate feeAmount feeStatus feeBilledAt feeWaivedReason createdAt updatedAt\n", s = "events { id kind fromStatus toStatus message actorRole createdAt }", c = () => {
38
+ let { apiGatewayUrl: n } = e();
39
+ return r({
40
+ queryKey: a.terms,
41
+ queryFn: async () => (await t("query SubNegotiationTerms {\n subNegotiationTerms { authorizationVersion authorizationText managedFeeRate selfServeFeeRate maxAcceptedTermMonths }\n }", {}, n)).subNegotiationTerms,
42
+ staleTime: 300 * 1e3
43
+ });
44
+ }, l = (n = null, i = null, s = { limit: 50 }) => {
45
+ let { apiGatewayUrl: c } = e();
46
+ return r({
47
+ queryKey: a.list(n, i),
48
+ queryFn: async () => (await t(`query SubListNegotiations($pagination: PaginationInput, $status: SubNegotiationStatus, $relationshipId: ID) {
49
+ subListNegotiations(pagination: $pagination, status: $status, relationshipId: $relationshipId) {
50
+ items { ${o} }
51
+ pageInfo { hasMore cursor }
52
+ }
53
+ }`, {
54
+ pagination: s,
55
+ status: n,
56
+ relationshipId: i
57
+ }, c)).subListNegotiations
58
+ });
59
+ }, u = (n) => {
60
+ let { apiGatewayUrl: i } = e();
61
+ return r({
62
+ queryKey: a.one(n ?? ""),
63
+ enabled: !!n,
64
+ queryFn: async () => (await t(`query SubNegotiation($id: ID!) {
65
+ subNegotiation(id: $id) { ${o} ${s} }
66
+ }`, { id: n }, i)).subNegotiation
67
+ });
68
+ }, d = () => {
69
+ let { apiGatewayUrl: n } = e();
70
+ return r({
71
+ queryKey: a.summary,
72
+ queryFn: async () => (await t("query SubNegotiationSummary {\n subNegotiationSummary {\n totalCount openCount succeededCount noSavingsCount\n totals { currency firstYearSavings feesCharged succeededCount }\n }\n }", {}, n)).subNegotiationSummary
73
+ });
74
+ };
75
+ function f(r, o) {
76
+ let s = i(), { apiGatewayUrl: c } = e();
77
+ return n({
78
+ mutationFn: async (e) => {
79
+ let n = (await t(o, e, c))[r];
80
+ if (!n) throw Error(`${r} returned no data`);
81
+ return n;
82
+ },
83
+ onSuccess: () => {
84
+ s.invalidateQueries({ queryKey: a.all });
85
+ }
86
+ });
87
+ }
88
+ var p = `{ ${o} ${s} }`, m = () => f("subCreateNegotiation", `mutation SubCreateNegotiation($input: SubCreateNegotiationInput!) { subCreateNegotiation(input: $input) ${p} }`), h = () => f("subSubmitNegotiation", `mutation SubSubmitNegotiation($id: ID!, $input: SubSubmitNegotiationInput) { subSubmitNegotiation(id: $id, input: $input) ${p} }`), g = () => f("subCancelNegotiation", `mutation SubCancelNegotiation($id: ID!, $reason: String) { subCancelNegotiation(id: $id, reason: $reason) ${p} }`), _ = () => f("subAddNegotiationNote", `mutation SubAddNegotiationNote($id: ID!, $message: String!) { subAddNegotiationNote(id: $id, message: $message) ${p} }`), v = () => f("subRecordNegotiationOutcome", `mutation SubRecordNegotiationOutcome($id: ID!, $input: SubRecordNegotiationOutcomeInput!) { subRecordNegotiationOutcome(id: $id, input: $input) ${p} }`), y = (n = null) => {
89
+ let { apiGatewayUrl: i } = e();
90
+ return r({
91
+ queryKey: a.desk(n),
92
+ queryFn: async () => (await t(`query SubAdminListNegotiations($pagination: PaginationInput, $status: SubNegotiationStatus) {
93
+ subAdminListNegotiations(pagination: $pagination, status: $status) {
94
+ items { ${o} ${s} }
95
+ pageInfo { hasMore cursor }
96
+ }
97
+ }`, {
98
+ pagination: { limit: 50 },
99
+ status: n
100
+ }, i)).subAdminListNegotiations
101
+ });
102
+ }, b = () => f("subAdminSetNegotiationStatus", `mutation SubAdminSetNegotiationStatus($id: ID!, $status: SubNegotiationStatus!, $message: String) { subAdminSetNegotiationStatus(id: $id, status: $status, message: $message) ${p} }`), x = () => f("subAdminRecordNegotiationOutcome", `mutation SubAdminRecordNegotiationOutcome($id: ID!, $input: SubRecordNegotiationOutcomeInput!) { subAdminRecordNegotiationOutcome(id: $id, input: $input) ${p} }`), S = () => f("subAdminRetryNegotiationFeeBilling", `mutation SubAdminRetryNegotiationFeeBilling($id: ID!) { subAdminRetryNegotiationFeeBilling(id: $id) ${p} }`), C = () => f("subAdminWaiveNegotiationFee", `mutation SubAdminWaiveNegotiationFee($id: ID!, $reason: String!) { subAdminWaiveNegotiationFee(id: $id, reason: $reason) ${p} }`);
103
+ //#endregion
104
+ export { _ as useAddNegotiationNote, g as useCancelNegotiation, m as useCreateNegotiation, y as useDeskNegotiations, x as useDeskRecordOutcome, S as useDeskRetryFeeBilling, b as useDeskSetStatus, C as useDeskWaiveFee, u as useNegotiation, d as useNegotiationSummary, c as useNegotiationTerms, l as useNegotiations, v as useRecordNegotiationOutcome, h as useSubmitNegotiation };
105
+
106
+ //# sourceMappingURL=useNegotiationApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNegotiationApi.js","names":[],"sources":["../../../src/subscriberbot/hooks/useNegotiationApi.ts"],"sourcesContent":["/**\n * Bill negotiation hooks (BOFF-4154)\n * @module subscriberbot/hooks\n *\n * React-Query hooks for the `SubNegotiation*` contract of\n * wspace-subscriberbot-svc: the customer's requests, the service terms, the\n * summary and the negotiation desk queue (super admins, in admin-app). Same\n * transport as every other Subscriber Bot hook (`subQuery`).\n */\n\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport { useSubscriberBot } from '../context';\nimport type { SubConnection, PaginationInput } from '../types';\nimport type {\n SubCreateNegotiationInput,\n SubNegotiation,\n SubNegotiationStatus,\n SubNegotiationSummary,\n SubNegotiationTerms,\n SubRecordNegotiationOutcomeInput,\n} from '../types/negotiation';\nimport { subQuery } from './useSubscriberBotApi';\n\nconst KEY = {\n all: ['subscriberbot', 'negotiations'] as const,\n list: (status: SubNegotiationStatus | null, relationshipId: string | null) =>\n ['subscriberbot', 'negotiations', 'list', status, relationshipId] as const,\n one: (id: string) => ['subscriberbot', 'negotiations', 'one', id] as const,\n summary: ['subscriberbot', 'negotiations', 'summary'] as const,\n terms: ['subscriberbot', 'negotiations', 'terms'] as const,\n desk: (status: SubNegotiationStatus | null) =>\n ['subscriberbot', 'negotiations', 'desk', status] as const,\n};\n\nconst NEGOTIATION_FIELDS = `\n id workspaceId ownerId relationshipId providerName billType mode status targetOutcome\n currentAmount currency interval targetAmount tenureMonths competitorOffer accountHolderName\n accountHint notes playbook authorizationVersion authorizedAt submittedAt startedAt completedAt\n newAmount oneTimeCredit recurringSavings firstYearSavings outcomeSummary appliedToRelationship\n feeRate feeAmount feeStatus feeBilledAt feeWaivedReason createdAt updatedAt\n`;\n\nconst EVENT_FIELDS = `events { id kind fromStatus toStatus message actorRole createdAt }`;\n\nexport const useNegotiationTerms = () => {\n const { apiGatewayUrl } = useSubscriberBot();\n return useQuery({\n queryKey: KEY.terms,\n queryFn: async () => {\n const result = await subQuery<{ subNegotiationTerms: SubNegotiationTerms }>(\n `query SubNegotiationTerms {\n subNegotiationTerms { authorizationVersion authorizationText managedFeeRate selfServeFeeRate maxAcceptedTermMonths }\n }`,\n {},\n apiGatewayUrl\n );\n return result.subNegotiationTerms;\n },\n staleTime: 5 * 60 * 1000,\n });\n};\n\nexport const useNegotiations = (\n status: SubNegotiationStatus | null = null,\n relationshipId: string | null = null,\n pagination: PaginationInput = { limit: 50 }\n) => {\n const { apiGatewayUrl } = useSubscriberBot();\n return useQuery({\n queryKey: KEY.list(status, relationshipId),\n queryFn: async () => {\n const result = await subQuery<{ subListNegotiations: SubConnection<SubNegotiation> }>(\n `query SubListNegotiations($pagination: PaginationInput, $status: SubNegotiationStatus, $relationshipId: ID) {\n subListNegotiations(pagination: $pagination, status: $status, relationshipId: $relationshipId) {\n items { ${NEGOTIATION_FIELDS} }\n pageInfo { hasMore cursor }\n }\n }`,\n { pagination, status, relationshipId },\n apiGatewayUrl\n );\n return result.subListNegotiations;\n },\n });\n};\n\nexport const useNegotiation = (id: string | undefined) => {\n const { apiGatewayUrl } = useSubscriberBot();\n return useQuery({\n queryKey: KEY.one(id ?? ''),\n enabled: Boolean(id),\n queryFn: async () => {\n const result = await subQuery<{ subNegotiation: SubNegotiation | null }>(\n `query SubNegotiation($id: ID!) {\n subNegotiation(id: $id) { ${NEGOTIATION_FIELDS} ${EVENT_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.subNegotiation;\n },\n });\n};\n\nexport const useNegotiationSummary = () => {\n const { apiGatewayUrl } = useSubscriberBot();\n return useQuery({\n queryKey: KEY.summary,\n queryFn: async () => {\n const result = await subQuery<{ subNegotiationSummary: SubNegotiationSummary }>(\n `query SubNegotiationSummary {\n subNegotiationSummary {\n totalCount openCount succeededCount noSavingsCount\n totals { currency firstYearSavings feesCharged succeededCount }\n }\n }`,\n {},\n apiGatewayUrl\n );\n return result.subNegotiationSummary;\n },\n });\n};\n\n/** Shared mutation plumbing: every write refreshes every negotiation query. */\nfunction useNegotiationMutation<TVars>(operation: string, document: string) {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useSubscriberBot();\n return useMutation({\n mutationFn: async (variables: TVars) => {\n const result = await subQuery<Record<string, SubNegotiation>>(\n document,\n variables as Record<string, unknown>,\n apiGatewayUrl\n );\n const value = result[operation];\n if (!value) throw new Error(`${operation} returned no data`);\n return value;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: KEY.all });\n },\n });\n}\n\nconst RETURNING = `{ ${NEGOTIATION_FIELDS} ${EVENT_FIELDS} }`;\n\nexport const useCreateNegotiation = () =>\n useNegotiationMutation<{ input: SubCreateNegotiationInput }>(\n 'subCreateNegotiation',\n `mutation SubCreateNegotiation($input: SubCreateNegotiationInput!) { subCreateNegotiation(input: $input) ${RETURNING} }`\n );\n\nexport const useUpdateNegotiation = () =>\n useNegotiationMutation<{ id: string; input: Omit<SubCreateNegotiationInput, 'relationshipId'> }>(\n 'subUpdateNegotiation',\n `mutation SubUpdateNegotiation($id: ID!, $input: SubUpdateNegotiationInput!) { subUpdateNegotiation(id: $id, input: $input) ${RETURNING} }`\n );\n\nexport const useSubmitNegotiation = () =>\n useNegotiationMutation<{\n id: string;\n input?: { acceptAuthorization?: boolean; authorizationVersion?: string };\n }>(\n 'subSubmitNegotiation',\n `mutation SubSubmitNegotiation($id: ID!, $input: SubSubmitNegotiationInput) { subSubmitNegotiation(id: $id, input: $input) ${RETURNING} }`\n );\n\nexport const useCancelNegotiation = () =>\n useNegotiationMutation<{ id: string; reason?: string | null }>(\n 'subCancelNegotiation',\n `mutation SubCancelNegotiation($id: ID!, $reason: String) { subCancelNegotiation(id: $id, reason: $reason) ${RETURNING} }`\n );\n\nexport const useAddNegotiationNote = () =>\n useNegotiationMutation<{ id: string; message: string }>(\n 'subAddNegotiationNote',\n `mutation SubAddNegotiationNote($id: ID!, $message: String!) { subAddNegotiationNote(id: $id, message: $message) ${RETURNING} }`\n );\n\nexport const useRecordNegotiationOutcome = () =>\n useNegotiationMutation<{ id: string; input: SubRecordNegotiationOutcomeInput }>(\n 'subRecordNegotiationOutcome',\n `mutation SubRecordNegotiationOutcome($id: ID!, $input: SubRecordNegotiationOutcomeInput!) { subRecordNegotiationOutcome(id: $id, input: $input) ${RETURNING} }`\n );\n\n// ---------------------------------------------------------------------------\n// Negotiation desk (super admin, admin-app)\n// ---------------------------------------------------------------------------\n\nexport const useDeskNegotiations = (status: SubNegotiationStatus | null = null) => {\n const { apiGatewayUrl } = useSubscriberBot();\n return useQuery({\n queryKey: KEY.desk(status),\n queryFn: async () => {\n const result = await subQuery<{ subAdminListNegotiations: SubConnection<SubNegotiation> }>(\n `query SubAdminListNegotiations($pagination: PaginationInput, $status: SubNegotiationStatus) {\n subAdminListNegotiations(pagination: $pagination, status: $status) {\n items { ${NEGOTIATION_FIELDS} ${EVENT_FIELDS} }\n pageInfo { hasMore cursor }\n }\n }`,\n { pagination: { limit: 50 }, status },\n apiGatewayUrl\n );\n return result.subAdminListNegotiations;\n },\n });\n};\n\nexport const useDeskSetStatus = () =>\n useNegotiationMutation<{ id: string; status: SubNegotiationStatus; message?: string | null }>(\n 'subAdminSetNegotiationStatus',\n `mutation SubAdminSetNegotiationStatus($id: ID!, $status: SubNegotiationStatus!, $message: String) { subAdminSetNegotiationStatus(id: $id, status: $status, message: $message) ${RETURNING} }`\n );\n\nexport const useDeskRecordOutcome = () =>\n useNegotiationMutation<{ id: string; input: SubRecordNegotiationOutcomeInput }>(\n 'subAdminRecordNegotiationOutcome',\n `mutation SubAdminRecordNegotiationOutcome($id: ID!, $input: SubRecordNegotiationOutcomeInput!) { subAdminRecordNegotiationOutcome(id: $id, input: $input) ${RETURNING} }`\n );\n\nexport const useDeskRetryFeeBilling = () =>\n useNegotiationMutation<{ id: string }>(\n 'subAdminRetryNegotiationFeeBilling',\n `mutation SubAdminRetryNegotiationFeeBilling($id: ID!) { subAdminRetryNegotiationFeeBilling(id: $id) ${RETURNING} }`\n );\n\nexport const useDeskWaiveFee = () =>\n useNegotiationMutation<{ id: string; reason: string }>(\n 'subAdminWaiveNegotiationFee',\n `mutation SubAdminWaiveNegotiationFee($id: ID!, $reason: String!) { subAdminWaiveNegotiationFee(id: $id, reason: $reason) ${RETURNING} }`\n );\n"],"mappings":";;;;;AAwBA,IAAM,IAAM;CACV,KAAK,CAAC,iBAAiB,cAAc;CACrC,OAAO,GAAqC,MAC1C;EAAC;EAAiB;EAAgB;EAAQ;EAAQ;CAAc;CAClE,MAAM,MAAe;EAAC;EAAiB;EAAgB;EAAO;CAAE;CAChE,SAAS;EAAC;EAAiB;EAAgB;CAAS;CACpD,OAAO;EAAC;EAAiB;EAAgB;CAAO;CAChD,OAAO,MACL;EAAC;EAAiB;EAAgB;EAAQ;CAAM;AACpD,GAEM,IAAqB,idAQrB,IAAe,sEAER,UAA4B;CACvC,IAAM,EAAE,qBAAkB,EAAiB;CAC3C,OAAO,EAAS;EACd,UAAU,EAAI;EACd,SAAS,aAQA,MAPc,EACnB,0KAGA,CAAC,GACD,CACF,GACc;EAEhB,WAAW,MAAS;CACtB,CAAC;AACH,GAEa,KACX,IAAsC,MACtC,IAAgC,MAChC,IAA8B,EAAE,OAAO,GAAG,MACvC;CACH,IAAM,EAAE,qBAAkB,EAAiB;CAC3C,OAAO,EAAS;EACd,UAAU,EAAI,KAAK,GAAQ,CAAc;EACzC,SAAS,aAWA,MAVc,EACnB;;sBAEc,EAAmB;;;YAIjC;GAAE;GAAY;GAAQ;EAAe,GACrC,CACF,GACc;CAElB,CAAC;AACH,GAEa,KAAkB,MAA2B;CACxD,IAAM,EAAE,qBAAkB,EAAiB;CAC3C,OAAO,EAAS;EACd,UAAU,EAAI,IAAI,KAAM,EAAE;EAC1B,SAAS,EAAQ;EACjB,SAAS,aAQA,MAPc,EACnB;sCAC8B,EAAmB,GAAG,EAAa;YAEjE,EAAE,MAAG,GACL,CACF,GACc;CAElB,CAAC;AACH,GAEa,UAA8B;CACzC,IAAM,EAAE,qBAAkB,EAAiB;CAC3C,OAAO,EAAS;EACd,UAAU,EAAI;EACd,SAAS,aAWA,MAVc,EACnB,yOAMA,CAAC,GACD,CACF,GACc;CAElB,CAAC;AACH;AAGA,SAAS,EAA8B,GAAmB,GAAkB;CAC1E,IAAM,IAAc,EAAe,GAC7B,EAAE,qBAAkB,EAAiB;CAC3C,OAAO,EAAY;EACjB,YAAY,OAAO,MAAqB;GAMtC,IAAM,KAAQ,MALO,EACnB,GACA,GACA,CACF,GACqB;GACrB,IAAI,CAAC,GAAO,MAAU,MAAM,GAAG,EAAU,kBAAkB;GAC3D,OAAO;EACT;EACA,iBAAiB;GACf,EAAiB,kBAAkB,EAAE,UAAU,EAAI,IAAI,CAAC;EAC1D;CACF,CAAC;AACH;AAEA,IAAM,IAAY,KAAK,EAAmB,GAAG,EAAa,KAE7C,UACX,EACE,wBACA,2GAA2G,EAAU,GACvH,GAQW,UACX,EAIE,wBACA,6HAA6H,EAAU,GACzI,GAEW,UACX,EACE,wBACA,6GAA6G,EAAU,GACzH,GAEW,UACX,EACE,yBACA,mHAAmH,EAAU,GAC/H,GAEW,UACX,EACE,+BACA,mJAAmJ,EAAU,GAC/J,GAMW,KAAuB,IAAsC,SAAS;CACjF,IAAM,EAAE,qBAAkB,EAAiB;CAC3C,OAAO,EAAS;EACd,UAAU,EAAI,KAAK,CAAM;EACzB,SAAS,aAWA,MAVc,EACnB;;sBAEc,EAAmB,GAAG,EAAa;;;YAIjD;GAAE,YAAY,EAAE,OAAO,GAAG;GAAG;EAAO,GACpC,CACF,GACc;CAElB,CAAC;AACH,GAEa,UACX,EACE,gCACA,iLAAiL,EAAU,GAC7L,GAEW,UACX,EACE,oCACA,6JAA6J,EAAU,GACzK,GAEW,UACX,EACE,sCACA,uGAAuG,EAAU,GACnH,GAEW,UACX,EACE,+BACA,4HAA4H,EAAU,GACxI"}
@@ -1,5 +1,6 @@
1
1
  import { PaginationInput, SubAdapterSubmission, SubAgentKind, SubAgentStatus, SubAiAgent, SubAsset, SubBenchmarkDataPoint, SubCommunicationChannel, SubConnection, SubCreateAgentInput, SubCreateAssetInput, SubCreateChannelInput, SubCreateEntitlementInput, SubCreateInvoiceInput, SubCreatePaymentInstrumentInput, SubCreatePlanInput, SubCreatePolicyInput, SubCreateProviderInput, SubCreateRelationshipInput, SubCreateWorkflowInput, SubAgentRunResult, SubDecision, SubDecisionFilter, SubDecisionResult, SubConsolidateRelationshipsInput, SubConsolidationResult, SubSavingsOverview, SubEnterpriseSpendDashboard, SubEntitlement, SubInboxMessage, SubIngestMessageInput, SubInvoice, SubInvoiceStatus, SubMarketplaceReport, SubMessageCategory, SubModerationAction, SubPaymentInstrument, SubPlan, SubPolicy, SubProvider, SubProviderCategory, SubProviderStatus, SubRelationship, SubRelationshipKind, SubRelationshipStatus, SubRenewalEvent, SubReportStatus, SubSetSpendBudgetInput, SubSpendBudget, SubSubmissionStatus, SubUpdateProviderInput, SubUpdateRelationshipInput, SubWorkflow, SubWorkflowStatus } from '../types';
2
2
 
3
+ export declare const subQuery: <TData>(query: string, variables: Record<string, unknown>, baseUrl?: string) => Promise<TData>;
3
4
  export interface RelationshipListFilters {
4
5
  kind?: SubRelationshipKind;
5
6
  status?: SubRelationshipStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"useSubscriberBotApi.d.ts","sourceRoot":"","sources":["../../../src/subscriberbot/hooks/useSubscriberBotApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSubscriberBotApi.d.ts","sourceRoot":"","sources":["../../../src/subscriberbot/hooks/useSubscriberBotApi.ts"],"names":[],"mappings":"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"}
@@ -849,6 +849,6 @@ var c = async (e, t, n) => {
849
849
  });
850
850
  };
851
851
  //#endregion
852
- export { Te as useActivateWorkflow, Ee as useAdapterSubmissions, le as useAgent, ce as useAgents, j as useAllAssets, _e as useApplyDecision, De as useApproveAdapter, B as useArchiveProvider, U as useBenchmarkDataPoints, D as useCancelRelationship, ae as useChannels, xe as useConsolidateRelationships, ue as useCreateAgent, M as useCreateAsset, oe as useCreateChannel, A as useCreateEntitlement, Y as useCreateInvoice, re as useCreatePaymentInstrument, H as useCreatePlan, fe as useCreatePolicy, R as useCreateProvider, T as useCreateRelationship, we as useCreateWorkflow, he as useDecision, me as useDecisions, Se as useDismissBundle, ve as useDismissDecision, je as useEnterpriseSpendDashboard, F as useFileDownloadUrl, W as useInboxMessages, K as useIngestMessage, q as useInvoices, J as useMarkInvoicePaid, G as useMarkMessageRead, Q as useMarketplaceReports, ke as useModerateListing, X as usePaymentInstruments, V as usePlans, L as useProvider, I as useProviders, Oe as useRejectAdapter, w as useRelationship, C as useRelationships, ie as useRemovePaymentInstrument, k as useRenewalEvents, ge as useRunAgent, be as useSavingsOverview, de as useSetAgentStatus, Ne as useSetSpendBudget, Me as useSpendBudgets, E as useTransitionRelationship, z as useUpdateProvider, O as useUpdateRelationship, P as useUploadFile, se as useVerifyChannel, Ce as useWorkflows };
852
+ export { c as subQuery, Te as useActivateWorkflow, Ee as useAdapterSubmissions, le as useAgent, ce as useAgents, j as useAllAssets, _e as useApplyDecision, De as useApproveAdapter, B as useArchiveProvider, U as useBenchmarkDataPoints, D as useCancelRelationship, ae as useChannels, xe as useConsolidateRelationships, ue as useCreateAgent, M as useCreateAsset, oe as useCreateChannel, A as useCreateEntitlement, Y as useCreateInvoice, re as useCreatePaymentInstrument, H as useCreatePlan, fe as useCreatePolicy, R as useCreateProvider, T as useCreateRelationship, we as useCreateWorkflow, he as useDecision, me as useDecisions, Se as useDismissBundle, ve as useDismissDecision, je as useEnterpriseSpendDashboard, F as useFileDownloadUrl, W as useInboxMessages, K as useIngestMessage, q as useInvoices, J as useMarkInvoicePaid, G as useMarkMessageRead, Q as useMarketplaceReports, ke as useModerateListing, X as usePaymentInstruments, V as usePlans, L as useProvider, I as useProviders, Oe as useRejectAdapter, w as useRelationship, C as useRelationships, ie as useRemovePaymentInstrument, k as useRenewalEvents, ge as useRunAgent, be as useSavingsOverview, de as useSetAgentStatus, Ne as useSetSpendBudget, Me as useSpendBudgets, E as useTransitionRelationship, z as useUpdateProvider, O as useUpdateRelationship, P as useUploadFile, se as useVerifyChannel, Ce as useWorkflows };
853
853
 
854
854
  //# sourceMappingURL=useSubscriberBotApi.js.map