@newpeak/barista-cli 0.1.7 → 0.1.9

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 (306) hide show
  1. package/README.md +10 -10
  2. package/dist/commands/liberica/calendar/index.d.ts +3 -0
  3. package/dist/commands/liberica/calendar/index.d.ts.map +1 -0
  4. package/dist/commands/liberica/calendar/index.js +11 -0
  5. package/dist/commands/liberica/calendar/index.js.map +1 -0
  6. package/dist/commands/liberica/calendar/list.d.ts +3 -0
  7. package/dist/commands/liberica/calendar/list.d.ts.map +1 -0
  8. package/dist/commands/liberica/calendar/list.js +181 -0
  9. package/dist/commands/liberica/calendar/list.js.map +1 -0
  10. package/dist/commands/liberica/calendar/set.d.ts +3 -0
  11. package/dist/commands/liberica/calendar/set.d.ts.map +1 -0
  12. package/dist/commands/liberica/calendar/set.js +120 -0
  13. package/dist/commands/liberica/calendar/set.js.map +1 -0
  14. package/dist/commands/liberica/client-contacts/create.d.ts +3 -0
  15. package/dist/commands/liberica/client-contacts/create.d.ts.map +1 -0
  16. package/dist/commands/liberica/client-contacts/create.js +132 -0
  17. package/dist/commands/liberica/client-contacts/create.js.map +1 -0
  18. package/dist/commands/liberica/client-contacts/delete.d.ts +3 -0
  19. package/dist/commands/liberica/client-contacts/delete.d.ts.map +1 -0
  20. package/dist/commands/liberica/client-contacts/delete.js +139 -0
  21. package/dist/commands/liberica/client-contacts/delete.js.map +1 -0
  22. package/dist/commands/liberica/client-contacts/get.d.ts +3 -0
  23. package/dist/commands/liberica/client-contacts/get.d.ts.map +1 -0
  24. package/dist/commands/liberica/client-contacts/get.js +92 -0
  25. package/dist/commands/liberica/client-contacts/get.js.map +1 -0
  26. package/dist/commands/liberica/client-contacts/index.d.ts +3 -0
  27. package/dist/commands/liberica/client-contacts/index.d.ts.map +1 -0
  28. package/dist/commands/liberica/client-contacts/index.js +17 -0
  29. package/dist/commands/liberica/client-contacts/index.js.map +1 -0
  30. package/dist/commands/liberica/client-contacts/list.d.ts +3 -0
  31. package/dist/commands/liberica/client-contacts/list.d.ts.map +1 -0
  32. package/dist/commands/liberica/client-contacts/list.js +92 -0
  33. package/dist/commands/liberica/client-contacts/list.js.map +1 -0
  34. package/dist/commands/liberica/client-contacts/update.d.ts +3 -0
  35. package/dist/commands/liberica/client-contacts/update.d.ts.map +1 -0
  36. package/dist/commands/liberica/client-contacts/update.js +156 -0
  37. package/dist/commands/liberica/client-contacts/update.js.map +1 -0
  38. package/dist/commands/liberica/dict-types/get.d.ts +3 -0
  39. package/dist/commands/liberica/dict-types/get.d.ts.map +1 -0
  40. package/dist/commands/liberica/dict-types/get.js +62 -0
  41. package/dist/commands/liberica/dict-types/get.js.map +1 -0
  42. package/dist/commands/liberica/dict-types/index.d.ts +3 -0
  43. package/dist/commands/liberica/dict-types/index.d.ts.map +1 -0
  44. package/dist/commands/liberica/dict-types/index.js +13 -0
  45. package/dist/commands/liberica/dict-types/index.js.map +1 -0
  46. package/dist/commands/liberica/dict-types/list.d.ts +3 -0
  47. package/dist/commands/liberica/dict-types/list.d.ts.map +1 -0
  48. package/dist/commands/liberica/dict-types/list.js +91 -0
  49. package/dist/commands/liberica/dict-types/list.js.map +1 -0
  50. package/dist/commands/liberica/dict-types/update.d.ts +3 -0
  51. package/dist/commands/liberica/dict-types/update.d.ts.map +1 -0
  52. package/dist/commands/liberica/dict-types/update.js +127 -0
  53. package/dist/commands/liberica/dict-types/update.js.map +1 -0
  54. package/dist/commands/liberica/dicts/create.d.ts +3 -0
  55. package/dist/commands/liberica/dicts/create.d.ts.map +1 -0
  56. package/dist/commands/liberica/dicts/create.js +157 -0
  57. package/dist/commands/liberica/dicts/create.js.map +1 -0
  58. package/dist/commands/liberica/dicts/delete.d.ts +3 -0
  59. package/dist/commands/liberica/dicts/delete.d.ts.map +1 -0
  60. package/dist/commands/liberica/dicts/delete.js +106 -0
  61. package/dist/commands/liberica/dicts/delete.js.map +1 -0
  62. package/dist/commands/liberica/dicts/get.d.ts +3 -0
  63. package/dist/commands/liberica/dicts/get.d.ts.map +1 -0
  64. package/dist/commands/liberica/dicts/get.js +69 -0
  65. package/dist/commands/liberica/dicts/get.js.map +1 -0
  66. package/dist/commands/liberica/dicts/index.d.ts +3 -0
  67. package/dist/commands/liberica/dicts/index.d.ts.map +1 -0
  68. package/dist/commands/liberica/dicts/index.js +17 -0
  69. package/dist/commands/liberica/dicts/index.js.map +1 -0
  70. package/dist/commands/liberica/dicts/list.d.ts +3 -0
  71. package/dist/commands/liberica/dicts/list.d.ts.map +1 -0
  72. package/dist/commands/liberica/dicts/list.js +88 -0
  73. package/dist/commands/liberica/dicts/list.js.map +1 -0
  74. package/dist/commands/liberica/dicts/update.d.ts +3 -0
  75. package/dist/commands/liberica/dicts/update.d.ts.map +1 -0
  76. package/dist/commands/liberica/dicts/update.js +112 -0
  77. package/dist/commands/liberica/dicts/update.js.map +1 -0
  78. package/dist/commands/liberica/index.d.ts.map +1 -1
  79. package/dist/commands/liberica/index.js +20 -0
  80. package/dist/commands/liberica/index.js.map +1 -1
  81. package/dist/commands/liberica/materials/create.d.ts.map +1 -1
  82. package/dist/commands/liberica/materials/create.js +13 -6
  83. package/dist/commands/liberica/materials/create.js.map +1 -1
  84. package/dist/commands/liberica/materials/update.js +1 -1
  85. package/dist/commands/liberica/materials/update.js.map +1 -1
  86. package/dist/commands/liberica/mould/get.d.ts +3 -0
  87. package/dist/commands/liberica/mould/get.d.ts.map +1 -0
  88. package/dist/commands/liberica/mould/get.js +90 -0
  89. package/dist/commands/liberica/mould/get.js.map +1 -0
  90. package/dist/commands/liberica/mould/index.d.ts +3 -0
  91. package/dist/commands/liberica/mould/index.d.ts.map +1 -0
  92. package/dist/commands/liberica/mould/index.js +15 -0
  93. package/dist/commands/liberica/mould/index.js.map +1 -0
  94. package/dist/commands/liberica/mould/list.d.ts +3 -0
  95. package/dist/commands/liberica/mould/list.d.ts.map +1 -0
  96. package/dist/commands/liberica/mould/list.js +114 -0
  97. package/dist/commands/liberica/mould/list.js.map +1 -0
  98. package/dist/commands/liberica/mould/set-status.d.ts +3 -0
  99. package/dist/commands/liberica/mould/set-status.d.ts.map +1 -0
  100. package/dist/commands/liberica/mould/set-status.js +84 -0
  101. package/dist/commands/liberica/mould/set-status.js.map +1 -0
  102. package/dist/commands/liberica/mould/stock-in.d.ts +3 -0
  103. package/dist/commands/liberica/mould/stock-in.d.ts.map +1 -0
  104. package/dist/commands/liberica/mould/stock-in.js +160 -0
  105. package/dist/commands/liberica/mould/stock-in.js.map +1 -0
  106. package/dist/commands/liberica/operations/active.d.ts +3 -0
  107. package/dist/commands/liberica/operations/active.d.ts.map +1 -0
  108. package/dist/commands/liberica/operations/active.js +152 -0
  109. package/dist/commands/liberica/operations/active.js.map +1 -0
  110. package/dist/commands/liberica/operations/batch-delete.d.ts +3 -0
  111. package/dist/commands/liberica/operations/batch-delete.d.ts.map +1 -0
  112. package/dist/commands/liberica/operations/batch-delete.js +130 -0
  113. package/dist/commands/liberica/operations/batch-delete.js.map +1 -0
  114. package/dist/commands/liberica/operations/copy.d.ts +3 -0
  115. package/dist/commands/liberica/operations/copy.d.ts.map +1 -0
  116. package/dist/commands/liberica/operations/copy.js +137 -0
  117. package/dist/commands/liberica/operations/copy.js.map +1 -0
  118. package/dist/commands/liberica/operations/create.d.ts +3 -0
  119. package/dist/commands/liberica/operations/create.d.ts.map +1 -0
  120. package/dist/commands/liberica/operations/create.js +212 -0
  121. package/dist/commands/liberica/operations/create.js.map +1 -0
  122. package/dist/commands/liberica/operations/deactive.d.ts +3 -0
  123. package/dist/commands/liberica/operations/deactive.d.ts.map +1 -0
  124. package/dist/commands/liberica/operations/deactive.js +152 -0
  125. package/dist/commands/liberica/operations/deactive.js.map +1 -0
  126. package/dist/commands/liberica/operations/delete.d.ts +3 -0
  127. package/dist/commands/liberica/operations/delete.d.ts.map +1 -0
  128. package/dist/commands/liberica/operations/delete.js +128 -0
  129. package/dist/commands/liberica/operations/delete.js.map +1 -0
  130. package/dist/commands/liberica/operations/get.d.ts +3 -0
  131. package/dist/commands/liberica/operations/get.d.ts.map +1 -0
  132. package/dist/commands/liberica/operations/get.js +93 -0
  133. package/dist/commands/liberica/operations/get.js.map +1 -0
  134. package/dist/commands/liberica/operations/index.d.ts +3 -0
  135. package/dist/commands/liberica/operations/index.d.ts.map +1 -0
  136. package/dist/commands/liberica/operations/index.js +25 -0
  137. package/dist/commands/liberica/operations/index.js.map +1 -0
  138. package/dist/commands/liberica/operations/list.d.ts +3 -0
  139. package/dist/commands/liberica/operations/list.d.ts.map +1 -0
  140. package/dist/commands/liberica/operations/list.js +141 -0
  141. package/dist/commands/liberica/operations/list.js.map +1 -0
  142. package/dist/commands/liberica/operations/update.d.ts +3 -0
  143. package/dist/commands/liberica/operations/update.d.ts.map +1 -0
  144. package/dist/commands/liberica/operations/update.js +208 -0
  145. package/dist/commands/liberica/operations/update.js.map +1 -0
  146. package/dist/commands/liberica/stock/__tests__/ledger.test.d.ts +2 -0
  147. package/dist/commands/liberica/stock/__tests__/ledger.test.d.ts.map +1 -0
  148. package/dist/commands/liberica/stock/__tests__/ledger.test.js +41 -0
  149. package/dist/commands/liberica/stock/__tests__/ledger.test.js.map +1 -0
  150. package/dist/commands/liberica/stock/__tests__/list.test.d.ts +2 -0
  151. package/dist/commands/liberica/stock/__tests__/list.test.d.ts.map +1 -0
  152. package/dist/commands/liberica/stock/__tests__/list.test.js +39 -0
  153. package/dist/commands/liberica/stock/__tests__/list.test.js.map +1 -0
  154. package/dist/commands/liberica/stock/index.d.ts +3 -0
  155. package/dist/commands/liberica/stock/index.d.ts.map +1 -0
  156. package/dist/commands/liberica/stock/index.js +11 -0
  157. package/dist/commands/liberica/stock/index.js.map +1 -0
  158. package/dist/commands/liberica/stock/ledger.d.ts +3 -0
  159. package/dist/commands/liberica/stock/ledger.d.ts.map +1 -0
  160. package/dist/commands/liberica/stock/ledger.js +154 -0
  161. package/dist/commands/liberica/stock/ledger.js.map +1 -0
  162. package/dist/commands/liberica/stock/list.d.ts +3 -0
  163. package/dist/commands/liberica/stock/list.d.ts.map +1 -0
  164. package/dist/commands/liberica/stock/list.js +127 -0
  165. package/dist/commands/liberica/stock/list.js.map +1 -0
  166. package/dist/commands/liberica/supplier-contacts/create.d.ts +3 -0
  167. package/dist/commands/liberica/supplier-contacts/create.d.ts.map +1 -0
  168. package/dist/commands/liberica/supplier-contacts/create.js +129 -0
  169. package/dist/commands/liberica/supplier-contacts/create.js.map +1 -0
  170. package/dist/commands/liberica/supplier-contacts/delete.d.ts +3 -0
  171. package/dist/commands/liberica/supplier-contacts/delete.d.ts.map +1 -0
  172. package/dist/commands/liberica/supplier-contacts/delete.js +88 -0
  173. package/dist/commands/liberica/supplier-contacts/delete.js.map +1 -0
  174. package/dist/commands/liberica/supplier-contacts/get.d.ts +3 -0
  175. package/dist/commands/liberica/supplier-contacts/get.d.ts.map +1 -0
  176. package/dist/commands/liberica/supplier-contacts/get.js +84 -0
  177. package/dist/commands/liberica/supplier-contacts/get.js.map +1 -0
  178. package/dist/commands/liberica/supplier-contacts/index.d.ts +3 -0
  179. package/dist/commands/liberica/supplier-contacts/index.d.ts.map +1 -0
  180. package/dist/commands/liberica/supplier-contacts/index.js +17 -0
  181. package/dist/commands/liberica/supplier-contacts/index.js.map +1 -0
  182. package/dist/commands/liberica/supplier-contacts/list.d.ts +3 -0
  183. package/dist/commands/liberica/supplier-contacts/list.d.ts.map +1 -0
  184. package/dist/commands/liberica/supplier-contacts/list.js +98 -0
  185. package/dist/commands/liberica/supplier-contacts/list.js.map +1 -0
  186. package/dist/commands/liberica/supplier-contacts/update.d.ts +3 -0
  187. package/dist/commands/liberica/supplier-contacts/update.d.ts.map +1 -0
  188. package/dist/commands/liberica/supplier-contacts/update.js +136 -0
  189. package/dist/commands/liberica/supplier-contacts/update.js.map +1 -0
  190. package/dist/core/api/client.d.ts +63 -0
  191. package/dist/core/api/client.d.ts.map +1 -1
  192. package/dist/core/api/client.js +1050 -65
  193. package/dist/core/api/client.js.map +1 -1
  194. package/dist/index.js +1 -1
  195. package/dist/types/calendar.d.ts +28 -0
  196. package/dist/types/calendar.d.ts.map +1 -0
  197. package/dist/types/calendar.js +2 -0
  198. package/dist/types/calendar.js.map +1 -0
  199. package/dist/types/client-contact.d.ts +65 -0
  200. package/dist/types/client-contact.d.ts.map +1 -0
  201. package/dist/types/client-contact.js +4 -0
  202. package/dist/types/client-contact.js.map +1 -0
  203. package/dist/types/dict.d.ts +97 -0
  204. package/dist/types/dict.d.ts.map +1 -0
  205. package/dist/types/dict.js +2 -0
  206. package/dist/types/dict.js.map +1 -0
  207. package/dist/types/index.d.ts +7 -0
  208. package/dist/types/index.d.ts.map +1 -1
  209. package/dist/types/index.js +1 -0
  210. package/dist/types/index.js.map +1 -1
  211. package/dist/types/material.d.ts +1 -1
  212. package/dist/types/material.d.ts.map +1 -1
  213. package/dist/types/mould-stock-in.d.ts +70 -0
  214. package/dist/types/mould-stock-in.d.ts.map +1 -0
  215. package/dist/types/mould-stock-in.js +3 -0
  216. package/dist/types/mould-stock-in.js.map +1 -0
  217. package/dist/types/mould.d.ts +61 -0
  218. package/dist/types/mould.d.ts.map +1 -0
  219. package/dist/types/mould.js +2 -0
  220. package/dist/types/mould.js.map +1 -0
  221. package/dist/types/operation.d.ts +66 -0
  222. package/dist/types/operation.d.ts.map +1 -0
  223. package/dist/types/operation.js +2 -0
  224. package/dist/types/operation.js.map +1 -0
  225. package/dist/types/stock.d.ts +133 -0
  226. package/dist/types/stock.d.ts.map +1 -0
  227. package/dist/types/stock.js +3 -0
  228. package/dist/types/stock.js.map +1 -0
  229. package/dist/types/supplier-contact.d.ts +65 -0
  230. package/dist/types/supplier-contact.d.ts.map +1 -0
  231. package/dist/types/supplier-contact.js +4 -0
  232. package/dist/types/supplier-contact.js.map +1 -0
  233. package/docs/commands/REFERENCE.md +24 -4
  234. package/docs/commands/liberica/calendar/DESIGN.md +333 -0
  235. package/docs/commands/liberica/client-contacts/create.md +152 -0
  236. package/docs/commands/liberica/client-contacts/delete.md +123 -0
  237. package/docs/commands/liberica/client-contacts/get.md +133 -0
  238. package/docs/commands/liberica/client-contacts/list.md +143 -0
  239. package/docs/commands/liberica/client-contacts/update.md +158 -0
  240. package/docs/commands/liberica/stock/ledger.md +209 -0
  241. package/docs/commands/liberica/stock/list.md +165 -0
  242. package/docs/commands/liberica/supplier-contacts/create.md +152 -0
  243. package/docs/commands/liberica/supplier-contacts/delete.md +123 -0
  244. package/docs/commands/liberica/supplier-contacts/get.md +133 -0
  245. package/docs/commands/liberica/supplier-contacts/list.md +143 -0
  246. package/docs/commands/liberica/supplier-contacts/update.md +158 -0
  247. package/package.json +1 -1
  248. package/src/commands/liberica/calendar/index.ts +13 -0
  249. package/src/commands/liberica/calendar/list.ts +214 -0
  250. package/src/commands/liberica/calendar/set.ts +130 -0
  251. package/src/commands/liberica/client-contacts/create.ts +115 -0
  252. package/src/commands/liberica/client-contacts/delete.ts +140 -0
  253. package/src/commands/liberica/client-contacts/get.ts +103 -0
  254. package/src/commands/liberica/client-contacts/index.ts +19 -0
  255. package/src/commands/liberica/client-contacts/list.ts +118 -0
  256. package/src/commands/liberica/client-contacts/update.ts +137 -0
  257. package/src/commands/liberica/dict-types/get.ts +74 -0
  258. package/src/commands/liberica/dict-types/index.ts +15 -0
  259. package/src/commands/liberica/dict-types/list.ts +118 -0
  260. package/src/commands/liberica/dict-types/update.ts +134 -0
  261. package/src/commands/liberica/dicts/create.ts +175 -0
  262. package/src/commands/liberica/dicts/delete.ts +107 -0
  263. package/src/commands/liberica/dicts/get.ts +80 -0
  264. package/src/commands/liberica/dicts/index.ts +19 -0
  265. package/src/commands/liberica/dicts/list.ts +114 -0
  266. package/src/commands/liberica/dicts/update.ts +116 -0
  267. package/src/commands/liberica/index.ts +20 -0
  268. package/src/commands/liberica/materials/create.ts +13 -5
  269. package/src/commands/liberica/materials/update.ts +1 -1
  270. package/src/commands/liberica/mould/get.ts +111 -0
  271. package/src/commands/liberica/mould/index.ts +17 -0
  272. package/src/commands/liberica/mould/list.ts +157 -0
  273. package/src/commands/liberica/mould/set-status.ts +99 -0
  274. package/src/commands/liberica/mould/stock-in.ts +165 -0
  275. package/src/commands/liberica/operations/active.ts +153 -0
  276. package/src/commands/liberica/operations/batch-delete.ts +131 -0
  277. package/src/commands/liberica/operations/copy.ts +138 -0
  278. package/src/commands/liberica/operations/create.ts +223 -0
  279. package/src/commands/liberica/operations/deactive.ts +152 -0
  280. package/src/commands/liberica/operations/delete.ts +128 -0
  281. package/src/commands/liberica/operations/design.md +587 -0
  282. package/src/commands/liberica/operations/get.ts +112 -0
  283. package/src/commands/liberica/operations/index.ts +27 -0
  284. package/src/commands/liberica/operations/list.ts +180 -0
  285. package/src/commands/liberica/operations/update.ts +218 -0
  286. package/src/commands/liberica/stock/index.ts +13 -0
  287. package/src/commands/liberica/stock/ledger.ts +159 -0
  288. package/src/commands/liberica/stock/list.ts +128 -0
  289. package/src/commands/liberica/supplier-contacts/create.ts +120 -0
  290. package/src/commands/liberica/supplier-contacts/delete.ts +88 -0
  291. package/src/commands/liberica/supplier-contacts/get.ts +94 -0
  292. package/src/commands/liberica/supplier-contacts/index.ts +19 -0
  293. package/src/commands/liberica/supplier-contacts/list.ts +130 -0
  294. package/src/commands/liberica/supplier-contacts/update.ts +127 -0
  295. package/src/core/api/client.ts +1238 -17
  296. package/src/index.ts +1 -1
  297. package/src/types/calendar.ts +36 -0
  298. package/src/types/client-contact.ts +78 -0
  299. package/src/types/dict.ts +121 -0
  300. package/src/types/index.ts +7 -0
  301. package/src/types/material.ts +1 -1
  302. package/src/types/mould-stock-in.ts +82 -0
  303. package/src/types/mould.ts +74 -0
  304. package/src/types/operation.ts +72 -0
  305. package/src/types/stock.ts +161 -0
  306. package/src/types/supplier-contact.ts +78 -0
