@happyvertical/smrt-sales 0.39.2

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 (201) hide show
  1. package/AGENTS.md +87 -0
  2. package/CLAUDE.md +1 -0
  3. package/LICENSE +7 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/__smrt-register__.d.ts +2 -0
  6. package/dist/__smrt-register__.d.ts.map +1 -0
  7. package/dist/chunks/__smrt-register__-kWdT7LOt.js +6 -0
  8. package/dist/chunks/__smrt-register__-kWdT7LOt.js.map +1 -0
  9. package/dist/chunks/commissions-BCxqOKVM.js +2181 -0
  10. package/dist/chunks/commissions-BCxqOKVM.js.map +1 -0
  11. package/dist/chunks/crm-DwEz7E2r.js +1428 -0
  12. package/dist/chunks/crm-DwEz7E2r.js.map +1 -0
  13. package/dist/chunks/referrals-BY47p70T.js +2880 -0
  14. package/dist/chunks/referrals-BY47p70T.js.map +1 -0
  15. package/dist/commissions/collections/CommissionAdjustmentCollection.d.ts +26 -0
  16. package/dist/commissions/collections/CommissionAdjustmentCollection.d.ts.map +1 -0
  17. package/dist/commissions/collections/CommissionCollection.d.ts +43 -0
  18. package/dist/commissions/collections/CommissionCollection.d.ts.map +1 -0
  19. package/dist/commissions/collections/CommissionPayoutCollection.d.ts +19 -0
  20. package/dist/commissions/collections/CommissionPayoutCollection.d.ts.map +1 -0
  21. package/dist/commissions/collections/CommissionPlanCollection.d.ts +46 -0
  22. package/dist/commissions/collections/CommissionPlanCollection.d.ts.map +1 -0
  23. package/dist/commissions/collections/EarnerCollection.d.ts +14 -0
  24. package/dist/commissions/collections/EarnerCollection.d.ts.map +1 -0
  25. package/dist/commissions/collections/EarningEventCollection.d.ts +27 -0
  26. package/dist/commissions/collections/EarningEventCollection.d.ts.map +1 -0
  27. package/dist/commissions/collections/index.d.ts +11 -0
  28. package/dist/commissions/collections/index.d.ts.map +1 -0
  29. package/dist/commissions/index.d.ts +20 -0
  30. package/dist/commissions/index.d.ts.map +1 -0
  31. package/dist/commissions/models/Commission.d.ts +150 -0
  32. package/dist/commissions/models/Commission.d.ts.map +1 -0
  33. package/dist/commissions/models/CommissionAdjustment.d.ts +62 -0
  34. package/dist/commissions/models/CommissionAdjustment.d.ts.map +1 -0
  35. package/dist/commissions/models/CommissionPayout.d.ts +119 -0
  36. package/dist/commissions/models/CommissionPayout.d.ts.map +1 -0
  37. package/dist/commissions/models/CommissionPlan.d.ts +117 -0
  38. package/dist/commissions/models/CommissionPlan.d.ts.map +1 -0
  39. package/dist/commissions/models/Earner.d.ts +49 -0
  40. package/dist/commissions/models/Earner.d.ts.map +1 -0
  41. package/dist/commissions/models/EarningEvent.d.ts +89 -0
  42. package/dist/commissions/models/EarningEvent.d.ts.map +1 -0
  43. package/dist/commissions/models/index.d.ts +11 -0
  44. package/dist/commissions/models/index.d.ts.map +1 -0
  45. package/dist/commissions/money.d.ts +42 -0
  46. package/dist/commissions/money.d.ts.map +1 -0
  47. package/dist/commissions/services/CommissionBalanceService.d.ts +14 -0
  48. package/dist/commissions/services/CommissionBalanceService.d.ts.map +1 -0
  49. package/dist/commissions/services/CommissionCalculationService.d.ts +142 -0
  50. package/dist/commissions/services/CommissionCalculationService.d.ts.map +1 -0
  51. package/dist/commissions/services/CommissionPayoutService.d.ts +134 -0
  52. package/dist/commissions/services/CommissionPayoutService.d.ts.map +1 -0
  53. package/dist/commissions/services/CommissionSettlementService.d.ts +42 -0
  54. package/dist/commissions/services/CommissionSettlementService.d.ts.map +1 -0
  55. package/dist/commissions/services/index.d.ts +9 -0
  56. package/dist/commissions/services/index.d.ts.map +1 -0
  57. package/dist/commissions/types.d.ts +243 -0
  58. package/dist/commissions/types.d.ts.map +1 -0
  59. package/dist/commissions.d.ts +2 -0
  60. package/dist/commissions.d.ts.map +1 -0
  61. package/dist/commissions.js +3 -0
  62. package/dist/crm/collections/LeadCollection.d.ts +79 -0
  63. package/dist/crm/collections/LeadCollection.d.ts.map +1 -0
  64. package/dist/crm/collections/OpportunityCollection.d.ts +42 -0
  65. package/dist/crm/collections/OpportunityCollection.d.ts.map +1 -0
  66. package/dist/crm/collections/OpportunityConversionCollection.d.ts +26 -0
  67. package/dist/crm/collections/OpportunityConversionCollection.d.ts.map +1 -0
  68. package/dist/crm/collections/PipelineDefinitionCollection.d.ts +46 -0
  69. package/dist/crm/collections/PipelineDefinitionCollection.d.ts.map +1 -0
  70. package/dist/crm/collections/PipelineStageCollection.d.ts +22 -0
  71. package/dist/crm/collections/PipelineStageCollection.d.ts.map +1 -0
  72. package/dist/crm/collections/SalesActivityCollection.d.ts +24 -0
  73. package/dist/crm/collections/SalesActivityCollection.d.ts.map +1 -0
  74. package/dist/crm/collections/SalesRepresentativeCollection.d.ts +19 -0
  75. package/dist/crm/collections/SalesRepresentativeCollection.d.ts.map +1 -0
  76. package/dist/crm/index.d.ts +27 -0
  77. package/dist/crm/index.d.ts.map +1 -0
  78. package/dist/crm/models/Lead.d.ts +135 -0
  79. package/dist/crm/models/Lead.d.ts.map +1 -0
  80. package/dist/crm/models/Opportunity.d.ts +111 -0
  81. package/dist/crm/models/Opportunity.d.ts.map +1 -0
  82. package/dist/crm/models/OpportunityConversion.d.ts +66 -0
  83. package/dist/crm/models/OpportunityConversion.d.ts.map +1 -0
  84. package/dist/crm/models/PipelineDefinition.d.ts +58 -0
  85. package/dist/crm/models/PipelineDefinition.d.ts.map +1 -0
  86. package/dist/crm/models/PipelineStage.d.ts +66 -0
  87. package/dist/crm/models/PipelineStage.d.ts.map +1 -0
  88. package/dist/crm/models/SalesActivity.d.ts +76 -0
  89. package/dist/crm/models/SalesActivity.d.ts.map +1 -0
  90. package/dist/crm/models/SalesRepresentative.d.ts +60 -0
  91. package/dist/crm/models/SalesRepresentative.d.ts.map +1 -0
  92. package/dist/crm/types.d.ts +228 -0
  93. package/dist/crm/types.d.ts.map +1 -0
  94. package/dist/crm.d.ts +2 -0
  95. package/dist/crm.d.ts.map +1 -0
  96. package/dist/crm.js +3 -0
  97. package/dist/index.d.ts +4 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +5 -0
  100. package/dist/manifest.json +9340 -0
  101. package/dist/referrals/collections/AttributionExceptionCollection.d.ts +17 -0
  102. package/dist/referrals/collections/AttributionExceptionCollection.d.ts.map +1 -0
  103. package/dist/referrals/collections/AttributionPolicyCollection.d.ts +50 -0
  104. package/dist/referrals/collections/AttributionPolicyCollection.d.ts.map +1 -0
  105. package/dist/referrals/collections/ReferralAgreementCollection.d.ts +48 -0
  106. package/dist/referrals/collections/ReferralAgreementCollection.d.ts.map +1 -0
  107. package/dist/referrals/collections/ReferralCollection.d.ts +25 -0
  108. package/dist/referrals/collections/ReferralCollection.d.ts.map +1 -0
  109. package/dist/referrals/collections/ReferralLinkCollection.d.ts +96 -0
  110. package/dist/referrals/collections/ReferralLinkCollection.d.ts.map +1 -0
  111. package/dist/referrals/collections/ReferralProgramCollection.d.ts +18 -0
  112. package/dist/referrals/collections/ReferralProgramCollection.d.ts.map +1 -0
  113. package/dist/referrals/collections/ReferralTermSnapshotCollection.d.ts +13 -0
  114. package/dist/referrals/collections/ReferralTermSnapshotCollection.d.ts.map +1 -0
  115. package/dist/referrals/collections/ReferralTouchCollection.d.ts +30 -0
  116. package/dist/referrals/collections/ReferralTouchCollection.d.ts.map +1 -0
  117. package/dist/referrals/collections/ReferrerCollection.d.ts +17 -0
  118. package/dist/referrals/collections/ReferrerCollection.d.ts.map +1 -0
  119. package/dist/referrals/index.d.ts +38 -0
  120. package/dist/referrals/index.d.ts.map +1 -0
  121. package/dist/referrals/models/AttributionException.d.ts +85 -0
  122. package/dist/referrals/models/AttributionException.d.ts.map +1 -0
  123. package/dist/referrals/models/AttributionPolicy.d.ts +128 -0
  124. package/dist/referrals/models/AttributionPolicy.d.ts.map +1 -0
  125. package/dist/referrals/models/Referral.d.ts +112 -0
  126. package/dist/referrals/models/Referral.d.ts.map +1 -0
  127. package/dist/referrals/models/ReferralAgreement.d.ts +125 -0
  128. package/dist/referrals/models/ReferralAgreement.d.ts.map +1 -0
  129. package/dist/referrals/models/ReferralLink.d.ts +71 -0
  130. package/dist/referrals/models/ReferralLink.d.ts.map +1 -0
  131. package/dist/referrals/models/ReferralProgram.d.ts +57 -0
  132. package/dist/referrals/models/ReferralProgram.d.ts.map +1 -0
  133. package/dist/referrals/models/ReferralTermSnapshot.d.ts +61 -0
  134. package/dist/referrals/models/ReferralTermSnapshot.d.ts.map +1 -0
  135. package/dist/referrals/models/ReferralTouch.d.ts +55 -0
  136. package/dist/referrals/models/ReferralTouch.d.ts.map +1 -0
  137. package/dist/referrals/models/Referrer.d.ts +69 -0
  138. package/dist/referrals/models/Referrer.d.ts.map +1 -0
  139. package/dist/referrals/services/AttributionService.d.ts +248 -0
  140. package/dist/referrals/services/AttributionService.d.ts.map +1 -0
  141. package/dist/referrals/services/ReferralCommissionService.d.ts +91 -0
  142. package/dist/referrals/services/ReferralCommissionService.d.ts.map +1 -0
  143. package/dist/referrals/services/ReferralQualificationService.d.ts +135 -0
  144. package/dist/referrals/services/ReferralQualificationService.d.ts.map +1 -0
  145. package/dist/referrals/types.d.ts +226 -0
  146. package/dist/referrals/types.d.ts.map +1 -0
  147. package/dist/referrals.d.ts +2 -0
  148. package/dist/referrals.d.ts.map +1 -0
  149. package/dist/referrals.js +3 -0
  150. package/dist/smrt-knowledge.json +5501 -0
  151. package/dist/svelte/__tests__/format.test.js +68 -0
  152. package/dist/svelte/__tests__/types.test.js +349 -0
  153. package/dist/svelte/components/AttributionConflictQueue.svelte +361 -0
  154. package/dist/svelte/components/AttributionConflictQueue.svelte.d.ts +15 -0
  155. package/dist/svelte/components/AttributionConflictQueue.svelte.d.ts.map +1 -0
  156. package/dist/svelte/components/CommissionBreakdown.svelte +251 -0
  157. package/dist/svelte/components/CommissionBreakdown.svelte.d.ts +11 -0
  158. package/dist/svelte/components/CommissionBreakdown.svelte.d.ts.map +1 -0
  159. package/dist/svelte/components/CommissionExpenseSummary.svelte +186 -0
  160. package/dist/svelte/components/CommissionExpenseSummary.svelte.d.ts +13 -0
  161. package/dist/svelte/components/CommissionExpenseSummary.svelte.d.ts.map +1 -0
  162. package/dist/svelte/components/ExecutedAgreementsList.svelte +136 -0
  163. package/dist/svelte/components/ExecutedAgreementsList.svelte.d.ts +11 -0
  164. package/dist/svelte/components/ExecutedAgreementsList.svelte.d.ts.map +1 -0
  165. package/dist/svelte/components/LeadList.svelte +224 -0
  166. package/dist/svelte/components/LeadList.svelte.d.ts +19 -0
  167. package/dist/svelte/components/LeadList.svelte.d.ts.map +1 -0
  168. package/dist/svelte/components/OpportunityBoard.svelte +230 -0
  169. package/dist/svelte/components/OpportunityBoard.svelte.d.ts +17 -0
  170. package/dist/svelte/components/OpportunityBoard.svelte.d.ts.map +1 -0
  171. package/dist/svelte/components/OpportunityDetail.svelte +472 -0
  172. package/dist/svelte/components/OpportunityDetail.svelte.d.ts +27 -0
  173. package/dist/svelte/components/OpportunityDetail.svelte.d.ts.map +1 -0
  174. package/dist/svelte/components/PayoutBatchReview.svelte +285 -0
  175. package/dist/svelte/components/PayoutBatchReview.svelte.d.ts +21 -0
  176. package/dist/svelte/components/PayoutBatchReview.svelte.d.ts.map +1 -0
  177. package/dist/svelte/components/PayoutHistoryList.svelte +245 -0
  178. package/dist/svelte/components/PayoutHistoryList.svelte.d.ts +11 -0
  179. package/dist/svelte/components/PayoutHistoryList.svelte.d.ts.map +1 -0
  180. package/dist/svelte/components/ReferralLinkManager.svelte +216 -0
  181. package/dist/svelte/components/ReferralLinkManager.svelte.d.ts +17 -0
  182. package/dist/svelte/components/ReferralLinkManager.svelte.d.ts.map +1 -0
  183. package/dist/svelte/components/ReferralStatusList.svelte +118 -0
  184. package/dist/svelte/components/ReferralStatusList.svelte.d.ts +11 -0
  185. package/dist/svelte/components/ReferralStatusList.svelte.d.ts.map +1 -0
  186. package/dist/svelte/components/ReferrerEarningsSummary.svelte +106 -0
  187. package/dist/svelte/components/ReferrerEarningsSummary.svelte.d.ts +11 -0
  188. package/dist/svelte/components/ReferrerEarningsSummary.svelte.d.ts.map +1 -0
  189. package/dist/svelte/components/SalesDashboard.svelte +192 -0
  190. package/dist/svelte/components/SalesDashboard.svelte.d.ts +29 -0
  191. package/dist/svelte/components/SalesDashboard.svelte.d.ts.map +1 -0
  192. package/dist/svelte/format.d.ts +46 -0
  193. package/dist/svelte/format.d.ts.map +1 -0
  194. package/dist/svelte/format.js +75 -0
  195. package/dist/svelte/index.d.ts +50 -0
  196. package/dist/svelte/index.d.ts.map +1 -0
  197. package/dist/svelte/index.js +37 -0
  198. package/dist/svelte/types.d.ts +422 -0
  199. package/dist/svelte/types.d.ts.map +1 -0
  200. package/dist/svelte/types.js +376 -0
  201. package/package.json +89 -0
