@powerhousedao/service-offering 1.0.0-dev.1 → 1.0.0-dev.11

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 (246) hide show
  1. package/dist/document-models/facet/v1/actions.d.ts +3 -1
  2. package/dist/document-models/facet/v1/actions.d.ts.map +1 -1
  3. package/dist/document-models/facet/v1/gen/document-model.d.ts.map +1 -1
  4. package/dist/document-models/facet/v1/gen/document-model.js +31 -7
  5. package/dist/document-models/facet/v1/gen/document-schema.d.ts +6 -6
  6. package/dist/document-models/facet/v1/gen/index.d.ts.map +1 -1
  7. package/dist/document-models/facet/v1/gen/index.js +2 -0
  8. package/dist/document-models/facet/v1/gen/option-management/error.d.ts +27 -1
  9. package/dist/document-models/facet/v1/gen/option-management/error.d.ts.map +1 -1
  10. package/dist/document-models/facet/v1/gen/option-management/error.js +23 -1
  11. package/dist/document-models/facet/v1/gen/ph-factories.js +2 -2
  12. package/dist/document-models/facet/v1/gen/schema/types.d.ts +2 -2
  13. package/dist/document-models/facet/v1/gen/schema/types.d.ts.map +1 -1
  14. package/dist/document-models/facet/v1/gen/schema/zod.js +2 -2
  15. package/dist/document-models/facet/v1/gen/utils.js +2 -2
  16. package/dist/document-models/facet/v1/module.d.ts +1 -1
  17. package/dist/document-models/facet/v1/module.d.ts.map +1 -1
  18. package/dist/document-models/facet/v1/module.js +4 -1
  19. package/dist/document-models/resource-instance/v1/actions.d.ts +4 -1
  20. package/dist/document-models/resource-instance/v1/actions.d.ts.map +1 -1
  21. package/dist/document-models/resource-instance/v1/gen/configuration-management/error.d.ts +34 -1
  22. package/dist/document-models/resource-instance/v1/gen/configuration-management/error.d.ts.map +1 -1
  23. package/dist/document-models/resource-instance/v1/gen/configuration-management/error.js +32 -1
  24. package/dist/document-models/resource-instance/v1/gen/document-model.d.ts.map +1 -1
  25. package/dist/document-models/resource-instance/v1/gen/document-model.js +222 -70
  26. package/dist/document-models/resource-instance/v1/gen/document-schema.d.ts +0 -6
  27. package/dist/document-models/resource-instance/v1/gen/document-schema.d.ts.map +1 -1
  28. package/dist/document-models/resource-instance/v1/gen/index.d.ts.map +1 -1
  29. package/dist/document-models/resource-instance/v1/gen/index.js +2 -0
  30. package/dist/document-models/resource-instance/v1/gen/instance-management/actions.d.ts +6 -2
  31. package/dist/document-models/resource-instance/v1/gen/instance-management/actions.d.ts.map +1 -1
  32. package/dist/document-models/resource-instance/v1/gen/instance-management/creators.d.ts +3 -2
  33. package/dist/document-models/resource-instance/v1/gen/instance-management/creators.d.ts.map +1 -1
  34. package/dist/document-models/resource-instance/v1/gen/instance-management/creators.js +2 -1
  35. package/dist/document-models/resource-instance/v1/gen/instance-management/error.d.ts +98 -1
  36. package/dist/document-models/resource-instance/v1/gen/instance-management/error.d.ts.map +1 -1
  37. package/dist/document-models/resource-instance/v1/gen/instance-management/error.js +112 -1
  38. package/dist/document-models/resource-instance/v1/gen/instance-management/operations.d.ts +2 -1
  39. package/dist/document-models/resource-instance/v1/gen/instance-management/operations.d.ts.map +1 -1
  40. package/dist/document-models/resource-instance/v1/gen/ph-factories.d.ts.map +1 -1
  41. package/dist/document-models/resource-instance/v1/gen/ph-factories.js +0 -2
  42. package/dist/document-models/resource-instance/v1/gen/reducer.d.ts.map +1 -1
  43. package/dist/document-models/resource-instance/v1/gen/reducer.js +6 -1
  44. package/dist/document-models/resource-instance/v1/gen/schema/types.d.ts +3 -3
  45. package/dist/document-models/resource-instance/v1/gen/schema/types.d.ts.map +1 -1
  46. package/dist/document-models/resource-instance/v1/gen/schema/zod.d.ts +2 -1
  47. package/dist/document-models/resource-instance/v1/gen/schema/zod.d.ts.map +1 -1
  48. package/dist/document-models/resource-instance/v1/gen/schema/zod.js +5 -3
  49. package/dist/document-models/resource-instance/v1/gen/utils.d.ts.map +1 -1
  50. package/dist/document-models/resource-instance/v1/gen/utils.js +0 -2
  51. package/dist/document-models/resource-instance/v1/module.d.ts +1 -1
  52. package/dist/document-models/resource-instance/v1/module.d.ts.map +1 -1
  53. package/dist/document-models/resource-instance/v1/module.js +4 -1
  54. package/dist/document-models/resource-instance/v1/src/reducers/configuration-management.d.ts.map +1 -1
  55. package/dist/document-models/resource-instance/v1/src/reducers/configuration-management.js +57 -53
  56. package/dist/document-models/resource-instance/v1/src/reducers/instance-management.d.ts.map +1 -1
  57. package/dist/document-models/resource-instance/v1/src/reducers/instance-management.js +57 -21
  58. package/dist/document-models/resource-instance/v1/tests/instance-management.test.js +11 -1
  59. package/dist/document-models/resource-template/v1/actions.d.ts +3 -1
  60. package/dist/document-models/resource-template/v1/actions.d.ts.map +1 -1
  61. package/dist/document-models/resource-template/v1/gen/audience-management/error.d.ts +20 -1
  62. package/dist/document-models/resource-template/v1/gen/audience-management/error.d.ts.map +1 -1
  63. package/dist/document-models/resource-template/v1/gen/audience-management/error.js +16 -1
  64. package/dist/document-models/resource-template/v1/gen/document-model.d.ts.map +1 -1
  65. package/dist/document-models/resource-template/v1/gen/document-model.js +207 -89
  66. package/dist/document-models/resource-template/v1/gen/document-schema.d.ts +12 -12
  67. package/dist/document-models/resource-template/v1/gen/facet-targeting/error.d.ts +27 -1
  68. package/dist/document-models/resource-template/v1/gen/facet-targeting/error.d.ts.map +1 -1
  69. package/dist/document-models/resource-template/v1/gen/facet-targeting/error.js +23 -1
  70. package/dist/document-models/resource-template/v1/gen/index.d.ts.map +1 -1
  71. package/dist/document-models/resource-template/v1/gen/index.js +2 -0
  72. package/dist/document-models/resource-template/v1/gen/option-group-management/error.d.ts +27 -1
  73. package/dist/document-models/resource-template/v1/gen/option-group-management/error.d.ts.map +1 -1
  74. package/dist/document-models/resource-template/v1/gen/option-group-management/error.js +23 -1
  75. package/dist/document-models/resource-template/v1/gen/ph-factories.js +3 -3
  76. package/dist/document-models/resource-template/v1/gen/schema/types.d.ts +4 -4
  77. package/dist/document-models/resource-template/v1/gen/schema/types.d.ts.map +1 -1
  78. package/dist/document-models/resource-template/v1/gen/schema/zod.js +4 -4
  79. package/dist/document-models/resource-template/v1/gen/service-management/error.d.ts +51 -1
  80. package/dist/document-models/resource-template/v1/gen/service-management/error.d.ts.map +1 -1
  81. package/dist/document-models/resource-template/v1/gen/service-management/error.js +49 -1
  82. package/dist/document-models/resource-template/v1/gen/utils.js +3 -3
  83. package/dist/document-models/resource-template/v1/module.d.ts +1 -1
  84. package/dist/document-models/resource-template/v1/module.d.ts.map +1 -1
  85. package/dist/document-models/resource-template/v1/module.js +4 -1
  86. package/dist/document-models/resource-template/v1/src/reducers/option-group-management.d.ts.map +1 -1
  87. package/dist/document-models/resource-template/v1/src/reducers/option-group-management.js +2 -21
  88. package/dist/document-models/service-offering/v1/actions.d.ts +3 -1
  89. package/dist/document-models/service-offering/v1/actions.d.ts.map +1 -1
  90. package/dist/document-models/service-offering/v1/gen/document-model.d.ts.map +1 -1
  91. package/dist/document-models/service-offering/v1/gen/document-model.js +421 -199
  92. package/dist/document-models/service-offering/v1/gen/document-schema.d.ts +9 -9
  93. package/dist/document-models/service-offering/v1/gen/index.d.ts.map +1 -1
  94. package/dist/document-models/service-offering/v1/gen/index.js +2 -0
  95. package/dist/document-models/service-offering/v1/gen/offering/error.d.ts +41 -1
  96. package/dist/document-models/service-offering/v1/gen/offering/error.d.ts.map +1 -1
  97. package/dist/document-models/service-offering/v1/gen/offering/error.js +37 -1
  98. package/dist/document-models/service-offering/v1/gen/option-groups/error.d.ts +55 -1
  99. package/dist/document-models/service-offering/v1/gen/option-groups/error.d.ts.map +1 -1
  100. package/dist/document-models/service-offering/v1/gen/option-groups/error.js +53 -1
  101. package/dist/document-models/service-offering/v1/gen/ph-factories.js +3 -3
  102. package/dist/document-models/service-offering/v1/gen/schema/types.d.ts +134 -61
  103. package/dist/document-models/service-offering/v1/gen/schema/types.d.ts.map +1 -1
  104. package/dist/document-models/service-offering/v1/gen/schema/zod.d.ts +35 -10
  105. package/dist/document-models/service-offering/v1/gen/schema/zod.d.ts.map +1 -1
  106. package/dist/document-models/service-offering/v1/gen/schema/zod.js +182 -64
  107. package/dist/document-models/service-offering/v1/gen/services/error.d.ts +20 -1
  108. package/dist/document-models/service-offering/v1/gen/services/error.d.ts.map +1 -1
  109. package/dist/document-models/service-offering/v1/gen/services/error.js +16 -1
  110. package/dist/document-models/service-offering/v1/gen/tiers/error.d.ts +100 -1
  111. package/dist/document-models/service-offering/v1/gen/tiers/error.d.ts.map +1 -1
  112. package/dist/document-models/service-offering/v1/gen/tiers/error.js +106 -1
  113. package/dist/document-models/service-offering/v1/gen/utils.js +4 -4
  114. package/dist/document-models/service-offering/v1/module.d.ts +1 -1
  115. package/dist/document-models/service-offering/v1/module.d.ts.map +1 -1
  116. package/dist/document-models/service-offering/v1/module.js +4 -1
  117. package/dist/document-models/service-offering/v1/src/reducers/offering.d.ts.map +1 -1
  118. package/dist/document-models/service-offering/v1/src/reducers/offering.js +20 -12
  119. package/dist/document-models/service-offering/v1/src/reducers/option-groups.d.ts.map +1 -1
  120. package/dist/document-models/service-offering/v1/src/reducers/option-groups.js +157 -39
  121. package/dist/document-models/service-offering/v1/src/reducers/services.d.ts.map +1 -1
  122. package/dist/document-models/service-offering/v1/src/reducers/services.js +17 -14
  123. package/dist/document-models/service-offering/v1/src/reducers/tiers.d.ts.map +1 -1
  124. package/dist/document-models/service-offering/v1/src/reducers/tiers.js +111 -78
  125. package/dist/document-models/service-offering/v1/src/utils.d.ts +60 -1
  126. package/dist/document-models/service-offering/v1/src/utils.d.ts.map +1 -1
  127. package/dist/document-models/service-offering/v1/src/utils.js +173 -1
  128. package/dist/document-models/service-offering/v1/tests/option-groups.test.js +1 -1
  129. package/dist/document-models/service-offering/v1/utils.d.ts +3 -0
  130. package/dist/document-models/service-offering/v1/utils.d.ts.map +1 -1
  131. package/dist/document-models/subscription-instance/v1/actions.d.ts +3 -1
  132. package/dist/document-models/subscription-instance/v1/actions.d.ts.map +1 -1
  133. package/dist/document-models/subscription-instance/v1/gen/document-model.d.ts.map +1 -1
  134. package/dist/document-models/subscription-instance/v1/gen/document-model.js +488 -246
  135. package/dist/document-models/subscription-instance/v1/gen/document-schema.d.ts +3 -3
  136. package/dist/document-models/subscription-instance/v1/gen/index.d.ts.map +1 -1
  137. package/dist/document-models/subscription-instance/v1/gen/index.js +2 -0
  138. package/dist/document-models/subscription-instance/v1/gen/metrics/error.d.ts +73 -1
  139. package/dist/document-models/subscription-instance/v1/gen/metrics/error.d.ts.map +1 -1
  140. package/dist/document-models/subscription-instance/v1/gen/metrics/error.js +86 -1
  141. package/dist/document-models/subscription-instance/v1/gen/ph-factories.js +1 -1
  142. package/dist/document-models/subscription-instance/v1/gen/schema/types.d.ts +199 -82
  143. package/dist/document-models/subscription-instance/v1/gen/schema/types.d.ts.map +1 -1
  144. package/dist/document-models/subscription-instance/v1/gen/schema/zod.d.ts +22 -12
  145. package/dist/document-models/subscription-instance/v1/gen/schema/zod.d.ts.map +1 -1
  146. package/dist/document-models/subscription-instance/v1/gen/schema/zod.js +230 -84
  147. package/dist/document-models/subscription-instance/v1/gen/service/error.d.ts +62 -1
  148. package/dist/document-models/subscription-instance/v1/gen/service/error.d.ts.map +1 -1
  149. package/dist/document-models/subscription-instance/v1/gen/service/error.js +60 -1
  150. package/dist/document-models/subscription-instance/v1/gen/service-group/error.d.ts +39 -1
  151. package/dist/document-models/subscription-instance/v1/gen/service-group/error.d.ts.map +1 -1
  152. package/dist/document-models/subscription-instance/v1/gen/service-group/error.js +39 -1
  153. package/dist/document-models/subscription-instance/v1/gen/subscription/error.d.ts +55 -1
  154. package/dist/document-models/subscription-instance/v1/gen/subscription/error.d.ts.map +1 -1
  155. package/dist/document-models/subscription-instance/v1/gen/subscription/error.js +51 -1
  156. package/dist/document-models/subscription-instance/v1/gen/utils.js +2 -2
  157. package/dist/document-models/subscription-instance/v1/module.d.ts +1 -1
  158. package/dist/document-models/subscription-instance/v1/module.d.ts.map +1 -1
  159. package/dist/document-models/subscription-instance/v1/module.js +4 -1
  160. package/dist/document-models/subscription-instance/v1/src/reducers/customer.d.ts.map +1 -1
  161. package/dist/document-models/subscription-instance/v1/src/reducers/customer.js +1 -0
  162. package/dist/document-models/subscription-instance/v1/src/reducers/metrics.d.ts.map +1 -1
  163. package/dist/document-models/subscription-instance/v1/src/reducers/metrics.js +70 -45
  164. package/dist/document-models/subscription-instance/v1/src/reducers/service-group.d.ts.map +1 -1
  165. package/dist/document-models/subscription-instance/v1/src/reducers/service-group.js +108 -30
  166. package/dist/document-models/subscription-instance/v1/src/reducers/service.d.ts.map +1 -1
  167. package/dist/document-models/subscription-instance/v1/src/reducers/service.js +108 -39
  168. package/dist/document-models/subscription-instance/v1/src/reducers/subscription.d.ts.map +1 -1
  169. package/dist/document-models/subscription-instance/v1/src/reducers/subscription.js +193 -35
  170. package/dist/document-models/upgrade-manifests.d.ts.map +1 -1
  171. package/dist/document-models/upgrade-manifests.js +0 -2
  172. package/dist/editors/resource-instance-editor/editor.d.ts.map +1 -1
  173. package/dist/editors/resource-instance-editor/editor.js +13 -3
  174. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.d.ts.map +1 -1
  175. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.js +4 -2
  176. package/dist/editors/service-offering-editor/components/ServiceCatalog.d.ts.map +1 -1
  177. package/dist/editors/service-offering-editor/components/ServiceCatalog.js +189 -32
  178. package/dist/editors/service-offering-editor/components/TheMatrix.d.ts +1 -1
  179. package/dist/editors/service-offering-editor/components/TheMatrix.d.ts.map +1 -1
  180. package/dist/editors/service-offering-editor/components/TheMatrix.js +295 -140
  181. package/dist/editors/service-offering-editor/components/TierDefinition.d.ts.map +1 -1
  182. package/dist/editors/service-offering-editor/components/TierDefinition.js +2 -0
  183. package/dist/editors/service-offering-editor/components/TierPricingOptionsPanel.js +3 -3
  184. package/dist/editors/service-offering-editor/components/pricing-utils.d.ts.map +1 -1
  185. package/dist/editors/service-offering-editor/components/pricing-utils.js +26 -7
  186. package/dist/editors/service-offering-editor/editor.css +119 -0
  187. package/dist/editors/subscription-instance-editor/components/BillingPanel.d.ts.map +1 -1
  188. package/dist/editors/subscription-instance-editor/components/BillingPanel.js +4 -4
  189. package/dist/editors/subscription-instance-editor/components/CustomerInfo.d.ts.map +1 -1
  190. package/dist/editors/subscription-instance-editor/components/CustomerInfo.js +3 -2
  191. package/dist/editors/subscription-instance-editor/components/ImportServiceConfigButton.d.ts +3 -0
  192. package/dist/editors/subscription-instance-editor/components/ImportServiceConfigButton.d.ts.map +1 -1
  193. package/dist/editors/subscription-instance-editor/components/ImportServiceConfigButton.js +12 -0
  194. package/dist/editors/subscription-instance-editor/components/MetricActions.d.ts.map +1 -1
  195. package/dist/editors/subscription-instance-editor/components/MetricActions.js +4 -2
  196. package/dist/editors/subscription-instance-editor/components/MockDataButton.d.ts.map +1 -1
  197. package/dist/editors/subscription-instance-editor/components/MockDataButton.js +214 -2
  198. package/dist/editors/subscription-instance-editor/components/OperatorNotes.js +1 -1
  199. package/dist/editors/subscription-instance-editor/components/ServicesPanel.d.ts.map +1 -1
  200. package/dist/editors/subscription-instance-editor/components/ServicesPanel.js +9 -20
  201. package/dist/editors/subscription-instance-editor/components/SubscriptionActions.d.ts.map +1 -1
  202. package/dist/editors/subscription-instance-editor/components/SubscriptionActions.js +8 -9
  203. package/dist/editors/subscription-instance-editor/components/SubscriptionHeader.d.ts.map +1 -1
  204. package/dist/editors/subscription-instance-editor/components/SubscriptionHeader.js +1 -1
  205. package/dist/editors/subscription-instance-editor/components/billing-utils.d.ts +14 -6
  206. package/dist/editors/subscription-instance-editor/components/billing-utils.d.ts.map +1 -1
  207. package/dist/editors/subscription-instance-editor/components/billing-utils.js +19 -23
  208. package/dist/editors/subscription-instance-editor/components/mapOfferingToSubscription.d.ts +16 -2
  209. package/dist/editors/subscription-instance-editor/components/mapOfferingToSubscription.d.ts.map +1 -1
  210. package/dist/editors/subscription-instance-editor/components/mapOfferingToSubscription.js +155 -6
  211. package/dist/powerhouse.manifest.json +29 -3
  212. package/dist/style.css +14 -0
  213. package/dist/subgraphs/resources-services/resolvers.d.ts +2 -2
  214. package/dist/subgraphs/resources-services/resolvers.d.ts.map +1 -1
  215. package/dist/subgraphs/resources-services/resolvers.js +301 -215
  216. package/package.json +24 -19
  217. package/dist/document-models/facet/gen/schema/types.d.ts +0 -195
  218. package/dist/document-models/facet/gen/schema/types.d.ts.map +0 -1
  219. package/dist/document-models/facet/gen/schema/types.js +0 -1
  220. package/dist/document-models/facet/gen/schema/zod.d.ts +0 -18
  221. package/dist/document-models/facet/gen/schema/zod.d.ts.map +0 -1
  222. package/dist/document-models/facet/gen/schema/zod.js +0 -69
  223. package/dist/document-models/resource-instance/gen/schema/types.d.ts +0 -272
  224. package/dist/document-models/resource-instance/gen/schema/types.d.ts.map +0 -1
  225. package/dist/document-models/resource-instance/gen/schema/types.js +0 -1
  226. package/dist/document-models/resource-instance/gen/schema/zod.d.ts +0 -43
  227. package/dist/document-models/resource-instance/gen/schema/zod.d.ts.map +0 -1
  228. package/dist/document-models/resource-instance/gen/schema/zod.js +0 -185
  229. package/dist/document-models/resource-template/gen/schema/types.d.ts +0 -371
  230. package/dist/document-models/resource-template/gen/schema/types.d.ts.map +0 -1
  231. package/dist/document-models/resource-template/gen/schema/types.js +0 -1
  232. package/dist/document-models/resource-template/gen/schema/zod.d.ts +0 -52
  233. package/dist/document-models/resource-template/gen/schema/zod.d.ts.map +0 -1
  234. package/dist/document-models/resource-template/gen/schema/zod.js +0 -312
  235. package/dist/document-models/service-offering/gen/schema/types.d.ts +0 -451
  236. package/dist/document-models/service-offering/gen/schema/types.d.ts.map +0 -1
  237. package/dist/document-models/service-offering/gen/schema/types.js +0 -1
  238. package/dist/document-models/service-offering/gen/schema/zod.d.ts +0 -89
  239. package/dist/document-models/service-offering/gen/schema/zod.d.ts.map +0 -1
  240. package/dist/document-models/service-offering/gen/schema/zod.js +0 -419
  241. package/dist/document-models/subscription-instance/gen/schema/types.d.ts +0 -435
  242. package/dist/document-models/subscription-instance/gen/schema/types.d.ts.map +0 -1
  243. package/dist/document-models/subscription-instance/gen/schema/types.js +0 -1
  244. package/dist/document-models/subscription-instance/gen/schema/zod.d.ts +0 -99
  245. package/dist/document-models/subscription-instance/gen/schema/zod.d.ts.map +0 -1
  246. package/dist/document-models/subscription-instance/gen/schema/zod.js +0 -410