@@ -26,6 +26,18 @@ import {
26
26
  SupplierQueryParams,
27
27
  SupplierApiResponse,
28
28
  } from '../../types/supplier.js';
29
+ import {
30
+ CreateClientContactRequest,
31
+ UpdateClientContactRequest,
32
+ ClientContactQueryParams,
33
+ ClientContactApiResponse,
34
+ } from '../../types/client-contact.js';
35
+ import {
36
+ CreateSupplierContactRequest,
37
+ UpdateSupplierContactRequest,
38
+ SupplierContactQueryParams,
39
+ SupplierContactApiResponse,
40
+ } from '../../types/supplier-contact.js';
29
41
  import { OrgListItem } from '../../types/org.js';
30
42
  import { PositionListItem } from '../../types/position.js';
31
43
  import {
@@ -55,6 +67,42 @@ import {
55
67
  CreateLocationRequest,
56
68
  UpdateLocationRequest,
57
69
  } from '../../types/location.js';
70
+ import {
71
+ UpdateDictTypeRequest,
72
+ DictTypeQueryParams,
73
+ DictItemQueryParams,
74
+ DictTypeApiResponse,
75
+ DictApiResponse,
76
+ CreateDictItemRequest,
77
+ UpdateDictItemRequest,
78
+ } from '../../types/dict.js';
79
+ import {
80
+ OperationQueryParams,
81
+ OperationApiResponse,
82
+ OperationCreateRequest,
83
+ OperationUpdateRequest,
84
+ } from '../../types/operation.js';
85
+ import {
86
+ MasterStockQueryParams,
87
+ MasterStockApiResponse,
88
+ StockJourneyQueryParams,
89
+ StockJourneyApiResponse,
90
+ StockJourneySummaryApiResponse,
91
+ } from '../../types/stock.js';
92
+ import {
93
+ CalendarQueryParams,
94
+ CalendarApiResponse,
95
+ CalendarSetRequest,
96
+ } from '../../types/calendar.js';
97
+ import {
98
+ MouldEntityQueryParams,
99
+ MouldEntitySetStatusRequest,
100
+ MouldEntityApiResponse,
101
+ } from '../../types/mould.js';
102
+ import {
103
+ MouldEntityRegFormRequest,
104
+ MouldEntityRegFormApiResponse,
105
+ } from '../../types/mould-stock-in.js';
58
106
 
59
107
  export interface LoginResponse {
60
108
  token: string;
@@ -246,6 +294,7 @@ export function createAPIClient(service: Service, environment: Environment, tena
246
294
 
247
295
  const orgCache = new Map<string, { items: OrgListItem[]; timestamp: number }>();
248
296
  const positionCache = new Map<string, { items: PositionListItem[]; timestamp: number }>();
297
+ const dictItemsCache = new Map<string, { items: { dictCode: string; dictName: string }[]; timestamp: number }>();
249
298
  const CACHE_TTL_MS = 5 * 60 * 1000;
250
299
 
251
300
  export const apiClient = {
@@ -517,6 +566,180 @@ export const apiClient = {
517
566
  }
518
567
  },
519
568
 
569
+ async listDictTypes(
570
+ environment: Environment,
571
+ tenant: string,
572
+ params: DictTypeQueryParams
573
+ ): Promise<DictTypeApiResponse> {
574
+ try {
575
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
576
+ if (!token) {
577
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
578
+ }
579
+ const client = createAPIClient('liberica' as Service, environment, tenant);
580
+ client.setAuthToken(token);
581
+ const queryString = new URLSearchParams();
582
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
583
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
584
+ if (params.status) queryString.append('status', params.status.toString());
585
+ if (params.dictTypeCode) queryString.append('dictTypeCode', params.dictTypeCode);
586
+ if (params.dictTypeName) queryString.append('dictTypeName', params.dictTypeName);
587
+ const url = `/api/enterprise/dictType/list${queryString.toString() ? '?' + queryString.toString() : ''}`;
588
+ const response = await client.getClient().get<DictTypeApiResponse>(url);
589
+ return response.data;
590
+ } catch (error) {
591
+ return handleApiErrorDictType(error);
592
+ }
593
+ },
594
+
595
+ async getDictType(
596
+ environment: Environment,
597
+ tenant: string,
598
+ dictTypeId: string
599
+ ): Promise<DictTypeApiResponse> {
600
+ try {
601
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
602
+ if (!token) {
603
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
604
+ }
605
+ const client = createAPIClient('liberica' as Service, environment, tenant);
606
+ client.setAuthToken(token);
607
+ const response = await client.getClient().get<DictTypeApiResponse>(
608
+ `/api/enterprise/dictType/detail?dictTypeId=${dictTypeId}`
609
+ );
610
+ return response.data;
611
+ } catch (error) {
612
+ return handleApiErrorDictType(error);
613
+ }
614
+ },
615
+
616
+ async updateDictType(
617
+ environment: Environment,
618
+ tenant: string,
619
+ data: UpdateDictTypeRequest
620
+ ): Promise<DictTypeApiResponse> {
621
+ try {
622
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
623
+ if (!token) {
624
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
625
+ }
626
+ const client = createAPIClient('liberica' as Service, environment, tenant);
627
+ client.setAuthToken(token);
628
+ const response = await client.getClient().post<DictTypeApiResponse>('/api/enterprise/dictType/edit', data);
629
+ return response.data;
630
+ } catch (error) {
631
+ return handleApiErrorDictType(error);
632
+ }
633
+ },
634
+
635
+ async listDictItems(
636
+ environment: Environment,
637
+ tenant: string,
638
+ params: DictItemQueryParams
639
+ ): Promise<DictApiResponse> {
640
+ try {
641
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
642
+ if (!token) {
643
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
644
+ }
645
+ const client = createAPIClient('liberica' as Service, environment, tenant);
646
+ client.setAuthToken(token);
647
+ const queryString = new URLSearchParams();
648
+ queryString.append('dictTypeCode', params.dictTypeCode);
649
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
650
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
651
+ if (params.status) queryString.append('status', params.status.toString());
652
+ if (params.dictCode) queryString.append('dictCode', params.dictCode);
653
+ if (params.dictName) queryString.append('dictName', params.dictName);
654
+ const url = `/api/enterprise/master/dict/list?${queryString.toString()}`;
655
+ const response = await client.getClient().get<DictApiResponse>(url);
656
+ return response.data;
657
+ } catch (error) {
658
+ return handleApiErrorDict(error);
659
+ }
660
+ },
661
+
662
+ async getDictItem(
663
+ environment: Environment,
664
+ tenant: string,
665
+ dictId: string
666
+ ): Promise<DictApiResponse> {
667
+ try {
668
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
669
+ if (!token) {
670
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
671
+ }
672
+ const client = createAPIClient('liberica' as Service, environment, tenant);
673
+ client.setAuthToken(token);
674
+ const response = await client.getClient().get<DictApiResponse>(
675
+ `/api/enterprise/dict/detail?dictId=${dictId}`
676
+ );
677
+ return response.data;
678
+ } catch (error) {
679
+ return handleApiErrorDict(error);
680
+ }
681
+ },
682
+
683
+ async createDictItem(
684
+ environment: Environment,
685
+ tenant: string,
686
+ data: CreateDictItemRequest
687
+ ): Promise<DictApiResponse> {
688
+ try {
689
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
690
+ if (!token) {
691
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
692
+ }
693
+ const client = createAPIClient('liberica' as Service, environment, tenant);
694
+ client.setAuthToken(token);
695
+ const response = await client.getClient().post<DictApiResponse>('/api/enterprise/dict/add', data);
696
+ return response.data;
697
+ } catch (error) {
698
+ return handleApiErrorDict(error);
699
+ }
700
+ },
701
+
702
+ async updateDictItem(
703
+ environment: Environment,
704
+ tenant: string,
705
+ data: UpdateDictItemRequest
706
+ ): Promise<DictApiResponse> {
707
+ try {
708
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
709
+ if (!token) {
710
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
711
+ }
712
+ const client = createAPIClient('liberica' as Service, environment, tenant);
713
+ client.setAuthToken(token);
714
+ const response = await client.getClient().post<DictApiResponse>('/api/enterprise/dict/edit', data);
715
+ return response.data;
716
+ } catch (error) {
717
+ return handleApiErrorDict(error);
718
+ }
719
+ },
720
+
721
+ async deleteDictItem(
722
+ environment: Environment,
723
+ tenant: string,
724
+ dictId: string
725
+ ): Promise<DictApiResponse> {
726
+ try {
727
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
728
+ if (!token) {
729
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
730
+ }
731
+ const client = createAPIClient('liberica' as Service, environment, tenant);
732
+ client.setAuthToken(token);
733
+ const response = await client.getClient().post<DictApiResponse>(
734
+ '/api/enterprise/dict/delete',
735
+ { dictId }
736
+ );
737
+ return response.data;
738
+ } catch (error) {
739
+ return handleApiErrorDict(error);
740
+ }
741
+ },
742
+
520
743
  async listPositions(
521
744
  environment: Environment,
522
745
  tenant: string
@@ -551,7 +774,48 @@ export const apiClient = {
551
774
  } catch (error) {
552
775
  return handleApiError(error) as { success: boolean; data?: PositionListItem[]; error?: { code: string; message: string } };
553
776
  }
554
- },
777
+ },
778
+
779
+ async getDictItems(
780
+ environment: Environment,
781
+ tenant: string,
782
+ dictTypeCode: string
783
+ ): Promise<{ success: boolean; data?: { dictCode: string; dictName: string }[]; error?: { code: string; message: string } }> {
784
+ const cacheKey = `${environment}:${tenant}:${dictTypeCode}`;
785
+ const cached = dictItemsCache.get(cacheKey);
786
+ if (cached && Date.now() - cached.timestamp < CACHE_TTL_MS) {
787
+ return { success: true, data: cached.items };
788
+ }
789
+ try {
790
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
791
+ if (!token) {
792
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in' } };
793
+ }
794
+ const client = createAPIClient('liberica' as Service, environment, tenant);
795
+ client.setAuthToken(token);
796
+ const response = await client.getClient().get<{ success: boolean; data?: { dictCode: string; dictName: string }[]; message?: string }>(
797
+ `/api/enterprise/master/dict/list?dictTypeCode=${dictTypeCode}`
798
+ );
799
+ if (response.data?.success && response.data?.data) {
800
+ dictItemsCache.set(cacheKey, { items: response.data.data, timestamp: Date.now() });
801
+ return { success: true, data: response.data.data };
802
+ }
803
+ if (response.data?.success && Array.isArray(response.data?.data)) {
804
+ dictItemsCache.set(cacheKey, { items: response.data.data as any, timestamp: Date.now() });
805
+ return { success: true, data: response.data.data as any };
806
+ }
807
+ return response.data as { success: boolean; data?: { dictCode: string; dictName: string }[]; error?: { code: string; message: string } };
808
+ } catch (error) {
809
+ return handleApiError(error) as { success: boolean; data?: { dictCode: string; dictName: string }[]; error?: { code: string; message: string } };
810
+ }
811
+ },
812
+
813
+ async getOperationCode(
814
+ environment: Environment,
815
+ tenant: string
816
+ ): Promise<{ success: boolean; data?: string; error?: { code: string; message: string } }> {
817
+ return this.getCodeByType(environment, tenant, 'TenantOperationCode');
818
+ },
555
819
 
556
820
  async createUser(
557
821
  environment: Environment,
@@ -929,6 +1193,123 @@ export const apiClient = {
929
1193
  }
930
1194
  },
931
1195
 
1196
+ async listClientContacts(
1197
+ environment: Environment,
1198
+ tenant: string,
1199
+ params: ClientContactQueryParams
1200
+ ): Promise<ClientContactApiResponse> {
1201
+ try {
1202
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1203
+ if (!token) {
1204
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1205
+ }
1206
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1207
+ client.setAuthToken(token);
1208
+ const queryString = new URLSearchParams();
1209
+ if (params.clientId) queryString.append('clientId', params.clientId);
1210
+ const url = `/api/enterprise/sales/clientContact/list${queryString.toString() ? '?' + queryString.toString() : ''}`;
1211
+ const response = await client.getClient().get(url);
1212
+ const responseData = response.data;
1213
+
1214
+ if (responseData && responseData.data && Array.isArray(responseData.data)) {
1215
+ return {
1216
+ success: true,
1217
+ data: {
1218
+ rows: responseData.data,
1219
+ pageNo: 0,
1220
+ pageSize: responseData.data.length,
1221
+ totalRows: responseData.data.length,
1222
+ },
1223
+ };
1224
+ }
1225
+ return responseData as ClientContactApiResponse;
1226
+ } catch (error) {
1227
+ return handleApiErrorClientContact(error);
1228
+ }
1229
+ },
1230
+
1231
+ async getClientContact(
1232
+ environment: Environment,
1233
+ tenant: string,
1234
+ clientContactId: string
1235
+ ): Promise<ClientContactApiResponse> {
1236
+ try {
1237
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1238
+ if (!token) {
1239
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1240
+ }
1241
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1242
+ client.setAuthToken(token);
1243
+ const response = await client.getClient().get<ClientContactApiResponse>(
1244
+ `/api/enterprise/sales/clientContact/detail?clientContactId=${clientContactId}`
1245
+ );
1246
+ return response.data;
1247
+ } catch (error) {
1248
+ return handleApiErrorClientContact(error);
1249
+ }
1250
+ },
1251
+
1252
+ async createClientContact(
1253
+ environment: Environment,
1254
+ tenant: string,
1255
+ data: CreateClientContactRequest
1256
+ ): Promise<ClientContactApiResponse> {
1257
+ try {
1258
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1259
+ if (!token) {
1260
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1261
+ }
1262
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1263
+ client.setAuthToken(token);
1264
+ const response = await client.getClient().post<ClientContactApiResponse>('/api/enterprise/sales/clientContact/add', data);
1265
+ return response.data;
1266
+ } catch (error) {
1267
+ return handleApiErrorClientContact(error);
1268
+ }
1269
+ },
1270
+
1271
+ async updateClientContact(
1272
+ environment: Environment,
1273
+ tenant: string,
1274
+ data: UpdateClientContactRequest
1275
+ ): Promise<ClientContactApiResponse> {
1276
+ try {
1277
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1278
+ if (!token) {
1279
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1280
+ }
1281
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1282
+ client.setAuthToken(token);
1283
+ const response = await client.getClient().post<ClientContactApiResponse>('/api/enterprise/sales/clientContact/edit', data);
1284
+ return response.data;
1285
+ } catch (error) {
1286
+ return handleApiErrorClientContact(error);
1287
+ }
1288
+ },
1289
+
1290
+ async deleteClientContact(
1291
+ environment: Environment,
1292
+ tenant: string,
1293
+ clientContactId: string
1294
+ ): Promise<ClientContactApiResponse> {
1295
+ try {
1296
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1297
+ if (!token) {
1298
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1299
+ }
1300
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1301
+ client.setAuthToken(token);
1302
+ const response = await client.getClient().post<ClientContactApiResponse>(
1303
+ '/api/enterprise/sales/clientContact/delete',
1304
+ { clientContactId }
1305
+ );
1306
+ return response.data;
1307
+ } catch (error) {
1308
+ return handleApiErrorClientContact(error);
1309
+ }
1310
+ },
1311
+
1312
+
932
1313
  async listSuppliers(
933
1314
  environment: Environment,
934
1315
  tenant: string,
@@ -1149,11 +1530,11 @@ export const apiClient = {
1149
1530
  }
1150
1531
  },
1151
1532
 
1152
- async createMaterial(
1533
+ async listSupplierContacts(
1153
1534
  environment: Environment,
1154
1535
  tenant: string,
1155
- data: MaterialRequest
1156
- ): Promise<MaterialApiResponse> {
1536
+ params: SupplierContactQueryParams
1537
+ ): Promise<SupplierContactApiResponse> {
1157
1538
  try {
1158
1539
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1159
1540
  if (!token) {
@@ -1161,19 +1542,34 @@ export const apiClient = {
1161
1542
  }
1162
1543
  const client = createAPIClient('liberica' as Service, environment, tenant);
1163
1544
  client.setAuthToken(token);
1164
- const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/add', data);
1165
- return response.data;
1545
+ const queryString = new URLSearchParams();
1546
+ if (params.supplierId) queryString.append('supplierId', params.supplierId);
1547
+ const url = `/api/enterprise/purchases/supplierContact/list${queryString.toString() ? '?' + queryString.toString() : ''}`;
1548
+ const response = await client.getClient().get(url);
1549
+ const responseData = response.data;
1550
+
1551
+ if (responseData && responseData.data && Array.isArray(responseData.data)) {
1552
+ return {
1553
+ success: true,
1554
+ data: {
1555
+ rows: responseData.data,
1556
+ pageNo: 0,
1557
+ pageSize: responseData.data.length,
1558
+ totalRows: responseData.data.length,
1559
+ },
1560
+ };
1561
+ }
1562
+ return responseData as SupplierContactApiResponse;
1166
1563
  } catch (error) {
1167
- return handleApiErrorMaterial(error);
1564
+ return handleApiErrorSupplierContact(error);
1168
1565
  }
1169
1566
  },
1170
1567
 
1171
- async updateMaterial(
1568
+ async getSupplierContact(
1172
1569
  environment: Environment,
1173
1570
  tenant: string,
1174
- materialId: string,
1175
- data: MaterialRequest
1176
- ): Promise<MaterialApiResponse> {
1571
+ supplierContactId: string
1572
+ ): Promise<SupplierContactApiResponse> {
1177
1573
  try {
1178
1574
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1179
1575
  if (!token) {
@@ -1181,14 +1577,115 @@ export const apiClient = {
1181
1577
  }
1182
1578
  const client = createAPIClient('liberica' as Service, environment, tenant);
1183
1579
  client.setAuthToken(token);
1184
- const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/edit', { materialId, ...data });
1580
+ const response = await client.getClient().get<SupplierContactApiResponse>(
1581
+ `/api/enterprise/purchases/supplierContact/detail?supplierContactId=${supplierContactId}`
1582
+ );
1185
1583
  return response.data;
1186
1584
  } catch (error) {
1187
- return handleApiErrorMaterial(error);
1585
+ return handleApiErrorSupplierContact(error);
1188
1586
  }
1189
1587
  },
1190
1588
 
1191
- async disableMaterial(
1589
+ async createSupplierContact(
1590
+ environment: Environment,
1591
+ tenant: string,
1592
+ data: CreateSupplierContactRequest
1593
+ ): Promise<SupplierContactApiResponse> {
1594
+ try {
1595
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1596
+ if (!token) {
1597
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1598
+ }
1599
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1600
+ client.setAuthToken(token);
1601
+ const response = await client.getClient().post<SupplierContactApiResponse>('/api/enterprise/purchases/supplierContact/add', data);
1602
+ return response.data;
1603
+ } catch (error) {
1604
+ return handleApiErrorSupplierContact(error);
1605
+ }
1606
+ },
1607
+
1608
+ async updateSupplierContact(
1609
+ environment: Environment,
1610
+ tenant: string,
1611
+ data: UpdateSupplierContactRequest
1612
+ ): Promise<SupplierContactApiResponse> {
1613
+ try {
1614
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1615
+ if (!token) {
1616
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1617
+ }
1618
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1619
+ client.setAuthToken(token);
1620
+ const response = await client.getClient().post<SupplierContactApiResponse>('/api/enterprise/purchases/supplierContact/edit', data);
1621
+ return response.data;
1622
+ } catch (error) {
1623
+ return handleApiErrorSupplierContact(error);
1624
+ }
1625
+ },
1626
+
1627
+ async deleteSupplierContact(
1628
+ environment: Environment,
1629
+ tenant: string,
1630
+ supplierContactId: string
1631
+ ): Promise<SupplierContactApiResponse> {
1632
+ try {
1633
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1634
+ if (!token) {
1635
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1636
+ }
1637
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1638
+ client.setAuthToken(token);
1639
+ const response = await client.getClient().post<SupplierContactApiResponse>(
1640
+ '/api/enterprise/purchases/supplierContact/delete',
1641
+ { supplierContactId }
1642
+ );
1643
+ return response.data;
1644
+ } catch (error) {
1645
+ return handleApiErrorSupplierContact(error);
1646
+ }
1647
+ },
1648
+
1649
+ async createMaterial(
1650
+ environment: Environment,
1651
+ tenant: string,
1652
+ data: MaterialRequest
1653
+ ): Promise<MaterialApiResponse> {
1654
+ try {
1655
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1656
+ if (!token) {
1657
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1658
+ }
1659
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1660
+ client.setAuthToken(token);
1661
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/add', data);
1662
+ return response.data;
1663
+ } catch (error) {
1664
+ return handleApiErrorMaterial(error);
1665
+ }
1666
+ },
1667
+
1668
+ async updateMaterial(
1669
+ environment: Environment,
1670
+ tenant: string,
1671
+ materialId: string,
1672
+ data: MaterialRequest
1673
+ ): Promise<MaterialApiResponse> {
1674
+ try {
1675
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1676
+ if (!token) {
1677
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1678
+ }
1679
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1680
+ client.setAuthToken(token);
1681
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/edit', { materialId, ...data });
1682
+ return response.data;
1683
+ } catch (error) {
1684
+ return handleApiErrorMaterial(error);
1685
+ }
1686
+ },
1687
+
1688
+ async disableMaterial(
1192
1689
  environment: Environment,
1193
1690
  tenant: string,
1194
1691
  materialId: string
@@ -1232,6 +1729,258 @@ export const apiClient = {
1232
1729
  }
1233
1730
  },
1234
1731
 
1732
+ async listStock(
1733
+ environment: Environment,
1734
+ tenant: string,
1735
+ params: MasterStockQueryParams
1736
+ ): Promise<MasterStockApiResponse> {
1737
+ try {
1738
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1739
+ if (!token) {
1740
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in...' } };
1741
+ }
1742
+
1743
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1744
+ client.setAuthToken(token);
1745
+
1746
+ const searchParams = new URLSearchParams();
1747
+ Object.entries(params).forEach(([key, value]) => {
1748
+ if (value !== undefined && value !== null) {
1749
+ searchParams.append(key, String(value));
1750
+ }
1751
+ });
1752
+
1753
+ const url = `/api/enterprise/master/stock/page/withWarehouse?${searchParams.toString()}`;
1754
+ const response = await client.getClient().get<MasterStockApiResponse>(url);
1755
+ return response.data;
1756
+ } catch (error) {
1757
+ return handleApiErrorStock(error);
1758
+ }
1759
+ },
1760
+
1761
+ async listStockLedger(
1762
+ environment: Environment,
1763
+ tenant: string,
1764
+ params: StockJourneyQueryParams
1765
+ ): Promise<StockJourneyApiResponse> {
1766
+ try {
1767
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1768
+ if (!token) {
1769
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in...' } };
1770
+ }
1771
+
1772
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1773
+ client.setAuthToken(token);
1774
+
1775
+ const searchParams = new URLSearchParams();
1776
+ Object.entries(params).forEach(([key, value]) => {
1777
+ if (value !== undefined && value !== null) {
1778
+ searchParams.append(key, String(value));
1779
+ }
1780
+ });
1781
+
1782
+ const url = `/api/enterprise/master/stock/journey/page?${searchParams.toString()}`;
1783
+ const response = await client.getClient().get<StockJourneyApiResponse>(url);
1784
+ return response.data;
1785
+ } catch (error) {
1786
+ return handleApiErrorStock(error) as unknown as StockJourneyApiResponse;
1787
+ }
1788
+ },
1789
+
1790
+ async getStockLedgerSummary(
1791
+ environment: Environment,
1792
+ tenant: string,
1793
+ params: StockJourneyQueryParams
1794
+ ): Promise<StockJourneySummaryApiResponse> {
1795
+ try {
1796
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1797
+ if (!token) {
1798
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in...' } };
1799
+ }
1800
+
1801
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1802
+ client.setAuthToken(token);
1803
+
1804
+ const searchParams = new URLSearchParams();
1805
+ Object.entries(params).forEach(([key, value]) => {
1806
+ if (value !== undefined && value !== null) {
1807
+ searchParams.append(key, String(value));
1808
+ }
1809
+ });
1810
+
1811
+ const url = `/api/enterprise/master/stock/journey/page/summary?${searchParams.toString()}`;
1812
+ const response = await client.getClient().get<StockJourneySummaryApiResponse>(url);
1813
+ return response.data;
1814
+ } catch (error) {
1815
+ return handleApiErrorStock(error) as unknown as StockJourneySummaryApiResponse;
1816
+ }
1817
+ },
1818
+
1819
+ async listCalendar(
1820
+ environment: Environment,
1821
+ tenant: string,
1822
+ params: CalendarQueryParams
1823
+ ): Promise<CalendarApiResponse> {
1824
+ try {
1825
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1826
+ if (!token) {
1827
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1828
+ }
1829
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1830
+ client.setAuthToken(token);
1831
+ const queryString = new URLSearchParams();
1832
+ queryString.append('year', params.year.toString());
1833
+ queryString.append('month', params.month.toString());
1834
+ if (params.months) queryString.append('months', params.months.toString());
1835
+ const url = `/api/enterprise/portal/calendar/page?${queryString.toString()}`;
1836
+ const response = await client.getClient().get<CalendarApiResponse>(url);
1837
+ return response.data;
1838
+ } catch (error) {
1839
+ return handleApiError(error) as CalendarApiResponse;
1840
+ }
1841
+ },
1842
+
1843
+ async setCalendar(
1844
+ environment: Environment,
1845
+ tenant: string,
1846
+ request: CalendarSetRequest
1847
+ ): Promise<APIResponse<void>> {
1848
+ try {
1849
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1850
+ if (!token) {
1851
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1852
+ }
1853
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1854
+ client.setAuthToken(token);
1855
+ const response = await client.getClient().post<APIResponse<void>>(
1856
+ '/api/enterprise/portal/calendar/edit',
1857
+ request
1858
+ );
1859
+ return response.data;
1860
+ } catch (error) {
1861
+ return handleApiError(error) as APIResponse<void>;
1862
+ }
1863
+ },
1864
+
1865
+ async listMouldEntities(
1866
+ environment: Environment,
1867
+ tenant: string,
1868
+ params: MouldEntityQueryParams
1869
+ ): Promise<MouldEntityApiResponse> {
1870
+ try {
1871
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1872
+ if (!token) {
1873
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1874
+ }
1875
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1876
+ client.setAuthToken(token);
1877
+ // CLI page 1 → API pageNo 0 (subtract 1)
1878
+ const queryString = new URLSearchParams();
1879
+ if (params.pageNo !== undefined) queryString.append('pageNo', (params.pageNo - 1).toString());
1880
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1881
+ if (params.status) queryString.append('status', params.status.toString());
1882
+ if (params.mouldEntityId) queryString.append('mouldEntityId', params.mouldEntityId);
1883
+ if (params.mouldEntityCode) queryString.append('mouldEntityCode', params.mouldEntityCode);
1884
+ if (params.materialCode) queryString.append('materialCode', params.materialCode);
1885
+ if (params.materialNo) queryString.append('materialNo', params.materialNo);
1886
+ if (params.materialName) queryString.append('materialName', params.materialName);
1887
+ if (params.seqNo) queryString.append('seqNo', params.seqNo);
1888
+ if (params.lotNo) queryString.append('lotNo', params.lotNo);
1889
+ if (params.mouldType) queryString.append('mouldType', params.mouldType);
1890
+ if (params.mouldFaceNumber) queryString.append('mouldFaceNumber', params.mouldFaceNumber.toString());
1891
+ if (params.mouldStatus) queryString.append('mouldStatus', params.mouldStatus);
1892
+ if (params.currentWarehouseCode) queryString.append('currentWarehouseCode', params.currentWarehouseCode);
1893
+ const url = `/api/enterprise/manufacture/mouldEntity/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1894
+ const response = await client.getClient().get<MouldEntityApiResponse>(url);
1895
+ return response.data;
1896
+ } catch (error) {
1897
+ return handleApiErrorMould(error);
1898
+ }
1899
+ },
1900
+
1901
+ async getMouldEntity(
1902
+ environment: Environment,
1903
+ tenant: string,
1904
+ id: string
1905
+ ): Promise<MouldEntityApiResponse> {
1906
+ try {
1907
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1908
+ if (!token) {
1909
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1910
+ }
1911
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1912
+ client.setAuthToken(token);
1913
+ const response = await client.getClient().post<MouldEntityApiResponse>(
1914
+ '/api/enterprise/manufacture/mouldEntity/detail',
1915
+ { mouldEntityId: id }
1916
+ );
1917
+ return response.data;
1918
+ } catch (error) {
1919
+ return handleApiErrorMould(error);
1920
+ }
1921
+ },
1922
+
1923
+ async setMouldStatus(
1924
+ environment: Environment,
1925
+ tenant: string,
1926
+ request: MouldEntitySetStatusRequest
1927
+ ): Promise<MouldEntityApiResponse> {
1928
+ try {
1929
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1930
+ if (!token) {
1931
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1932
+ }
1933
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1934
+ client.setAuthToken(token);
1935
+ const response = await client.getClient().post<MouldEntityApiResponse>(
1936
+ '/api/enterprise/manufacture/mouldEntity/setMouldStatus',
1937
+ request
1938
+ );
1939
+ return response.data;
1940
+ } catch (error) {
1941
+ return handleApiErrorMould(error);
1942
+ }
1943
+ },
1944
+
1945
+ async createMouldStockIn(
1946
+ environment: Environment,
1947
+ tenant: string,
1948
+ request: MouldEntityRegFormRequest
1949
+ ): Promise<MouldEntityRegFormApiResponse> {
1950
+ try {
1951
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1952
+ if (!token) {
1953
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1954
+ }
1955
+
1956
+ const codeResponse = await this.getCodeByType(environment, tenant, 'TenantMouldRegFormCode');
1957
+ if (!codeResponse.success || !codeResponse.data) {
1958
+ return { success: false, error: { code: 'CODE_GENERATION_FAILED', message: codeResponse.error?.message || 'Failed to generate form code' } };
1959
+ }
1960
+ request.mouldEntityRegFormCode = codeResponse.data;
1961
+
1962
+ for (const item of request.itemList) {
1963
+ if (!item.mouldEntityRegFormItemCode) {
1964
+ const itemCodeResponse = await this.getCodeByType(environment, tenant, 'TenantMouldRegFormItemCode');
1965
+ if (!itemCodeResponse.success || !itemCodeResponse.data) {
1966
+ return { success: false, error: { code: 'CODE_GENERATION_FAILED', message: itemCodeResponse.error?.message || 'Failed to generate item code' } };
1967
+ }
1968
+ item.mouldEntityRegFormItemCode = itemCodeResponse.data;
1969
+ }
1970
+ }
1971
+
1972
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1973
+ client.setAuthToken(token);
1974
+ const response = await client.getClient().post<MouldEntityRegFormApiResponse>(
1975
+ '/api/enterprise/manufacture/mouldEntityRegForm/add',
1976
+ request
1977
+ );
1978
+ return response.data;
1979
+ } catch (error) {
1980
+ return handleApiErrorMould(error) as unknown as MouldEntityRegFormApiResponse;
1981
+ }
1982
+ },
1983
+
1235
1984
  async listUoms(
1236
1985
  environment: Environment,
1237
1986
  tenant: string,
@@ -1879,10 +2628,209 @@ export const apiClient = {
1879
2628
  }
1880
2629
  },
1881
2630
 
1882
- };
2631
+ async listOperations(
2632
+ environment: Environment,
2633
+ tenant: string,
2634
+ params: OperationQueryParams
2635
+ ): Promise<OperationApiResponse> {
2636
+ try {
2637
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2638
+ if (!token) {
2639
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2640
+ }
2641
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2642
+ client.setAuthToken(token);
2643
+ const queryString = new URLSearchParams();
2644
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
2645
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
2646
+ if (params.status) queryString.append('status', params.status.toString());
2647
+ if (params.operationCode) queryString.append('operationCode', params.operationCode);
2648
+ if (params.operationName) queryString.append('operationName', params.operationName);
2649
+ if (params.operationType) queryString.append('operationType', params.operationType);
2650
+ if (params.workCenterCode) queryString.append('workCenterCode', params.workCenterCode);
2651
+ const url = `/api/enterprise/manufacture/operation/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
2652
+ const response = await client.getClient().get<OperationApiResponse>(url);
2653
+ return response.data;
2654
+ } catch (error) {
2655
+ return handleApiErrorOperation(error);
2656
+ }
2657
+ },
1883
2658
 
1884
- function handleApiError(error: unknown): EmployeeApiResponse {
1885
- if (axios.isAxiosError(error)) {
2659
+ async getOperationDetail(
2660
+ environment: Environment,
2661
+ tenant: string,
2662
+ idOrCode: string
2663
+ ): Promise<OperationApiResponse> {
2664
+ try {
2665
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2666
+ if (!token) {
2667
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2668
+ }
2669
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2670
+ client.setAuthToken(token);
2671
+ const isNumeric = /^\d+$/.test(idOrCode);
2672
+ const paramName = isNumeric ? 'operationId' : 'operationCode';
2673
+ const response = await client.getClient().get<OperationApiResponse>(
2674
+ `/api/enterprise/manufacture/operation/detail?${paramName}=${encodeURIComponent(idOrCode)}`
2675
+ );
2676
+ return response.data;
2677
+ } catch (error) {
2678
+ return handleApiErrorOperation(error);
2679
+ }
2680
+ },
2681
+
2682
+ async createOperation(
2683
+ environment: Environment,
2684
+ tenant: string,
2685
+ data: OperationCreateRequest
2686
+ ): Promise<OperationApiResponse> {
2687
+ try {
2688
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2689
+ if (!token) {
2690
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2691
+ }
2692
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2693
+ client.setAuthToken(token);
2694
+ const response = await client.getClient().post<OperationApiResponse>('/api/enterprise/manufacture/operation/add', data);
2695
+ return response.data;
2696
+ } catch (error) {
2697
+ return handleApiErrorOperation(error);
2698
+ }
2699
+ },
2700
+
2701
+ async updateOperation(
2702
+ environment: Environment,
2703
+ tenant: string,
2704
+ data: OperationUpdateRequest
2705
+ ): Promise<OperationApiResponse> {
2706
+ try {
2707
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2708
+ if (!token) {
2709
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2710
+ }
2711
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2712
+ client.setAuthToken(token);
2713
+ const response = await client.getClient().post<OperationApiResponse>('/api/enterprise/manufacture/operation/edit', data);
2714
+ return response.data;
2715
+ } catch (error) {
2716
+ return handleApiErrorOperation(error);
2717
+ }
2718
+ },
2719
+
2720
+ async deleteOperation(
2721
+ environment: Environment,
2722
+ tenant: string,
2723
+ operationId: string
2724
+ ): Promise<OperationApiResponse> {
2725
+ try {
2726
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2727
+ if (!token) {
2728
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2729
+ }
2730
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2731
+ client.setAuthToken(token);
2732
+ const response = await client.getClient().post<OperationApiResponse>(
2733
+ '/api/enterprise/manufacture/operation/delete',
2734
+ { operationId }
2735
+ );
2736
+ return response.data;
2737
+ } catch (error) {
2738
+ return handleApiErrorOperation(error);
2739
+ }
2740
+ },
2741
+
2742
+ async batchDeleteOperations(
2743
+ environment: Environment,
2744
+ tenant: string,
2745
+ operationIds: string[]
2746
+ ): Promise<OperationApiResponse> {
2747
+ try {
2748
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2749
+ if (!token) {
2750
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2751
+ }
2752
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2753
+ client.setAuthToken(token);
2754
+ const response = await client.getClient().post<OperationApiResponse>(
2755
+ '/api/enterprise/manufacture/operation/batchDelete',
2756
+ { operationIdList: operationIds }
2757
+ );
2758
+ return response.data;
2759
+ } catch (error) {
2760
+ return handleApiErrorOperation(error);
2761
+ }
2762
+ },
2763
+
2764
+ async copyOperation(
2765
+ environment: Environment,
2766
+ tenant: string,
2767
+ operationId: string
2768
+ ): Promise<OperationApiResponse> {
2769
+ try {
2770
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2771
+ if (!token) {
2772
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2773
+ }
2774
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2775
+ client.setAuthToken(token);
2776
+ const response = await client.getClient().post<OperationApiResponse>(
2777
+ '/api/enterprise/manufacture/operation/copy',
2778
+ { operationId }
2779
+ );
2780
+ return response.data;
2781
+ } catch (error) {
2782
+ return handleApiErrorOperation(error);
2783
+ }
2784
+ },
2785
+
2786
+ async batchActiveOperations(
2787
+ environment: Environment,
2788
+ tenant: string,
2789
+ operationIds: string[]
2790
+ ): Promise<OperationApiResponse> {
2791
+ try {
2792
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2793
+ if (!token) {
2794
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2795
+ }
2796
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2797
+ client.setAuthToken(token);
2798
+ const response = await client.getClient().post<OperationApiResponse>(
2799
+ '/api/enterprise/manufacture/operation/batchActive',
2800
+ { operationIdList: operationIds }
2801
+ );
2802
+ return response.data;
2803
+ } catch (error) {
2804
+ return handleApiErrorOperation(error);
2805
+ }
2806
+ },
2807
+
2808
+ async batchDeActiveOperations(
2809
+ environment: Environment,
2810
+ tenant: string,
2811
+ operationIds: string[]
2812
+ ): Promise<OperationApiResponse> {
2813
+ try {
2814
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2815
+ if (!token) {
2816
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2817
+ }
2818
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2819
+ client.setAuthToken(token);
2820
+ const response = await client.getClient().post<OperationApiResponse>(
2821
+ '/api/enterprise/manufacture/operation/batchDeActive',
2822
+ { operationIdList: operationIds }
2823
+ );
2824
+ return response.data;
2825
+ } catch (error) {
2826
+ return handleApiErrorOperation(error);
2827
+ }
2828
+ },
2829
+
2830
+ };
2831
+
2832
+ function handleApiError(error: unknown): EmployeeApiResponse {
2833
+ if (axios.isAxiosError(error)) {
1886
2834
  const axiosError = error as AxiosError<Record<string, unknown>>;
1887
2835
  const responseData = axiosError.response?.data;
1888
2836
  if (responseData) {
@@ -1959,6 +2907,84 @@ function handleApiErrorClient(error: unknown): ClientApiResponse {
1959
2907
  };
1960
2908
  }
1961
2909
 
2910
+ function handleApiErrorClientContact(error: unknown): ClientContactApiResponse {
2911
+ if (axios.isAxiosError(error)) {
2912
+ const axiosError = error as AxiosError<Record<string, unknown>>;
2913
+ const responseData = axiosError.response?.data;
2914
+ if (responseData) {
2915
+ const success = responseData.success as boolean | undefined;
2916
+ if (success === false) {
2917
+ const code = responseData.code as string | undefined;
2918
+ const message = responseData.message as string | undefined;
2919
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
2920
+ if (!errorObj && (code || message)) {
2921
+ return {
2922
+ success: false,
2923
+ error: {
2924
+ code: code || 'API_ERROR',
2925
+ message: message || 'API error occurred',
2926
+ },
2927
+ };
2928
+ }
2929
+ }
2930
+ return responseData as unknown as ClientContactApiResponse;
2931
+ }
2932
+ return {
2933
+ success: false,
2934
+ error: {
2935
+ code: 'NETWORK_ERROR',
2936
+ message: axiosError.message || 'Network error occurred',
2937
+ },
2938
+ };
2939
+ }
2940
+ return {
2941
+ success: false,
2942
+ error: {
2943
+ code: 'UNKNOWN_ERROR',
2944
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
2945
+ },
2946
+ };
2947
+ }
2948
+
2949
+ function handleApiErrorSupplierContact(error: unknown): SupplierContactApiResponse {
2950
+ if (axios.isAxiosError(error)) {
2951
+ const axiosError = error as AxiosError<Record<string, unknown>>;
2952
+ const responseData = axiosError.response?.data;
2953
+ if (responseData) {
2954
+ const success = responseData.success as boolean | undefined;
2955
+ if (success === false) {
2956
+ const code = responseData.code as string | undefined;
2957
+ const message = responseData.message as string | undefined;
2958
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
2959
+ if (!errorObj && (code || message)) {
2960
+ return {
2961
+ success: false,
2962
+ error: {
2963
+ code: code || 'API_ERROR',
2964
+ message: message || 'API error occurred',
2965
+ },
2966
+ };
2967
+ }
2968
+ }
2969
+ return responseData as unknown as SupplierContactApiResponse;
2970
+ }
2971
+ return {
2972
+ success: false,
2973
+ error: {
2974
+ code: 'NETWORK_ERROR',
2975
+ message: axiosError.message || 'Network error occurred',
2976
+ },
2977
+ };
2978
+ }
2979
+ return {
2980
+ success: false,
2981
+ error: {
2982
+ code: 'UNKNOWN_ERROR',
2983
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
2984
+ },
2985
+ };
2986
+ }
2987
+
1962
2988
  function handleApiErrorSupplier(error: unknown): SupplierApiResponse {
1963
2989
  if (axios.isAxiosError(error)) {
1964
2990
  const axiosError = error as AxiosError<Record<string, unknown>>;
@@ -2191,4 +3217,199 @@ function handleApiErrorCurrency(error: unknown): CurrencyApiResponse {
2191
3217
  message: error instanceof Error ? error.message : 'Unknown error occurred',
2192
3218
  },
2193
3219
  };
3220
+ }
3221
+
3222
+ function handleApiErrorDictType(error: unknown): DictTypeApiResponse {
3223
+ if (axios.isAxiosError(error)) {
3224
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3225
+ const responseData = axiosError.response?.data;
3226
+ if (responseData) {
3227
+ const success = responseData.success as boolean | undefined;
3228
+ if (success === false) {
3229
+ const code = responseData.code as string | undefined;
3230
+ const message = responseData.message as string | undefined;
3231
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3232
+ if (!errorObj && (code || message)) {
3233
+ return {
3234
+ success: false,
3235
+ error: {
3236
+ code: code || 'API_ERROR',
3237
+ message: message || 'API error occurred',
3238
+ },
3239
+ };
3240
+ }
3241
+ }
3242
+ return responseData as unknown as DictTypeApiResponse;
3243
+ }
3244
+ return {
3245
+ success: false,
3246
+ error: {
3247
+ code: 'NETWORK_ERROR',
3248
+ message: axiosError.message || 'Network error occurred',
3249
+ },
3250
+ };
3251
+ }
3252
+ return {
3253
+ success: false,
3254
+ error: {
3255
+ code: 'UNKNOWN_ERROR',
3256
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3257
+ },
3258
+ };
3259
+ }
3260
+
3261
+ function handleApiErrorDict(error: unknown): DictApiResponse {
3262
+ if (axios.isAxiosError(error)) {
3263
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3264
+ const responseData = axiosError.response?.data;
3265
+ if (responseData) {
3266
+ const success = responseData.success as boolean | undefined;
3267
+ if (success === false) {
3268
+ const code = responseData.code as string | undefined;
3269
+ const message = responseData.message as string | undefined;
3270
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3271
+ if (!errorObj && (code || message)) {
3272
+ return {
3273
+ success: false,
3274
+ error: {
3275
+ code: code || 'API_ERROR',
3276
+ message: message || 'API error occurred',
3277
+ },
3278
+ };
3279
+ }
3280
+ }
3281
+ return responseData as unknown as DictApiResponse;
3282
+ }
3283
+ return {
3284
+ success: false,
3285
+ error: {
3286
+ code: 'NETWORK_ERROR',
3287
+ message: axiosError.message || 'Network error occurred',
3288
+ },
3289
+ };
3290
+ }
3291
+ return {
3292
+ success: false,
3293
+ error: {
3294
+ code: 'UNKNOWN_ERROR',
3295
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3296
+ },
3297
+ };
3298
+ }
3299
+
3300
+ function handleApiErrorOperation(error: unknown): OperationApiResponse {
3301
+ if (axios.isAxiosError(error)) {
3302
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3303
+ const responseData = axiosError.response?.data;
3304
+ if (responseData) {
3305
+ const success = responseData.success as boolean | undefined;
3306
+ if (success === false) {
3307
+ const code = responseData.code as string | undefined;
3308
+ const message = responseData.message as string | undefined;
3309
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3310
+ if (!errorObj && (code || message)) {
3311
+ return {
3312
+ success: false,
3313
+ error: {
3314
+ code: code || 'API_ERROR',
3315
+ message: message || 'API error occurred',
3316
+ },
3317
+ };
3318
+ }
3319
+ }
3320
+ return responseData as unknown as OperationApiResponse;
3321
+ }
3322
+ return {
3323
+ success: false,
3324
+ error: {
3325
+ code: 'NETWORK_ERROR',
3326
+ message: axiosError.message || 'Network error occurred',
3327
+ },
3328
+ };
3329
+ }
3330
+ return {
3331
+ success: false,
3332
+ error: {
3333
+ code: 'UNKNOWN_ERROR',
3334
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3335
+ },
3336
+ };
3337
+ }
3338
+
3339
+ function handleApiErrorStock(error: unknown): MasterStockApiResponse {
3340
+ if (axios.isAxiosError(error)) {
3341
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3342
+ const responseData = axiosError.response?.data;
3343
+ if (responseData) {
3344
+ const success = responseData.success as boolean | undefined;
3345
+ if (success === false) {
3346
+ const code = responseData.code as string | undefined;
3347
+ const message = responseData.message as string | undefined;
3348
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3349
+ if (!errorObj && (code || message)) {
3350
+ return {
3351
+ success: false,
3352
+ error: {
3353
+ code: code || 'API_ERROR',
3354
+ message: message || 'API error occurred',
3355
+ },
3356
+ };
3357
+ }
3358
+ }
3359
+ return responseData as unknown as MasterStockApiResponse;
3360
+ }
3361
+ return {
3362
+ success: false,
3363
+ error: {
3364
+ code: 'NETWORK_ERROR',
3365
+ message: axiosError.message || 'Network error occurred',
3366
+ },
3367
+ };
3368
+ }
3369
+ return {
3370
+ success: false,
3371
+ error: {
3372
+ code: 'UNKNOWN_ERROR',
3373
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3374
+ },
3375
+ };
3376
+ }
3377
+
3378
+ function handleApiErrorMould(error: unknown): MouldEntityApiResponse {
3379
+ if (axios.isAxiosError(error)) {
3380
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3381
+ const responseData = axiosError.response?.data;
3382
+ if (responseData) {
3383
+ const success = responseData.success as boolean | undefined;
3384
+ if (success === false) {
3385
+ const code = responseData.code as string | undefined;
3386
+ const message = responseData.message as string | undefined;
3387
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3388
+ if (!errorObj && (code || message)) {
3389
+ return {
3390
+ success: false,
3391
+ error: {
3392
+ code: code || 'API_ERROR',
3393
+ message: message || 'API error occurred',
3394
+ },
3395
+ };
3396
+ }
3397
+ }
3398
+ return responseData as unknown as MouldEntityApiResponse;
3399
+ }
3400
+ return {
3401
+ success: false,
3402
+ error: {
3403
+ code: 'NETWORK_ERROR',
3404
+ message: axiosError.message || 'Network error occurred',
3405
+ },
3406
+ };
3407
+ }
3408
+ return {
3409
+ success: false,
3410
+ error: {
3411
+ code: 'UNKNOWN_ERROR',
3412
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3413
+ },
3414
+ };
2194
3415
  }