@@ -0,0 +1,422 @@
1
+ /**
2
+ * Presentational view models and pure helpers for the sales Svelte surfaces.
3
+ *
4
+ * The components are props-driven and presentational: hosts map their model
5
+ * rows (CRM, referrals, commissions) onto these plain view-model interfaces
6
+ * and wire the action callbacks. Only STATUS UNIONS are imported from the
7
+ * sibling TS modules — type-only, so the compiled Svelte bundle never gains a
8
+ * runtime dependency on the model/collection code. Monetary fields stay
9
+ * integer cents in every view model; conversion to display strings happens at
10
+ * render time via `format.ts`.
11
+ *
12
+ * Dashboard math, award validation, and status flows live here as exported
13
+ * pure functions so they are unit-testable without mounting components.
14
+ *
15
+ * @module
16
+ */
17
+ import type { CommissionAdjustmentKind, CommissionBasis, CommissionPayoutStatus, CommissionStatus, EarnerBalance, PayoutMethod } from '../commissions/index.js';
18
+ import type { LeadStatus, OpportunityStatus } from '../crm/index.js';
19
+ import type { AttributionAward, AttributionExceptionStatus, ReferralAgreementApprovalMode, ReferralAgreementStatus, ReferralLinkStatus, ReferralStatus, ReferralTouchKind } from '../referrals/index.js';
20
+ export type { AttributionAward, EarnerBalance };
21
+ /** Date-ish view-model field: hosts may pass `Date`s or ISO strings. */
22
+ export type DateInput = Date | string | null;
23
+ /** Badge variant vocabulary (structurally matches `@happyvertical/smrt-ui`). */
24
+ export type StatusBadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
25
+ /** One assignable sales representative for owner pickers. */
26
+ export interface SalesRepOptionView {
27
+ id: string;
28
+ name: string;
29
+ }
30
+ /** Open next action attached to a lead/opportunity. */
31
+ export interface NextActionView {
32
+ summary: string;
33
+ dueAt?: DateInput;
34
+ }
35
+ /** Row of {@link LeadList}. */
36
+ export interface LeadListItemView {
37
+ id: string;
38
+ name: string;
39
+ contactName?: string;
40
+ email?: string;
41
+ phone?: string;
42
+ organizationName?: string;
43
+ /** Human label for the acquisition source (`sourceKind`/`sourceId`). */
44
+ sourceLabel?: string;
45
+ ownerRepId?: string;
46
+ ownerName?: string;
47
+ status: LeadStatus;
48
+ /** Set on terminal `merged` leads — id of the surviving lead. */
49
+ mergedIntoId?: string;
50
+ /** Earliest open next action, if any. */
51
+ nextAction?: NextActionView | null;
52
+ }
53
+ /** Pipeline stage (ordered) for board columns and stage pickers. */
54
+ export interface PipelineStageView {
55
+ id: string;
56
+ name: string;
57
+ /** Default win probability of the stage (0–1). */
58
+ probability?: number;
59
+ /** Terminal-won stage. */
60
+ isWon?: boolean;
61
+ /** Terminal-lost stage. */
62
+ isLost?: boolean;
63
+ }
64
+ /** Opportunity card for {@link OpportunityBoard} and dashboard math. */
65
+ export interface OpportunityCardView {
66
+ id: string;
67
+ name: string;
68
+ stageId: string;
69
+ ownerName?: string;
70
+ expectedValueCents: number;
71
+ currency: string;
72
+ /** Win probability (0–1). */
73
+ probability: number;
74
+ status: OpportunityStatus;
75
+ }
76
+ /** Activity/next-action row for the {@link OpportunityDetail} timeline. */
77
+ export interface SalesActivityView {
78
+ id: string;
79
+ /** Open-string kind (`note`, `call`, `stage_change`, …). */
80
+ activityKind: string;
81
+ summary: string;
82
+ dueAt?: DateInput;
83
+ completedAt?: DateInput;
84
+ actorName?: string;
85
+ }
86
+ /** Recorded downstream conversion link (client/project/contract/…). */
87
+ export interface ConversionLinkView {
88
+ id: string;
89
+ targetKind: string;
90
+ targetId: string;
91
+ note?: string;
92
+ /** Optional host-provided navigation target for the downstream record. */
93
+ href?: string;
94
+ }
95
+ /** Header/facts view for {@link OpportunityDetail}. */
96
+ export interface OpportunityDetailView {
97
+ id: string;
98
+ name: string;
99
+ status: OpportunityStatus;
100
+ stageId: string;
101
+ stageName?: string;
102
+ ownerName?: string;
103
+ expectedValueCents: number;
104
+ currency: string;
105
+ /** Win probability (0–1). */
106
+ probability: number;
107
+ expectedCloseAt?: DateInput;
108
+ /** Outcome note (conventionally set when closing lost). */
109
+ outcomeReason?: string;
110
+ wonAt?: DateInput;
111
+ lostAt?: DateInput;
112
+ }
113
+ /** Terminal outcome accepted by `OpportunityDetail`'s `onClose`. */
114
+ export type ClosedOpportunityOutcome = Exclude<OpportunityStatus, 'open'>;
115
+ /** Draft passed to `OpportunityDetail`'s `onRecordActivity`. */
116
+ export interface RecordActivityDraft {
117
+ activityKind: string;
118
+ summary: string;
119
+ /** ISO date (`YYYY-MM-DD`) from the date input, when scheduled. */
120
+ dueAt?: string | null;
121
+ }
122
+ /** Row of {@link ReferralLinkManager}. */
123
+ export interface ReferralLinkView {
124
+ id: string;
125
+ code: string;
126
+ label?: string;
127
+ targetUrl?: string;
128
+ clickCount: number;
129
+ status: ReferralLinkStatus;
130
+ }
131
+ /** Draft passed to `ReferralLinkManager`'s `onCreate`. */
132
+ export interface CreateReferralLinkDraft {
133
+ targetUrl: string;
134
+ label?: string;
135
+ }
136
+ /** Row of {@link ReferralStatusList} (referrer portal). */
137
+ export interface ReferralStatusView {
138
+ id: string;
139
+ status: ReferralStatus;
140
+ targetKind: string;
141
+ /** Optional human label for the qualifying target. */
142
+ targetLabel?: string;
143
+ /** Credit share of this referral (0–1; `1` when unsplit). */
144
+ creditFraction: number;
145
+ /** Present when the referral shares credit with siblings. */
146
+ splitGroupId?: string;
147
+ programName?: string;
148
+ attributedAt?: DateInput;
149
+ qualifiedAt?: DateInput;
150
+ expiresAt?: DateInput;
151
+ }
152
+ /** One competing touch inside an {@link AttributionExceptionView}. */
153
+ export interface AttributionCandidateView {
154
+ touchId: string;
155
+ referrerId: string;
156
+ referrerName?: string;
157
+ kind: ReferralTouchKind;
158
+ /** ISO-8601 timestamp of the candidate touch. */
159
+ occurredAt: string;
160
+ }
161
+ /** Conflict-review row for {@link AttributionConflictQueue}. */
162
+ export interface AttributionExceptionView {
163
+ id: string;
164
+ status: AttributionExceptionStatus;
165
+ targetKind: string;
166
+ targetId: string;
167
+ targetLabel?: string;
168
+ programName?: string;
169
+ conflictReason: string;
170
+ candidates: AttributionCandidateView[];
171
+ /** Resolved-audit fields (set once `status === 'resolved'`). */
172
+ resolutionMode?: string;
173
+ resolutionReason?: string;
174
+ resolvedByName?: string;
175
+ resolvedAt?: DateInput;
176
+ }
177
+ /** Append-only adjustment rendered under its commission row. */
178
+ export interface CommissionAdjustmentView {
179
+ id: string;
180
+ adjustmentKind: CommissionAdjustmentKind;
181
+ /** Signed integer cents — clawbacks are negative. */
182
+ amountCents: number;
183
+ currency: string;
184
+ reason: string;
185
+ createdAt?: DateInput;
186
+ }
187
+ /** Snapshotted calculation explanation for one commission row. */
188
+ export interface CommissionTraceView {
189
+ planKey: string;
190
+ planVersion: number;
191
+ componentKey: string;
192
+ }
193
+ /** Row of {@link CommissionBreakdown} — the explainable-amount surface. */
194
+ export interface CommissionRowView {
195
+ id: string;
196
+ /** Earning-event kind (`conversion`, `invoice_payment`, …). */
197
+ eventKind: string;
198
+ /** Human label for the earning source (`sourceKind`/`sourceId`). */
199
+ sourceLabel?: string;
200
+ basis: CommissionBasis;
201
+ baseAmountCents: number;
202
+ /** Rate applied (0–1; `0` for fixed-basis components). */
203
+ rate: number;
204
+ /** Split share applied (0–1; `1` when unsplit). */
205
+ shareFraction: number;
206
+ amountCents: number;
207
+ currency: string;
208
+ status: CommissionStatus;
209
+ /** When the clearing window ends and the earning can mature. */
210
+ clearingEndsAt?: DateInput;
211
+ /** Parsed calculation-trace references (plan key@version, component). */
212
+ trace?: CommissionTraceView | null;
213
+ /** Adjustments appended against this commission. */
214
+ adjustments?: CommissionAdjustmentView[];
215
+ }
216
+ /** Settlement batch for {@link PayoutHistoryList} / {@link PayoutBatchReview}. */
217
+ export interface PayoutView {
218
+ id: string;
219
+ periodStart?: DateInput;
220
+ periodEnd?: DateInput;
221
+ commissionTotalCents: number;
222
+ /** Signed integer cents. */
223
+ adjustmentTotalCents: number;
224
+ /** Net batch total (commission + adjustments), signed. */
225
+ totalAmountCents: number;
226
+ currency: string;
227
+ payoutMethod: PayoutMethod;
228
+ status: CommissionPayoutStatus;
229
+ paymentReference?: string;
230
+ providerRef?: string;
231
+ paidAt?: DateInput;
232
+ notes?: string;
233
+ }
234
+ /** Payout row with the earner identity, for operator review. */
235
+ export interface PayoutBatchReviewItemView extends PayoutView {
236
+ earnerName?: string;
237
+ }
238
+ /** Agreement version row for {@link ExecutedAgreementsList}. */
239
+ export interface AgreementVersionView {
240
+ id: string;
241
+ version: number;
242
+ status: ReferralAgreementStatus;
243
+ effectiveFrom?: DateInput;
244
+ effectiveTo?: DateInput;
245
+ planKey: string;
246
+ planVersion: number;
247
+ clearingDays: number;
248
+ approvalMode: ReferralAgreementApprovalMode;
249
+ /** Executed-artifact evidence, when the agreement has been executed. */
250
+ artifactUrl?: string;
251
+ artifactHash?: string;
252
+ }
253
+ /** Pre-aggregated operator reconciliation row for {@link CommissionExpenseSummary}. */
254
+ export interface CommissionExpenseRowView {
255
+ /** Stable row key (e.g. `2026-06:USD` or a program/plan id). */
256
+ id: string;
257
+ /** Human label for the row (period, program, plan, …). */
258
+ label: string;
259
+ currency: string;
260
+ /** Accrued commission expense in the period (integer cents). */
261
+ commissionExpenseCents: number;
262
+ /** Signed unsettled/settled adjustments in the period. */
263
+ adjustmentCents: number;
264
+ /** Amount settled to earners via payouts in the period. */
265
+ payoutCents: number;
266
+ }
267
+ /** Badge variant for a Lead lifecycle status. */
268
+ export declare function leadStatusBadgeVariant(status: LeadStatus): StatusBadgeVariant;
269
+ /** Badge variant for an Opportunity lifecycle status. */
270
+ export declare function opportunityStatusBadgeVariant(status: OpportunityStatus): StatusBadgeVariant;
271
+ /** Badge variant for a Referral lifecycle status. */
272
+ export declare function referralStatusBadgeVariant(status: ReferralStatus): StatusBadgeVariant;
273
+ /** Badge variant for a ReferralLink status. */
274
+ export declare function referralLinkStatusBadgeVariant(status: ReferralLinkStatus): StatusBadgeVariant;
275
+ /** Badge variant for a Commission settlement-chain status. */
276
+ export declare function commissionStatusBadgeVariant(status: CommissionStatus): StatusBadgeVariant;
277
+ /** Badge variant for a CommissionPayout batch status. */
278
+ export declare function payoutStatusBadgeVariant(status: CommissionPayoutStatus): StatusBadgeVariant;
279
+ /** Badge variant for a ReferralAgreement version status. */
280
+ export declare function agreementStatusBadgeVariant(status: ReferralAgreementStatus): StatusBadgeVariant;
281
+ /**
282
+ * Whether the qualify action applies to a lead in `status` — mirrors the
283
+ * `new|working → qualified` transitions guarded by the Lead model.
284
+ */
285
+ export declare function canQualifyLead(status: LeadStatus): boolean;
286
+ /** Whether a next action is overdue relative to `now` (default: current time). */
287
+ export declare function isOverdue(dueAt: DateInput | undefined, now?: Date): boolean;
288
+ /** A per-currency integer-cents total (pipeline sums never mix currencies). */
289
+ export interface CurrencyAmount {
290
+ currency: string;
291
+ amountCents: number;
292
+ }
293
+ /** Count of opportunities still `open`. */
294
+ export declare function openOpportunityCount(opportunities: OpportunityCardView[]): number;
295
+ /**
296
+ * Total expected value of OPEN opportunities, grouped per currency (sorted by
297
+ * currency code) — currencies are never summed together.
298
+ */
299
+ export declare function openPipelineTotals(opportunities: OpportunityCardView[]): CurrencyAmount[];
300
+ /** Per-stage open-pipeline summary for the dashboard tiles. */
301
+ export interface StagePipelineSummary {
302
+ stageId: string;
303
+ stageName: string;
304
+ openCount: number;
305
+ totals: CurrencyAmount[];
306
+ }
307
+ /**
308
+ * Open-pipeline expected value per stage, in the given stage order. Terminal
309
+ * stages report zero (their opportunities are no longer `open`).
310
+ */
311
+ export declare function pipelineValueByStage(stages: PipelineStageView[], opportunities: OpportunityCardView[]): StagePipelineSummary[];
312
+ /**
313
+ * Win rate over CLOSED opportunities: `won / (won + lost)`, or `null` when
314
+ * nothing has closed yet (so the tile can render a placeholder, not `0%`).
315
+ */
316
+ export declare function winRate(opportunities: OpportunityCardView[]): number | null;
317
+ /** One rendered board column: a stage and its opportunities. */
318
+ export interface BoardColumn {
319
+ stage: PipelineStageView;
320
+ opportunities: OpportunityCardView[];
321
+ }
322
+ /**
323
+ * Group opportunities into the given stage order for the board. Opportunities
324
+ * pointing at a stage not present in `stages` are omitted — the board renders
325
+ * exactly the columns it is given.
326
+ */
327
+ export declare function groupOpportunitiesByStage(stages: PipelineStageView[], opportunities: OpportunityCardView[]): BoardColumn[];
328
+ /** Neighbouring stage ids for keyboard-accessible next/prev stage movement. */
329
+ export declare function adjacentStageIds(stages: PipelineStageView[], stageId: string): {
330
+ prevStageId: string | null;
331
+ nextStageId: string | null;
332
+ };
333
+ /**
334
+ * Share URL for a referral code: `<shareBaseUrl>/<code>` (trailing slashes on
335
+ * the base are normalised; the code is URL-encoded).
336
+ */
337
+ export declare function buildShareUrl(shareBaseUrl: string, code: string): string;
338
+ /** Loose http(s) URL check used to gate the create-link form. */
339
+ export declare function isHttpUrl(value: string): boolean;
340
+ /**
341
+ * Tolerance for award credit fractions summing to 1.0 — mirrors
342
+ * `AttributionService.assertAwards` (±0.0001).
343
+ */
344
+ export declare const AWARD_FRACTION_TOLERANCE = 0.0001;
345
+ /** Result of {@link validateAwards} for inline form validation. */
346
+ export interface AwardValidation {
347
+ valid: boolean;
348
+ /** Raw sum of the entered fractions. */
349
+ totalFraction: number;
350
+ /** Human-readable problem when invalid. */
351
+ message?: string;
352
+ }
353
+ /**
354
+ * Validate an award draft the way `AttributionService.resolveException` will:
355
+ * at least one award, distinct referrers, every fraction in (0, 1], and the
356
+ * fractions summing to 1.0 (±{@link AWARD_FRACTION_TOLERANCE}).
357
+ */
358
+ export declare function validateAwards(awards: AttributionAward[]): AwardValidation;
359
+ /** Distinct candidate referrer ids, in first-seen order. */
360
+ export declare function uniqueCandidateReferrerIds(candidates: AttributionCandidateView[]): string[];
361
+ /**
362
+ * Seed an equal split across `referrerIds`, rounded to 4 decimal places with
363
+ * the LAST share adjusted so the set sums to exactly 1.0 (mirrors the
364
+ * AttributionService split convention).
365
+ */
366
+ export declare function equalSplitAwards(referrerIds: string[]): AttributionAward[];
367
+ /** `planKey@vN` display reference for snapshotted plan versions. */
368
+ export declare function formatPlanRef(planKey: string, planVersion: number): string;
369
+ /** Inputs for the explainable `base × rate × share = amount` formula line. */
370
+ export interface CommissionFormulaParts {
371
+ basis: CommissionBasis;
372
+ baseAmountCents: number;
373
+ rate: number;
374
+ shareFraction: number;
375
+ amountCents: number;
376
+ currency: string;
377
+ }
378
+ /**
379
+ * Render the snapshotted calculation as a one-line formula. Fixed-basis
380
+ * components have no rate factor (`rate` is recorded as `0`), so the line
381
+ * becomes `base (fixed) × share = amount`.
382
+ */
383
+ export declare function formatCommissionFormula(parts: CommissionFormulaParts, locale?: string): string;
384
+ /** One step of a payout status timeline. */
385
+ export interface PayoutTimelineStep {
386
+ status: CommissionPayoutStatus;
387
+ state: 'done' | 'current' | 'upcoming';
388
+ }
389
+ /**
390
+ * Linear settlement timeline for a payout batch. The happy path is
391
+ * `pending → approved → processing → completed`; for a `failed` batch the
392
+ * terminal marker replaces `completed`.
393
+ */
394
+ export declare function payoutStatusTimeline(status: CommissionPayoutStatus): PayoutTimelineStep[];
395
+ /** Which operator actions apply to a payout batch in a given status. */
396
+ export interface PayoutActions {
397
+ canApprove: boolean;
398
+ canMarkProcessing: boolean;
399
+ canComplete: boolean;
400
+ canFail: boolean;
401
+ }
402
+ /**
403
+ * Action gating for {@link PayoutBatchReview}, mirroring the CommissionPayout
404
+ * transition guard: `pending → approved → processing → completed | failed`,
405
+ * with `failed` reachable from `approved`/`processing`.
406
+ */
407
+ export declare function payoutActionsFor(status: CommissionPayoutStatus): PayoutActions;
408
+ /** Per-currency totals of {@link CommissionExpenseRowView} rows. */
409
+ export interface CommissionExpenseTotals {
410
+ currency: string;
411
+ commissionExpenseCents: number;
412
+ adjustmentCents: number;
413
+ payoutCents: number;
414
+ /** `expense + adjustments − payouts`: outstanding accrued liability. */
415
+ netAccruedCents: number;
416
+ }
417
+ /**
418
+ * Sum reconciliation rows per currency (sorted by currency code). Currencies
419
+ * are never summed together.
420
+ */
421
+ export declare function sumExpenseRowsByCurrency(rows: CommissionExpenseRowView[]): CommissionExpenseTotals[];
422
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/svelte/types.ts"],"names":[],"mappings":"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"}