@@ -1,18 +1,32 @@
1
1
  import type { ServiceOfferingState } from "../../../document-models/service-offering/v1/gen/schema/types.js";
2
+ import type { PriceBreakdown } from "../../../document-models/service-offering/v1/src/utils.js";
2
3
  import type { InitializeSubscriptionInput, BillingCycle as SIBillingCycle } from "../../../document-models/subscription-instance/v1/gen/schema/types.js";
3
4
  export interface MapOfferingOptions {
5
+ /** The service offering state to import from */
4
6
  offering: ServiceOfferingState;
7
+ /** The selected tier ID */
5
8
  tierId: string;
9
+ /** The selected global billing cycle */
6
10
  selectedBillingCycle: SIBillingCycle;
11
+ /** Customer info */
7
12
  customerId?: string;
8
13
  customerName?: string;
9
14
  customerEmail?: string;
15
+ /** Timestamp for createdAt */
10
16
  createdAt: string;
17
+ /** Computed price breakdown from getUserSelectionPriceBreakdown */
18
+ priceBreakdown: PriceBreakdown;
11
19
  }
12
20
  /**
13
21
  * Maps a Service Offering state to an InitializeSubscriptionInput.
14
- * This creates the basic subscription shell services and groups
15
- * must be added via separate actions after initialization.
22
+ * This is a one-time snapshotthe SI lives independently after creation.
23
+ *
24
+ * Logic:
25
+ * 1. Find the selected tier and resolve pricing from priceBreakdown
26
+ * 2. Map option group breakdowns from priceBreakdown as service groups
27
+ * 3. Map add-on breakdowns from priceBreakdown as optional service groups
28
+ * 4. Map remaining standalone services with tier service levels and usage limits
29
+ * 5. Calculate tier price from breakdown or service group sums (CALCULATED) or manual price
16
30
  */
17
31
  export declare function mapOfferingToSubscription(options: MapOfferingOptions): InitializeSubscriptionInput;
18
32
  //# sourceMappingURL=mapOfferingToSubscription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapOfferingToSubscription.d.ts","sourceRoot":"","sources":["../../../../editors/subscription-instance-editor/components/mapOfferingToSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,kEAAkE,CAAC;AAC1E,OAAO,KAAK,EACV,2BAA2B,EAC3B,YAAY,IAAI,cAAc,EAC/B,MAAM,uEAAuE,CAAC;AAE/E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,cAAc,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,kBAAkB,GAC1B,2BAA2B,CAkC7B"}
1
+ {"version":3,"file":"mapOfferingToSubscription.d.ts","sourceRoot":"","sources":["../../../../editors/subscription-instance-editor/components/mapOfferingToSubscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EAIrB,MAAM,kEAAkE,CAAC;AAC1E,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,EACV,2BAA2B,EAM3B,YAAY,IAAI,cAAc,EAC/B,MAAM,uEAAuE,CAAC;AAE/E,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,oBAAoB,EAAE,cAAc,CAAC;IACrC,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,kBAAkB,GAC1B,2BAA2B,CA4E7B"}
@@ -1,17 +1,47 @@
1
+ import { generateId } from "document-model/core";
1
2
  /**
2
3
  * Maps a Service Offering state to an InitializeSubscriptionInput.
3
- * This creates the basic subscription shell services and groups
4
- * must be added via separate actions after initialization.
4
+ * This is a one-time snapshotthe SI lives independently after creation.
5
+ *
6
+ * Logic:
7
+ * 1. Find the selected tier and resolve pricing from priceBreakdown
8
+ * 2. Map option group breakdowns from priceBreakdown as service groups
9
+ * 3. Map add-on breakdowns from priceBreakdown as optional service groups
10
+ * 4. Map remaining standalone services with tier service levels and usage limits
11
+ * 5. Calculate tier price from breakdown or service group sums (CALCULATED) or manual price
5
12
  */
6
13
  export function mapOfferingToSubscription(options) {
7
- const { offering, tierId, selectedBillingCycle, customerId, customerName, customerEmail, createdAt, } = options;
14
+ const { offering, tierId, selectedBillingCycle, customerId, customerName, customerEmail, createdAt, priceBreakdown, } = options;
8
15
  const tier = offering.tiers.find((t) => t.id === tierId);
9
16
  if (!tier) {
10
17
  throw new Error(`Tier ${tierId} not found in offering`);
11
18
  }
12
- const currency = tier.pricing?.currency ?? "USD";
13
- const pricingMode = tier.pricingMode;
14
- const tierPrice = tier.pricing?.amount ?? undefined;
19
+ const currency = priceBreakdown.tierCurrency || tier.pricing.currency;
20
+ const pricingMode = tier.pricingMode || "MANUAL_OVERRIDE";
21
+ // Track which services are accounted for in groups
22
+ const groupedServiceIds = new Set();
23
+ // 1. Map option group and add-on breakdowns from priceBreakdown as service groups
24
+ const serviceGroups = [];
25
+ mapBreakdownGroups(offering, tier, priceBreakdown, currency, groupedServiceIds, serviceGroups);
26
+ // 3. Map remaining standalone services (not in any group or option group)
27
+ const standaloneServices = offering.services
28
+ .filter((s) => !groupedServiceIds.has(s.id))
29
+ .filter((svc) => {
30
+ const level = tier.serviceLevels.find((sl) => sl.serviceId === svc.id);
31
+ return (level &&
32
+ level.level !== "NOT_INCLUDED" &&
33
+ level.level !== "NOT_APPLICABLE");
34
+ })
35
+ .map((svc) => mapServiceToInput(svc, tier, currency, selectedBillingCycle));
36
+ // Calculate tier price
37
+ let tierPrice;
38
+ if (pricingMode === "CALCULATED") {
39
+ tierPrice = serviceGroups.reduce((sum, grp) => sum + (grp.recurringAmount ?? 0), 0);
40
+ }
41
+ else {
42
+ tierPrice =
43
+ priceBreakdown.tierCycleTotal ?? tier.pricing.amount ?? undefined;
44
+ }
15
45
  return {
16
46
  customerId: customerId ?? undefined,
17
47
  customerName: customerName ?? undefined,
@@ -24,6 +54,125 @@ export function mapOfferingToSubscription(options) {
24
54
  tierPricingMode: pricingMode,
25
55
  selectedBillingCycle,
26
56
  globalCurrency: currency,
57
+ autoRenew: true,
27
58
  createdAt,
59
+ services: standaloneServices,
60
+ serviceGroups,
61
+ };
62
+ }
63
+ /**
64
+ * Maps price breakdown option group and add-on breakdowns
65
+ * into subscription service groups.
66
+ */
67
+ function mapBreakdownGroups(offering, tier, breakdown, globalCurrency, groupedServiceIds, serviceGroups) {
68
+ // Non-add-on option groups (regular + setup)
69
+ const allOptionGroupBreakdowns = [
70
+ ...breakdown.optionGroupBreakdowns,
71
+ ...breakdown.setupGroupBreakdowns,
72
+ ];
73
+ for (const ogBreakdown of allOptionGroupBreakdowns) {
74
+ const og = offering.optionGroups.find((g) => g.id === ogBreakdown.optionGroupId);
75
+ if (!og || og.isAddOn)
76
+ continue;
77
+ const services = offering.services.filter((s) => s.optionGroupId === og.id);
78
+ if (services.length === 0)
79
+ continue;
80
+ services.forEach((s) => groupedServiceIds.add(s.id));
81
+ serviceGroups.push({
82
+ id: generateId(),
83
+ name: og.name,
84
+ optional: false,
85
+ costType: og.costType ?? undefined,
86
+ recurringAmount: ogBreakdown.recurringAmount || undefined,
87
+ recurringCurrency: ogBreakdown.currency || globalCurrency,
88
+ recurringBillingCycle: ogBreakdown.effectiveBillingCycle,
89
+ recurringDiscount: mapBreakdownDiscount(ogBreakdown.discount, og.discountMode === "INHERIT_TIER"
90
+ ? "TIER_INHERITED"
91
+ : "GROUP_INDEPENDENT"),
92
+ setupAmount: ogBreakdown.setupCost ?? undefined,
93
+ setupCurrency: ogBreakdown.setupCostCurrency ?? undefined,
94
+ services: services.map((svc) => mapServiceToInput(svc, tier, globalCurrency, ogBreakdown.effectiveBillingCycle)),
95
+ });
96
+ }
97
+ // Add-on option groups
98
+ for (const aoBreakdown of breakdown.addOnBreakdowns) {
99
+ const og = offering.optionGroups.find((g) => g.id === aoBreakdown.optionGroupId);
100
+ if (!og)
101
+ continue;
102
+ const services = offering.services.filter((s) => s.optionGroupId === og.id);
103
+ if (services.length === 0)
104
+ continue;
105
+ services.forEach((s) => groupedServiceIds.add(s.id));
106
+ serviceGroups.push({
107
+ id: generateId(),
108
+ name: og.name,
109
+ optional: true,
110
+ costType: og.costType ?? undefined,
111
+ recurringAmount: aoBreakdown.recurringAmount || undefined,
112
+ recurringCurrency: aoBreakdown.currency || globalCurrency,
113
+ recurringBillingCycle: aoBreakdown.selectedBillingCycle,
114
+ recurringDiscount: mapBreakdownDiscount(aoBreakdown.discount, og.discountMode === "INHERIT_TIER"
115
+ ? "TIER_INHERITED"
116
+ : "GROUP_INDEPENDENT"),
117
+ setupAmount: aoBreakdown.setupCost ?? undefined,
118
+ setupCurrency: aoBreakdown.setupCostCurrency ?? undefined,
119
+ services: services.map((svc) => mapServiceToInput(svc, tier, globalCurrency, aoBreakdown.selectedBillingCycle)),
120
+ });
121
+ }
122
+ }
123
+ /**
124
+ * Maps a single service from the offering to an InitializeServiceInput.
125
+ * Includes name, description, customValue from tier service levels,
126
+ * billing cycle, and usage metrics.
127
+ */
128
+ function mapServiceToInput(svc, tier, globalCurrency, billingCycle) {
129
+ const level = tier.serviceLevels.find((sl) => sl.serviceId === svc.id);
130
+ const metrics = mapUsageLimits(svc.id, tier.usageLimits, globalCurrency);
131
+ return {
132
+ id: generateId(),
133
+ name: svc.title,
134
+ description: svc.description ?? null,
135
+ customValue: level?.customValue ?? null,
136
+ recurringBillingCycle: billingCycle,
137
+ metrics,
138
+ };
139
+ }
140
+ /**
141
+ * Maps a resolved discount from the price breakdown to a DiscountInfoInitInput,
142
+ * or returns undefined if no discount.
143
+ */
144
+ function mapBreakdownDiscount(discount, source) {
145
+ if (!discount)
146
+ return undefined;
147
+ return {
148
+ originalAmount: discount.originalAmount,
149
+ discountType: discount.discountType,
150
+ discountValue: discount.discountValue,
151
+ source,
28
152
  };
29
153
  }
154
+ /**
155
+ * Maps usage limits from the tier to InitializeMetricInput for a given service.
156
+ */
157
+ function mapUsageLimits(serviceId, usageLimits, globalCurrency) {
158
+ const limits = usageLimits.filter((ul) => ul.serviceId === serviceId);
159
+ return limits.map((ul) => {
160
+ // Map SO's UsageResetCycle to SI's ResetPeriod (skip "NONE")
161
+ const usageResetPeriod = ul.resetCycle && ul.resetCycle !== "NONE"
162
+ ? ul.resetCycle
163
+ : undefined;
164
+ return {
165
+ id: generateId(),
166
+ name: ul.metric,
167
+ unitName: ul.unitName ?? "units",
168
+ limit: ul.freeLimit ?? ul.paidLimit ?? null,
169
+ freeLimit: ul.freeLimit ?? null,
170
+ paidLimit: ul.paidLimit ?? null,
171
+ currentUsage: 0,
172
+ usageResetPeriod,
173
+ unitCostAmount: ul.unitPrice ?? undefined,
174
+ unitCostCurrency: ul.unitPriceCurrency ?? globalCurrency,
175
+ unitCostBillingCycle: usageResetPeriod ? "MONTHLY" : undefined,
176
+ };
177
+ });
178
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "v6-service-offering",
2
+ "name": "@powerhousedao/service-offering",
3
3
  "description": "",
4
4
  "category": "",
5
5
  "publisher": {
@@ -28,8 +28,34 @@
28
28
  "name": "SubscriptionInstance"
29
29
  }
30
30
  ],
31
- "editors": [],
31
+ "editors": [
32
+ {
33
+ "id": "resource-instance-editor",
34
+ "name": "Resource Instance Editor",
35
+ "documentTypes": ["powerhouse/resource-instance"]
36
+ },
37
+ {
38
+ "id": "resource-template-editor",
39
+ "name": "Resource Template Editor",
40
+ "documentTypes": ["powerhouse/resource-template"]
41
+ },
42
+ {
43
+ "id": "service-offering-editor",
44
+ "name": "Service Offering Editor",
45
+ "documentTypes": ["powerhouse/service-offering"]
46
+ },
47
+ {
48
+ "id": "subscription-instance-editor",
49
+ "name": "Subscription Instance Editor",
50
+ "documentTypes": ["powerhouse/subscription-instance"]
51
+ }
52
+ ],
32
53
  "apps": [],
33
- "subgraphs": [],
54
+ "subgraphs": [
55
+ {
56
+ "id": "resources-services",
57
+ "name": "Resources & Services"
58
+ }
59
+ ],
34
60
  "importScripts": []
35
61
  }
package/dist/style.css CHANGED
@@ -738,6 +738,9 @@
738
738
  .w-\[1\.125rem\] {
739
739
  width: 1.125rem;
740
740
  }
741
+ .w-\[4\.5rem\] {
742
+ width: 4.5rem;
743
+ }
741
744
  .w-\[18px\] {
742
745
  width: 18px;
743
746
  }
@@ -1406,6 +1409,9 @@
1406
1409
  .px-0 {
1407
1410
  padding-inline: calc(var(--spacing) * 0);
1408
1411
  }
1412
+ .px-1 {
1413
+ padding-inline: calc(var(--spacing) * 1);
1414
+ }
1409
1415
  .px-1\.5 {
1410
1416
  padding-inline: calc(var(--spacing) * 1.5);
1411
1417
  }
@@ -1601,6 +1607,9 @@
1601
1607
  font-size: var(--text-xs);
1602
1608
  line-height: var(--tw-leading, var(--text-xs--line-height));
1603
1609
  }
1610
+ .text-\[0\.5rem\] {
1611
+ font-size: 0.5rem;
1612
+ }
1604
1613
  .text-\[0\.8rem\] {
1605
1614
  font-size: 0.8rem;
1606
1615
  }
@@ -2693,6 +2702,11 @@
2693
2702
  border-color: var(--color-violet-500);
2694
2703
  }
2695
2704
  }
2705
+ .focus\:border-violet-600 {
2706
+ &:focus {
2707
+ border-color: var(--color-violet-600);
2708
+ }
2709
+ }
2696
2710
  .focus\:border-b-violet-500 {
2697
2711
  &:focus {
2698
2712
  border-bottom-color: var(--color-violet-500);
@@ -1,3 +1,3 @@
1
- import { type ISubgraph } from "@powerhousedao/reactor-api";
2
- export declare const getResolvers: (subgraph: ISubgraph) => Record<string, unknown>;
1
+ import type { BaseSubgraph } from "@powerhousedao/reactor-api";
2
+ export declare const getResolvers: (subgraph: BaseSubgraph) => Record<string, unknown>;
3
3
  //# sourceMappingURL=resolvers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/resources-services/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAsD5D,eAAO,MAAM,YAAY,GAAI,UAAU,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA6fxE,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/resources-services/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAyD/D,eAAO,MAAM,YAAY,GACvB,UAAU,YAAY,KACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAqgBxB,CAAC"}