@newpeak/barista-cli 0.1.7 → 0.1.8

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 (260) hide show
  1. package/dist/commands/liberica/calendar/index.d.ts +3 -0
  2. package/dist/commands/liberica/calendar/index.d.ts.map +1 -0
  3. package/dist/commands/liberica/calendar/index.js +11 -0
  4. package/dist/commands/liberica/calendar/index.js.map +1 -0
  5. package/dist/commands/liberica/calendar/list.d.ts +3 -0
  6. package/dist/commands/liberica/calendar/list.d.ts.map +1 -0
  7. package/dist/commands/liberica/calendar/list.js +181 -0
  8. package/dist/commands/liberica/calendar/list.js.map +1 -0
  9. package/dist/commands/liberica/calendar/set.d.ts +3 -0
  10. package/dist/commands/liberica/calendar/set.d.ts.map +1 -0
  11. package/dist/commands/liberica/calendar/set.js +120 -0
  12. package/dist/commands/liberica/calendar/set.js.map +1 -0
  13. package/dist/commands/liberica/client-contacts/create.d.ts +3 -0
  14. package/dist/commands/liberica/client-contacts/create.d.ts.map +1 -0
  15. package/dist/commands/liberica/client-contacts/create.js +132 -0
  16. package/dist/commands/liberica/client-contacts/create.js.map +1 -0
  17. package/dist/commands/liberica/client-contacts/delete.d.ts +3 -0
  18. package/dist/commands/liberica/client-contacts/delete.d.ts.map +1 -0
  19. package/dist/commands/liberica/client-contacts/delete.js +139 -0
  20. package/dist/commands/liberica/client-contacts/delete.js.map +1 -0
  21. package/dist/commands/liberica/client-contacts/get.d.ts +3 -0
  22. package/dist/commands/liberica/client-contacts/get.d.ts.map +1 -0
  23. package/dist/commands/liberica/client-contacts/get.js +92 -0
  24. package/dist/commands/liberica/client-contacts/get.js.map +1 -0
  25. package/dist/commands/liberica/client-contacts/index.d.ts +3 -0
  26. package/dist/commands/liberica/client-contacts/index.d.ts.map +1 -0
  27. package/dist/commands/liberica/client-contacts/index.js +17 -0
  28. package/dist/commands/liberica/client-contacts/index.js.map +1 -0
  29. package/dist/commands/liberica/client-contacts/list.d.ts +3 -0
  30. package/dist/commands/liberica/client-contacts/list.d.ts.map +1 -0
  31. package/dist/commands/liberica/client-contacts/list.js +92 -0
  32. package/dist/commands/liberica/client-contacts/list.js.map +1 -0
  33. package/dist/commands/liberica/client-contacts/update.d.ts +3 -0
  34. package/dist/commands/liberica/client-contacts/update.d.ts.map +1 -0
  35. package/dist/commands/liberica/client-contacts/update.js +156 -0
  36. package/dist/commands/liberica/client-contacts/update.js.map +1 -0
  37. package/dist/commands/liberica/dict-types/get.d.ts +3 -0
  38. package/dist/commands/liberica/dict-types/get.d.ts.map +1 -0
  39. package/dist/commands/liberica/dict-types/get.js +62 -0
  40. package/dist/commands/liberica/dict-types/get.js.map +1 -0
  41. package/dist/commands/liberica/dict-types/index.d.ts +3 -0
  42. package/dist/commands/liberica/dict-types/index.d.ts.map +1 -0
  43. package/dist/commands/liberica/dict-types/index.js +13 -0
  44. package/dist/commands/liberica/dict-types/index.js.map +1 -0
  45. package/dist/commands/liberica/dict-types/list.d.ts +3 -0
  46. package/dist/commands/liberica/dict-types/list.d.ts.map +1 -0
  47. package/dist/commands/liberica/dict-types/list.js +91 -0
  48. package/dist/commands/liberica/dict-types/list.js.map +1 -0
  49. package/dist/commands/liberica/dict-types/update.d.ts +3 -0
  50. package/dist/commands/liberica/dict-types/update.d.ts.map +1 -0
  51. package/dist/commands/liberica/dict-types/update.js +127 -0
  52. package/dist/commands/liberica/dict-types/update.js.map +1 -0
  53. package/dist/commands/liberica/dicts/create.d.ts +3 -0
  54. package/dist/commands/liberica/dicts/create.d.ts.map +1 -0
  55. package/dist/commands/liberica/dicts/create.js +157 -0
  56. package/dist/commands/liberica/dicts/create.js.map +1 -0
  57. package/dist/commands/liberica/dicts/delete.d.ts +3 -0
  58. package/dist/commands/liberica/dicts/delete.d.ts.map +1 -0
  59. package/dist/commands/liberica/dicts/delete.js +106 -0
  60. package/dist/commands/liberica/dicts/delete.js.map +1 -0
  61. package/dist/commands/liberica/dicts/get.d.ts +3 -0
  62. package/dist/commands/liberica/dicts/get.d.ts.map +1 -0
  63. package/dist/commands/liberica/dicts/get.js +69 -0
  64. package/dist/commands/liberica/dicts/get.js.map +1 -0
  65. package/dist/commands/liberica/dicts/index.d.ts +3 -0
  66. package/dist/commands/liberica/dicts/index.d.ts.map +1 -0
  67. package/dist/commands/liberica/dicts/index.js +17 -0
  68. package/dist/commands/liberica/dicts/index.js.map +1 -0
  69. package/dist/commands/liberica/dicts/list.d.ts +3 -0
  70. package/dist/commands/liberica/dicts/list.d.ts.map +1 -0
  71. package/dist/commands/liberica/dicts/list.js +88 -0
  72. package/dist/commands/liberica/dicts/list.js.map +1 -0
  73. package/dist/commands/liberica/dicts/update.d.ts +3 -0
  74. package/dist/commands/liberica/dicts/update.d.ts.map +1 -0
  75. package/dist/commands/liberica/dicts/update.js +112 -0
  76. package/dist/commands/liberica/dicts/update.js.map +1 -0
  77. package/dist/commands/liberica/index.d.ts.map +1 -1
  78. package/dist/commands/liberica/index.js +18 -0
  79. package/dist/commands/liberica/index.js.map +1 -1
  80. package/dist/commands/liberica/operations/active.d.ts +3 -0
  81. package/dist/commands/liberica/operations/active.d.ts.map +1 -0
  82. package/dist/commands/liberica/operations/active.js +152 -0
  83. package/dist/commands/liberica/operations/active.js.map +1 -0
  84. package/dist/commands/liberica/operations/batch-delete.d.ts +3 -0
  85. package/dist/commands/liberica/operations/batch-delete.d.ts.map +1 -0
  86. package/dist/commands/liberica/operations/batch-delete.js +130 -0
  87. package/dist/commands/liberica/operations/batch-delete.js.map +1 -0
  88. package/dist/commands/liberica/operations/copy.d.ts +3 -0
  89. package/dist/commands/liberica/operations/copy.d.ts.map +1 -0
  90. package/dist/commands/liberica/operations/copy.js +137 -0
  91. package/dist/commands/liberica/operations/copy.js.map +1 -0
  92. package/dist/commands/liberica/operations/create.d.ts +3 -0
  93. package/dist/commands/liberica/operations/create.d.ts.map +1 -0
  94. package/dist/commands/liberica/operations/create.js +212 -0
  95. package/dist/commands/liberica/operations/create.js.map +1 -0
  96. package/dist/commands/liberica/operations/deactive.d.ts +3 -0
  97. package/dist/commands/liberica/operations/deactive.d.ts.map +1 -0
  98. package/dist/commands/liberica/operations/deactive.js +152 -0
  99. package/dist/commands/liberica/operations/deactive.js.map +1 -0
  100. package/dist/commands/liberica/operations/delete.d.ts +3 -0
  101. package/dist/commands/liberica/operations/delete.d.ts.map +1 -0
  102. package/dist/commands/liberica/operations/delete.js +128 -0
  103. package/dist/commands/liberica/operations/delete.js.map +1 -0
  104. package/dist/commands/liberica/operations/get.d.ts +3 -0
  105. package/dist/commands/liberica/operations/get.d.ts.map +1 -0
  106. package/dist/commands/liberica/operations/get.js +93 -0
  107. package/dist/commands/liberica/operations/get.js.map +1 -0
  108. package/dist/commands/liberica/operations/index.d.ts +3 -0
  109. package/dist/commands/liberica/operations/index.d.ts.map +1 -0
  110. package/dist/commands/liberica/operations/index.js +25 -0
  111. package/dist/commands/liberica/operations/index.js.map +1 -0
  112. package/dist/commands/liberica/operations/list.d.ts +3 -0
  113. package/dist/commands/liberica/operations/list.d.ts.map +1 -0
  114. package/dist/commands/liberica/operations/list.js +141 -0
  115. package/dist/commands/liberica/operations/list.js.map +1 -0
  116. package/dist/commands/liberica/operations/update.d.ts +3 -0
  117. package/dist/commands/liberica/operations/update.d.ts.map +1 -0
  118. package/dist/commands/liberica/operations/update.js +208 -0
  119. package/dist/commands/liberica/operations/update.js.map +1 -0
  120. package/dist/commands/liberica/stock/__tests__/ledger.test.d.ts +2 -0
  121. package/dist/commands/liberica/stock/__tests__/ledger.test.d.ts.map +1 -0
  122. package/dist/commands/liberica/stock/__tests__/ledger.test.js +41 -0
  123. package/dist/commands/liberica/stock/__tests__/ledger.test.js.map +1 -0
  124. package/dist/commands/liberica/stock/__tests__/list.test.d.ts +2 -0
  125. package/dist/commands/liberica/stock/__tests__/list.test.d.ts.map +1 -0
  126. package/dist/commands/liberica/stock/__tests__/list.test.js +39 -0
  127. package/dist/commands/liberica/stock/__tests__/list.test.js.map +1 -0
  128. package/dist/commands/liberica/stock/index.d.ts +3 -0
  129. package/dist/commands/liberica/stock/index.d.ts.map +1 -0
  130. package/dist/commands/liberica/stock/index.js +11 -0
  131. package/dist/commands/liberica/stock/index.js.map +1 -0
  132. package/dist/commands/liberica/stock/ledger.d.ts +3 -0
  133. package/dist/commands/liberica/stock/ledger.d.ts.map +1 -0
  134. package/dist/commands/liberica/stock/ledger.js +154 -0
  135. package/dist/commands/liberica/stock/ledger.js.map +1 -0
  136. package/dist/commands/liberica/stock/list.d.ts +3 -0
  137. package/dist/commands/liberica/stock/list.d.ts.map +1 -0
  138. package/dist/commands/liberica/stock/list.js +127 -0
  139. package/dist/commands/liberica/stock/list.js.map +1 -0
  140. package/dist/commands/liberica/supplier-contacts/create.d.ts +3 -0
  141. package/dist/commands/liberica/supplier-contacts/create.d.ts.map +1 -0
  142. package/dist/commands/liberica/supplier-contacts/create.js +129 -0
  143. package/dist/commands/liberica/supplier-contacts/create.js.map +1 -0
  144. package/dist/commands/liberica/supplier-contacts/delete.d.ts +3 -0
  145. package/dist/commands/liberica/supplier-contacts/delete.d.ts.map +1 -0
  146. package/dist/commands/liberica/supplier-contacts/delete.js +88 -0
  147. package/dist/commands/liberica/supplier-contacts/delete.js.map +1 -0
  148. package/dist/commands/liberica/supplier-contacts/get.d.ts +3 -0
  149. package/dist/commands/liberica/supplier-contacts/get.d.ts.map +1 -0
  150. package/dist/commands/liberica/supplier-contacts/get.js +84 -0
  151. package/dist/commands/liberica/supplier-contacts/get.js.map +1 -0
  152. package/dist/commands/liberica/supplier-contacts/index.d.ts +3 -0
  153. package/dist/commands/liberica/supplier-contacts/index.d.ts.map +1 -0
  154. package/dist/commands/liberica/supplier-contacts/index.js +17 -0
  155. package/dist/commands/liberica/supplier-contacts/index.js.map +1 -0
  156. package/dist/commands/liberica/supplier-contacts/list.d.ts +3 -0
  157. package/dist/commands/liberica/supplier-contacts/list.d.ts.map +1 -0
  158. package/dist/commands/liberica/supplier-contacts/list.js +98 -0
  159. package/dist/commands/liberica/supplier-contacts/list.js.map +1 -0
  160. package/dist/commands/liberica/supplier-contacts/update.d.ts +3 -0
  161. package/dist/commands/liberica/supplier-contacts/update.d.ts.map +1 -0
  162. package/dist/commands/liberica/supplier-contacts/update.js +136 -0
  163. package/dist/commands/liberica/supplier-contacts/update.js.map +1 -0
  164. package/dist/core/api/client.d.ts +46 -0
  165. package/dist/core/api/client.d.ts.map +1 -1
  166. package/dist/core/api/client.js +865 -52
  167. package/dist/core/api/client.js.map +1 -1
  168. package/dist/index.js +1 -1
  169. package/dist/types/calendar.d.ts +28 -0
  170. package/dist/types/calendar.d.ts.map +1 -0
  171. package/dist/types/calendar.js +2 -0
  172. package/dist/types/calendar.js.map +1 -0
  173. package/dist/types/client-contact.d.ts +65 -0
  174. package/dist/types/client-contact.d.ts.map +1 -0
  175. package/dist/types/client-contact.js +4 -0
  176. package/dist/types/client-contact.js.map +1 -0
  177. package/dist/types/dict.d.ts +97 -0
  178. package/dist/types/dict.d.ts.map +1 -0
  179. package/dist/types/dict.js +2 -0
  180. package/dist/types/dict.js.map +1 -0
  181. package/dist/types/index.d.ts +5 -0
  182. package/dist/types/index.d.ts.map +1 -1
  183. package/dist/types/index.js +1 -0
  184. package/dist/types/index.js.map +1 -1
  185. package/dist/types/operation.d.ts +66 -0
  186. package/dist/types/operation.d.ts.map +1 -0
  187. package/dist/types/operation.js +2 -0
  188. package/dist/types/operation.js.map +1 -0
  189. package/dist/types/stock.d.ts +133 -0
  190. package/dist/types/stock.d.ts.map +1 -0
  191. package/dist/types/stock.js +3 -0
  192. package/dist/types/stock.js.map +1 -0
  193. package/dist/types/supplier-contact.d.ts +65 -0
  194. package/dist/types/supplier-contact.d.ts.map +1 -0
  195. package/dist/types/supplier-contact.js +4 -0
  196. package/dist/types/supplier-contact.js.map +1 -0
  197. package/docs/commands/REFERENCE.md +24 -4
  198. package/docs/commands/liberica/calendar/DESIGN.md +333 -0
  199. package/docs/commands/liberica/client-contacts/create.md +152 -0
  200. package/docs/commands/liberica/client-contacts/delete.md +123 -0
  201. package/docs/commands/liberica/client-contacts/get.md +133 -0
  202. package/docs/commands/liberica/client-contacts/list.md +143 -0
  203. package/docs/commands/liberica/client-contacts/update.md +158 -0
  204. package/docs/commands/liberica/stock/ledger.md +209 -0
  205. package/docs/commands/liberica/stock/list.md +165 -0
  206. package/docs/commands/liberica/supplier-contacts/create.md +152 -0
  207. package/docs/commands/liberica/supplier-contacts/delete.md +123 -0
  208. package/docs/commands/liberica/supplier-contacts/get.md +133 -0
  209. package/docs/commands/liberica/supplier-contacts/list.md +143 -0
  210. package/docs/commands/liberica/supplier-contacts/update.md +158 -0
  211. package/package.json +1 -1
  212. package/src/commands/liberica/calendar/index.ts +13 -0
  213. package/src/commands/liberica/calendar/list.ts +214 -0
  214. package/src/commands/liberica/calendar/set.ts +130 -0
  215. package/src/commands/liberica/client-contacts/create.ts +115 -0
  216. package/src/commands/liberica/client-contacts/delete.ts +140 -0
  217. package/src/commands/liberica/client-contacts/get.ts +103 -0
  218. package/src/commands/liberica/client-contacts/index.ts +19 -0
  219. package/src/commands/liberica/client-contacts/list.ts +118 -0
  220. package/src/commands/liberica/client-contacts/update.ts +137 -0
  221. package/src/commands/liberica/dict-types/get.ts +74 -0
  222. package/src/commands/liberica/dict-types/index.ts +15 -0
  223. package/src/commands/liberica/dict-types/list.ts +118 -0
  224. package/src/commands/liberica/dict-types/update.ts +134 -0
  225. package/src/commands/liberica/dicts/create.ts +175 -0
  226. package/src/commands/liberica/dicts/delete.ts +107 -0
  227. package/src/commands/liberica/dicts/get.ts +80 -0
  228. package/src/commands/liberica/dicts/index.ts +19 -0
  229. package/src/commands/liberica/dicts/list.ts +114 -0
  230. package/src/commands/liberica/dicts/update.ts +116 -0
  231. package/src/commands/liberica/index.ts +18 -0
  232. package/src/commands/liberica/operations/active.ts +153 -0
  233. package/src/commands/liberica/operations/batch-delete.ts +131 -0
  234. package/src/commands/liberica/operations/copy.ts +138 -0
  235. package/src/commands/liberica/operations/create.ts +223 -0
  236. package/src/commands/liberica/operations/deactive.ts +152 -0
  237. package/src/commands/liberica/operations/delete.ts +128 -0
  238. package/src/commands/liberica/operations/design.md +587 -0
  239. package/src/commands/liberica/operations/get.ts +112 -0
  240. package/src/commands/liberica/operations/index.ts +27 -0
  241. package/src/commands/liberica/operations/list.ts +180 -0
  242. package/src/commands/liberica/operations/update.ts +218 -0
  243. package/src/commands/liberica/stock/index.ts +13 -0
  244. package/src/commands/liberica/stock/ledger.ts +159 -0
  245. package/src/commands/liberica/stock/list.ts +128 -0
  246. package/src/commands/liberica/supplier-contacts/create.ts +120 -0
  247. package/src/commands/liberica/supplier-contacts/delete.ts +88 -0
  248. package/src/commands/liberica/supplier-contacts/get.ts +94 -0
  249. package/src/commands/liberica/supplier-contacts/index.ts +19 -0
  250. package/src/commands/liberica/supplier-contacts/list.ts +130 -0
  251. package/src/commands/liberica/supplier-contacts/update.ts +127 -0
  252. package/src/core/api/client.ts +1093 -74
  253. package/src/index.ts +1 -1
  254. package/src/types/calendar.ts +36 -0
  255. package/src/types/client-contact.ts +78 -0
  256. package/src/types/dict.ts +121 -0
  257. package/src/types/index.ts +5 -0
  258. package/src/types/operation.ts +72 -0
  259. package/src/types/stock.ts +161 -0
  260. 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,33 @@ 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';
58
97
 
59
98
  export interface LoginResponse {
60
99
  token: string;
@@ -517,6 +556,180 @@ export const apiClient = {
517
556
  }
518
557
  },
519
558
 
559
+ async listDictTypes(
560
+ environment: Environment,
561
+ tenant: string,
562
+ params: DictTypeQueryParams
563
+ ): Promise<DictTypeApiResponse> {
564
+ try {
565
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
566
+ if (!token) {
567
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
568
+ }
569
+ const client = createAPIClient('liberica' as Service, environment, tenant);
570
+ client.setAuthToken(token);
571
+ const queryString = new URLSearchParams();
572
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
573
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
574
+ if (params.status) queryString.append('status', params.status.toString());
575
+ if (params.dictTypeCode) queryString.append('dictTypeCode', params.dictTypeCode);
576
+ if (params.dictTypeName) queryString.append('dictTypeName', params.dictTypeName);
577
+ const url = `/api/enterprise/dictType/list${queryString.toString() ? '?' + queryString.toString() : ''}`;
578
+ const response = await client.getClient().get<DictTypeApiResponse>(url);
579
+ return response.data;
580
+ } catch (error) {
581
+ return handleApiErrorDictType(error);
582
+ }
583
+ },
584
+
585
+ async getDictType(
586
+ environment: Environment,
587
+ tenant: string,
588
+ dictTypeId: string
589
+ ): Promise<DictTypeApiResponse> {
590
+ try {
591
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
592
+ if (!token) {
593
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
594
+ }
595
+ const client = createAPIClient('liberica' as Service, environment, tenant);
596
+ client.setAuthToken(token);
597
+ const response = await client.getClient().get<DictTypeApiResponse>(
598
+ `/api/enterprise/dictType/detail?dictTypeId=${dictTypeId}`
599
+ );
600
+ return response.data;
601
+ } catch (error) {
602
+ return handleApiErrorDictType(error);
603
+ }
604
+ },
605
+
606
+ async updateDictType(
607
+ environment: Environment,
608
+ tenant: string,
609
+ data: UpdateDictTypeRequest
610
+ ): Promise<DictTypeApiResponse> {
611
+ try {
612
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
613
+ if (!token) {
614
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
615
+ }
616
+ const client = createAPIClient('liberica' as Service, environment, tenant);
617
+ client.setAuthToken(token);
618
+ const response = await client.getClient().post<DictTypeApiResponse>('/api/enterprise/dictType/edit', data);
619
+ return response.data;
620
+ } catch (error) {
621
+ return handleApiErrorDictType(error);
622
+ }
623
+ },
624
+
625
+ async listDictItems(
626
+ environment: Environment,
627
+ tenant: string,
628
+ params: DictItemQueryParams
629
+ ): Promise<DictApiResponse> {
630
+ try {
631
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
632
+ if (!token) {
633
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
634
+ }
635
+ const client = createAPIClient('liberica' as Service, environment, tenant);
636
+ client.setAuthToken(token);
637
+ const queryString = new URLSearchParams();
638
+ queryString.append('dictTypeCode', params.dictTypeCode);
639
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
640
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
641
+ if (params.status) queryString.append('status', params.status.toString());
642
+ if (params.dictCode) queryString.append('dictCode', params.dictCode);
643
+ if (params.dictName) queryString.append('dictName', params.dictName);
644
+ const url = `/api/enterprise/master/dict/list?${queryString.toString()}`;
645
+ const response = await client.getClient().get<DictApiResponse>(url);
646
+ return response.data;
647
+ } catch (error) {
648
+ return handleApiErrorDict(error);
649
+ }
650
+ },
651
+
652
+ async getDictItem(
653
+ environment: Environment,
654
+ tenant: string,
655
+ dictId: string
656
+ ): Promise<DictApiResponse> {
657
+ try {
658
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
659
+ if (!token) {
660
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
661
+ }
662
+ const client = createAPIClient('liberica' as Service, environment, tenant);
663
+ client.setAuthToken(token);
664
+ const response = await client.getClient().get<DictApiResponse>(
665
+ `/api/enterprise/dict/detail?dictId=${dictId}`
666
+ );
667
+ return response.data;
668
+ } catch (error) {
669
+ return handleApiErrorDict(error);
670
+ }
671
+ },
672
+
673
+ async createDictItem(
674
+ environment: Environment,
675
+ tenant: string,
676
+ data: CreateDictItemRequest
677
+ ): Promise<DictApiResponse> {
678
+ try {
679
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
680
+ if (!token) {
681
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
682
+ }
683
+ const client = createAPIClient('liberica' as Service, environment, tenant);
684
+ client.setAuthToken(token);
685
+ const response = await client.getClient().post<DictApiResponse>('/api/enterprise/dict/add', data);
686
+ return response.data;
687
+ } catch (error) {
688
+ return handleApiErrorDict(error);
689
+ }
690
+ },
691
+
692
+ async updateDictItem(
693
+ environment: Environment,
694
+ tenant: string,
695
+ data: UpdateDictItemRequest
696
+ ): Promise<DictApiResponse> {
697
+ try {
698
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
699
+ if (!token) {
700
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
701
+ }
702
+ const client = createAPIClient('liberica' as Service, environment, tenant);
703
+ client.setAuthToken(token);
704
+ const response = await client.getClient().post<DictApiResponse>('/api/enterprise/dict/edit', data);
705
+ return response.data;
706
+ } catch (error) {
707
+ return handleApiErrorDict(error);
708
+ }
709
+ },
710
+
711
+ async deleteDictItem(
712
+ environment: Environment,
713
+ tenant: string,
714
+ dictId: string
715
+ ): Promise<DictApiResponse> {
716
+ try {
717
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
718
+ if (!token) {
719
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
720
+ }
721
+ const client = createAPIClient('liberica' as Service, environment, tenant);
722
+ client.setAuthToken(token);
723
+ const response = await client.getClient().post<DictApiResponse>(
724
+ '/api/enterprise/dict/delete',
725
+ { dictId }
726
+ );
727
+ return response.data;
728
+ } catch (error) {
729
+ return handleApiErrorDict(error);
730
+ }
731
+ },
732
+
520
733
  async listPositions(
521
734
  environment: Environment,
522
735
  tenant: string
@@ -551,7 +764,14 @@ export const apiClient = {
551
764
  } catch (error) {
552
765
  return handleApiError(error) as { success: boolean; data?: PositionListItem[]; error?: { code: string; message: string } };
553
766
  }
554
- },
767
+ },
768
+
769
+ async getOperationCode(
770
+ environment: Environment,
771
+ tenant: string
772
+ ): Promise<{ success: boolean; data?: string; error?: { code: string; message: string } }> {
773
+ return this.getCodeByType(environment, tenant, 'TenantOperationCode');
774
+ },
555
775
 
556
776
  async createUser(
557
777
  environment: Environment,
@@ -929,6 +1149,123 @@ export const apiClient = {
929
1149
  }
930
1150
  },
931
1151
 
1152
+ async listClientContacts(
1153
+ environment: Environment,
1154
+ tenant: string,
1155
+ params: ClientContactQueryParams
1156
+ ): Promise<ClientContactApiResponse> {
1157
+ try {
1158
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1159
+ if (!token) {
1160
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1161
+ }
1162
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1163
+ client.setAuthToken(token);
1164
+ const queryString = new URLSearchParams();
1165
+ if (params.clientId) queryString.append('clientId', params.clientId);
1166
+ const url = `/api/enterprise/sales/clientContact/list${queryString.toString() ? '?' + queryString.toString() : ''}`;
1167
+ const response = await client.getClient().get(url);
1168
+ const responseData = response.data;
1169
+
1170
+ if (responseData && responseData.data && Array.isArray(responseData.data)) {
1171
+ return {
1172
+ success: true,
1173
+ data: {
1174
+ rows: responseData.data,
1175
+ pageNo: 0,
1176
+ pageSize: responseData.data.length,
1177
+ totalRows: responseData.data.length,
1178
+ },
1179
+ };
1180
+ }
1181
+ return responseData as ClientContactApiResponse;
1182
+ } catch (error) {
1183
+ return handleApiErrorClientContact(error);
1184
+ }
1185
+ },
1186
+
1187
+ async getClientContact(
1188
+ environment: Environment,
1189
+ tenant: string,
1190
+ clientContactId: string
1191
+ ): Promise<ClientContactApiResponse> {
1192
+ try {
1193
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1194
+ if (!token) {
1195
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1196
+ }
1197
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1198
+ client.setAuthToken(token);
1199
+ const response = await client.getClient().get<ClientContactApiResponse>(
1200
+ `/api/enterprise/sales/clientContact/detail?clientContactId=${clientContactId}`
1201
+ );
1202
+ return response.data;
1203
+ } catch (error) {
1204
+ return handleApiErrorClientContact(error);
1205
+ }
1206
+ },
1207
+
1208
+ async createClientContact(
1209
+ environment: Environment,
1210
+ tenant: string,
1211
+ data: CreateClientContactRequest
1212
+ ): Promise<ClientContactApiResponse> {
1213
+ try {
1214
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1215
+ if (!token) {
1216
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1217
+ }
1218
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1219
+ client.setAuthToken(token);
1220
+ const response = await client.getClient().post<ClientContactApiResponse>('/api/enterprise/sales/clientContact/add', data);
1221
+ return response.data;
1222
+ } catch (error) {
1223
+ return handleApiErrorClientContact(error);
1224
+ }
1225
+ },
1226
+
1227
+ async updateClientContact(
1228
+ environment: Environment,
1229
+ tenant: string,
1230
+ data: UpdateClientContactRequest
1231
+ ): Promise<ClientContactApiResponse> {
1232
+ try {
1233
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1234
+ if (!token) {
1235
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1236
+ }
1237
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1238
+ client.setAuthToken(token);
1239
+ const response = await client.getClient().post<ClientContactApiResponse>('/api/enterprise/sales/clientContact/edit', data);
1240
+ return response.data;
1241
+ } catch (error) {
1242
+ return handleApiErrorClientContact(error);
1243
+ }
1244
+ },
1245
+
1246
+ async deleteClientContact(
1247
+ environment: Environment,
1248
+ tenant: string,
1249
+ clientContactId: string
1250
+ ): Promise<ClientContactApiResponse> {
1251
+ try {
1252
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1253
+ if (!token) {
1254
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1255
+ }
1256
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1257
+ client.setAuthToken(token);
1258
+ const response = await client.getClient().post<ClientContactApiResponse>(
1259
+ '/api/enterprise/sales/clientContact/delete',
1260
+ { clientContactId }
1261
+ );
1262
+ return response.data;
1263
+ } catch (error) {
1264
+ return handleApiErrorClientContact(error);
1265
+ }
1266
+ },
1267
+
1268
+
932
1269
  async listSuppliers(
933
1270
  environment: Environment,
934
1271
  tenant: string,
@@ -1149,11 +1486,11 @@ export const apiClient = {
1149
1486
  }
1150
1487
  },
1151
1488
 
1152
- async createMaterial(
1489
+ async listSupplierContacts(
1153
1490
  environment: Environment,
1154
1491
  tenant: string,
1155
- data: MaterialRequest
1156
- ): Promise<MaterialApiResponse> {
1492
+ params: SupplierContactQueryParams
1493
+ ): Promise<SupplierContactApiResponse> {
1157
1494
  try {
1158
1495
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1159
1496
  if (!token) {
@@ -1161,19 +1498,34 @@ export const apiClient = {
1161
1498
  }
1162
1499
  const client = createAPIClient('liberica' as Service, environment, tenant);
1163
1500
  client.setAuthToken(token);
1164
- const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/add', data);
1165
- return response.data;
1501
+ const queryString = new URLSearchParams();
1502
+ if (params.supplierId) queryString.append('supplierId', params.supplierId);
1503
+ const url = `/api/enterprise/purchases/supplierContact/list${queryString.toString() ? '?' + queryString.toString() : ''}`;
1504
+ const response = await client.getClient().get(url);
1505
+ const responseData = response.data;
1506
+
1507
+ if (responseData && responseData.data && Array.isArray(responseData.data)) {
1508
+ return {
1509
+ success: true,
1510
+ data: {
1511
+ rows: responseData.data,
1512
+ pageNo: 0,
1513
+ pageSize: responseData.data.length,
1514
+ totalRows: responseData.data.length,
1515
+ },
1516
+ };
1517
+ }
1518
+ return responseData as SupplierContactApiResponse;
1166
1519
  } catch (error) {
1167
- return handleApiErrorMaterial(error);
1520
+ return handleApiErrorSupplierContact(error);
1168
1521
  }
1169
1522
  },
1170
1523
 
1171
- async updateMaterial(
1524
+ async getSupplierContact(
1172
1525
  environment: Environment,
1173
1526
  tenant: string,
1174
- materialId: string,
1175
- data: MaterialRequest
1176
- ): Promise<MaterialApiResponse> {
1527
+ supplierContactId: string
1528
+ ): Promise<SupplierContactApiResponse> {
1177
1529
  try {
1178
1530
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1179
1531
  if (!token) {
@@ -1181,18 +1533,20 @@ export const apiClient = {
1181
1533
  }
1182
1534
  const client = createAPIClient('liberica' as Service, environment, tenant);
1183
1535
  client.setAuthToken(token);
1184
- const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/edit', { materialId, ...data });
1536
+ const response = await client.getClient().get<SupplierContactApiResponse>(
1537
+ `/api/enterprise/purchases/supplierContact/detail?supplierContactId=${supplierContactId}`
1538
+ );
1185
1539
  return response.data;
1186
1540
  } catch (error) {
1187
- return handleApiErrorMaterial(error);
1541
+ return handleApiErrorSupplierContact(error);
1188
1542
  }
1189
1543
  },
1190
1544
 
1191
- async disableMaterial(
1545
+ async createSupplierContact(
1192
1546
  environment: Environment,
1193
1547
  tenant: string,
1194
- materialId: string
1195
- ): Promise<MaterialApiResponse> {
1548
+ data: CreateSupplierContactRequest
1549
+ ): Promise<SupplierContactApiResponse> {
1196
1550
  try {
1197
1551
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1198
1552
  if (!token) {
@@ -1200,21 +1554,18 @@ export const apiClient = {
1200
1554
  }
1201
1555
  const client = createAPIClient('liberica' as Service, environment, tenant);
1202
1556
  client.setAuthToken(token);
1203
- const response = await client.getClient().post<MaterialApiResponse>(
1204
- '/api/enterprise/sales/material/batchDeActive',
1205
- { materialIdList: [materialId] }
1206
- );
1557
+ const response = await client.getClient().post<SupplierContactApiResponse>('/api/enterprise/purchases/supplierContact/add', data);
1207
1558
  return response.data;
1208
1559
  } catch (error) {
1209
- return handleApiErrorMaterial(error);
1560
+ return handleApiErrorSupplierContact(error);
1210
1561
  }
1211
1562
  },
1212
1563
 
1213
- async enableMaterial(
1564
+ async updateSupplierContact(
1214
1565
  environment: Environment,
1215
1566
  tenant: string,
1216
- materialId: string
1217
- ): Promise<MaterialApiResponse> {
1567
+ data: UpdateSupplierContactRequest
1568
+ ): Promise<SupplierContactApiResponse> {
1218
1569
  try {
1219
1570
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1220
1571
  if (!token) {
@@ -1222,21 +1573,18 @@ export const apiClient = {
1222
1573
  }
1223
1574
  const client = createAPIClient('liberica' as Service, environment, tenant);
1224
1575
  client.setAuthToken(token);
1225
- const response = await client.getClient().post<MaterialApiResponse>(
1226
- '/api/enterprise/sales/material/batchActive',
1227
- { materialIdList: [materialId] }
1228
- );
1576
+ const response = await client.getClient().post<SupplierContactApiResponse>('/api/enterprise/purchases/supplierContact/edit', data);
1229
1577
  return response.data;
1230
1578
  } catch (error) {
1231
- return handleApiErrorMaterial(error);
1579
+ return handleApiErrorSupplierContact(error);
1232
1580
  }
1233
1581
  },
1234
1582
 
1235
- async listUoms(
1583
+ async deleteSupplierContact(
1236
1584
  environment: Environment,
1237
1585
  tenant: string,
1238
- params: UomQueryParams
1239
- ): Promise<UomApiResponse> {
1586
+ supplierContactId: string
1587
+ ): Promise<SupplierContactApiResponse> {
1240
1588
  try {
1241
1589
  const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1242
1590
  if (!token) {
@@ -1244,9 +1592,247 @@ export const apiClient = {
1244
1592
  }
1245
1593
  const client = createAPIClient('liberica' as Service, environment, tenant);
1246
1594
  client.setAuthToken(token);
1247
- const queryString = new URLSearchParams();
1248
- if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1249
- if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1595
+ const response = await client.getClient().post<SupplierContactApiResponse>(
1596
+ '/api/enterprise/purchases/supplierContact/delete',
1597
+ { supplierContactId }
1598
+ );
1599
+ return response.data;
1600
+ } catch (error) {
1601
+ return handleApiErrorSupplierContact(error);
1602
+ }
1603
+ },
1604
+
1605
+ async createMaterial(
1606
+ environment: Environment,
1607
+ tenant: string,
1608
+ data: MaterialRequest
1609
+ ): Promise<MaterialApiResponse> {
1610
+ try {
1611
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1612
+ if (!token) {
1613
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1614
+ }
1615
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1616
+ client.setAuthToken(token);
1617
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/add', data);
1618
+ return response.data;
1619
+ } catch (error) {
1620
+ return handleApiErrorMaterial(error);
1621
+ }
1622
+ },
1623
+
1624
+ async updateMaterial(
1625
+ environment: Environment,
1626
+ tenant: string,
1627
+ materialId: string,
1628
+ data: MaterialRequest
1629
+ ): Promise<MaterialApiResponse> {
1630
+ try {
1631
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1632
+ if (!token) {
1633
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1634
+ }
1635
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1636
+ client.setAuthToken(token);
1637
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/edit', { materialId, ...data });
1638
+ return response.data;
1639
+ } catch (error) {
1640
+ return handleApiErrorMaterial(error);
1641
+ }
1642
+ },
1643
+
1644
+ async disableMaterial(
1645
+ environment: Environment,
1646
+ tenant: string,
1647
+ materialId: string
1648
+ ): Promise<MaterialApiResponse> {
1649
+ try {
1650
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1651
+ if (!token) {
1652
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1653
+ }
1654
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1655
+ client.setAuthToken(token);
1656
+ const response = await client.getClient().post<MaterialApiResponse>(
1657
+ '/api/enterprise/sales/material/batchDeActive',
1658
+ { materialIdList: [materialId] }
1659
+ );
1660
+ return response.data;
1661
+ } catch (error) {
1662
+ return handleApiErrorMaterial(error);
1663
+ }
1664
+ },
1665
+
1666
+ async enableMaterial(
1667
+ environment: Environment,
1668
+ tenant: string,
1669
+ materialId: string
1670
+ ): Promise<MaterialApiResponse> {
1671
+ try {
1672
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1673
+ if (!token) {
1674
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1675
+ }
1676
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1677
+ client.setAuthToken(token);
1678
+ const response = await client.getClient().post<MaterialApiResponse>(
1679
+ '/api/enterprise/sales/material/batchActive',
1680
+ { materialIdList: [materialId] }
1681
+ );
1682
+ return response.data;
1683
+ } catch (error) {
1684
+ return handleApiErrorMaterial(error);
1685
+ }
1686
+ },
1687
+
1688
+ async listStock(
1689
+ environment: Environment,
1690
+ tenant: string,
1691
+ params: MasterStockQueryParams
1692
+ ): Promise<MasterStockApiResponse> {
1693
+ try {
1694
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1695
+ if (!token) {
1696
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in...' } };
1697
+ }
1698
+
1699
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1700
+ client.setAuthToken(token);
1701
+
1702
+ const searchParams = new URLSearchParams();
1703
+ Object.entries(params).forEach(([key, value]) => {
1704
+ if (value !== undefined && value !== null) {
1705
+ searchParams.append(key, String(value));
1706
+ }
1707
+ });
1708
+
1709
+ const url = `/api/enterprise/master/stock/page/withWarehouse?${searchParams.toString()}`;
1710
+ const response = await client.getClient().get<MasterStockApiResponse>(url);
1711
+ return response.data;
1712
+ } catch (error) {
1713
+ return handleApiErrorStock(error);
1714
+ }
1715
+ },
1716
+
1717
+ async listStockLedger(
1718
+ environment: Environment,
1719
+ tenant: string,
1720
+ params: StockJourneyQueryParams
1721
+ ): Promise<StockJourneyApiResponse> {
1722
+ try {
1723
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1724
+ if (!token) {
1725
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in...' } };
1726
+ }
1727
+
1728
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1729
+ client.setAuthToken(token);
1730
+
1731
+ const searchParams = new URLSearchParams();
1732
+ Object.entries(params).forEach(([key, value]) => {
1733
+ if (value !== undefined && value !== null) {
1734
+ searchParams.append(key, String(value));
1735
+ }
1736
+ });
1737
+
1738
+ const url = `/api/enterprise/master/stock/journey/page?${searchParams.toString()}`;
1739
+ const response = await client.getClient().get<StockJourneyApiResponse>(url);
1740
+ return response.data;
1741
+ } catch (error) {
1742
+ return handleApiErrorStock(error) as unknown as StockJourneyApiResponse;
1743
+ }
1744
+ },
1745
+
1746
+ async getStockLedgerSummary(
1747
+ environment: Environment,
1748
+ tenant: string,
1749
+ params: StockJourneyQueryParams
1750
+ ): Promise<StockJourneySummaryApiResponse> {
1751
+ try {
1752
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1753
+ if (!token) {
1754
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in...' } };
1755
+ }
1756
+
1757
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1758
+ client.setAuthToken(token);
1759
+
1760
+ const searchParams = new URLSearchParams();
1761
+ Object.entries(params).forEach(([key, value]) => {
1762
+ if (value !== undefined && value !== null) {
1763
+ searchParams.append(key, String(value));
1764
+ }
1765
+ });
1766
+
1767
+ const url = `/api/enterprise/master/stock/journey/page/summary?${searchParams.toString()}`;
1768
+ const response = await client.getClient().get<StockJourneySummaryApiResponse>(url);
1769
+ return response.data;
1770
+ } catch (error) {
1771
+ return handleApiErrorStock(error) as unknown as StockJourneySummaryApiResponse;
1772
+ }
1773
+ },
1774
+
1775
+ async listCalendar(
1776
+ environment: Environment,
1777
+ tenant: string,
1778
+ params: CalendarQueryParams
1779
+ ): Promise<CalendarApiResponse> {
1780
+ try {
1781
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1782
+ if (!token) {
1783
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1784
+ }
1785
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1786
+ client.setAuthToken(token);
1787
+ const queryString = new URLSearchParams();
1788
+ queryString.append('year', params.year.toString());
1789
+ queryString.append('month', params.month.toString());
1790
+ if (params.months) queryString.append('months', params.months.toString());
1791
+ const url = `/api/enterprise/portal/calendar/page?${queryString.toString()}`;
1792
+ const response = await client.getClient().get<CalendarApiResponse>(url);
1793
+ return response.data;
1794
+ } catch (error) {
1795
+ return handleApiError(error) as CalendarApiResponse;
1796
+ }
1797
+ },
1798
+
1799
+ async setCalendar(
1800
+ environment: Environment,
1801
+ tenant: string,
1802
+ request: CalendarSetRequest
1803
+ ): Promise<APIResponse<void>> {
1804
+ try {
1805
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1806
+ if (!token) {
1807
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1808
+ }
1809
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1810
+ client.setAuthToken(token);
1811
+ const response = await client.getClient().post<APIResponse<void>>(
1812
+ '/api/enterprise/portal/calendar/edit',
1813
+ request
1814
+ );
1815
+ return response.data;
1816
+ } catch (error) {
1817
+ return handleApiError(error) as APIResponse<void>;
1818
+ }
1819
+ },
1820
+
1821
+ async listUoms(
1822
+ environment: Environment,
1823
+ tenant: string,
1824
+ params: UomQueryParams
1825
+ ): Promise<UomApiResponse> {
1826
+ try {
1827
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1828
+ if (!token) {
1829
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1830
+ }
1831
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1832
+ client.setAuthToken(token);
1833
+ const queryString = new URLSearchParams();
1834
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1835
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1250
1836
  if (params.status) queryString.append('status', params.status.toString());
1251
1837
  if (params.uomCode) queryString.append('uomCode', params.uomCode);
1252
1838
  if (params.uomName) queryString.append('uomName', params.uomName);
@@ -1879,49 +2465,248 @@ export const apiClient = {
1879
2465
  }
1880
2466
  },
1881
2467
 
1882
- };
2468
+ async listOperations(
2469
+ environment: Environment,
2470
+ tenant: string,
2471
+ params: OperationQueryParams
2472
+ ): Promise<OperationApiResponse> {
2473
+ try {
2474
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2475
+ if (!token) {
2476
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2477
+ }
2478
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2479
+ client.setAuthToken(token);
2480
+ const queryString = new URLSearchParams();
2481
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
2482
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
2483
+ if (params.status) queryString.append('status', params.status.toString());
2484
+ if (params.operationCode) queryString.append('operationCode', params.operationCode);
2485
+ if (params.operationName) queryString.append('operationName', params.operationName);
2486
+ if (params.operationType) queryString.append('operationType', params.operationType);
2487
+ if (params.workCenterCode) queryString.append('workCenterCode', params.workCenterCode);
2488
+ const url = `/api/enterprise/manufacture/operation/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
2489
+ const response = await client.getClient().get<OperationApiResponse>(url);
2490
+ return response.data;
2491
+ } catch (error) {
2492
+ return handleApiErrorOperation(error);
2493
+ }
2494
+ },
1883
2495
 
1884
- function handleApiError(error: unknown): EmployeeApiResponse {
1885
- if (axios.isAxiosError(error)) {
1886
- const axiosError = error as AxiosError<Record<string, unknown>>;
1887
- const responseData = axiosError.response?.data;
1888
- if (responseData) {
1889
- const success = responseData.success as boolean | undefined;
1890
- if (success === false) {
1891
- const code = responseData.code as string | undefined;
1892
- const message = responseData.message as string | undefined;
1893
- const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1894
- if (!errorObj && (code || message)) {
1895
- return {
1896
- success: false,
1897
- error: {
1898
- code: code || 'API_ERROR',
1899
- message: message || 'API error occurred',
1900
- },
1901
- };
1902
- }
2496
+ async getOperationDetail(
2497
+ environment: Environment,
2498
+ tenant: string,
2499
+ idOrCode: string
2500
+ ): Promise<OperationApiResponse> {
2501
+ try {
2502
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2503
+ if (!token) {
2504
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1903
2505
  }
1904
- return responseData as unknown as EmployeeApiResponse;
2506
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2507
+ client.setAuthToken(token);
2508
+ const isNumeric = /^\d+$/.test(idOrCode);
2509
+ const paramName = isNumeric ? 'operationId' : 'operationCode';
2510
+ const response = await client.getClient().get<OperationApiResponse>(
2511
+ `/api/enterprise/manufacture/operation/detail?${paramName}=${encodeURIComponent(idOrCode)}`
2512
+ );
2513
+ return response.data;
2514
+ } catch (error) {
2515
+ return handleApiErrorOperation(error);
1905
2516
  }
1906
- return {
1907
- success: false,
1908
- error: {
1909
- code: 'NETWORK_ERROR',
1910
- message: axiosError.message || 'Network error occurred',
1911
- },
1912
- };
1913
- }
1914
- return {
1915
- success: false,
1916
- error: {
1917
- code: 'UNKNOWN_ERROR',
1918
- message: error instanceof Error ? error.message : 'Unknown error occurred',
1919
- },
1920
- };
1921
- }
2517
+ },
1922
2518
 
1923
- function handleApiErrorClient(error: unknown): ClientApiResponse {
1924
- if (axios.isAxiosError(error)) {
2519
+ async createOperation(
2520
+ environment: Environment,
2521
+ tenant: string,
2522
+ data: OperationCreateRequest
2523
+ ): Promise<OperationApiResponse> {
2524
+ try {
2525
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2526
+ if (!token) {
2527
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2528
+ }
2529
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2530
+ client.setAuthToken(token);
2531
+ const response = await client.getClient().post<OperationApiResponse>('/api/enterprise/manufacture/operation/add', data);
2532
+ return response.data;
2533
+ } catch (error) {
2534
+ return handleApiErrorOperation(error);
2535
+ }
2536
+ },
2537
+
2538
+ async updateOperation(
2539
+ environment: Environment,
2540
+ tenant: string,
2541
+ data: OperationUpdateRequest
2542
+ ): Promise<OperationApiResponse> {
2543
+ try {
2544
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2545
+ if (!token) {
2546
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2547
+ }
2548
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2549
+ client.setAuthToken(token);
2550
+ const response = await client.getClient().post<OperationApiResponse>('/api/enterprise/manufacture/operation/edit', data);
2551
+ return response.data;
2552
+ } catch (error) {
2553
+ return handleApiErrorOperation(error);
2554
+ }
2555
+ },
2556
+
2557
+ async deleteOperation(
2558
+ environment: Environment,
2559
+ tenant: string,
2560
+ operationId: string
2561
+ ): Promise<OperationApiResponse> {
2562
+ try {
2563
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2564
+ if (!token) {
2565
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2566
+ }
2567
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2568
+ client.setAuthToken(token);
2569
+ const response = await client.getClient().post<OperationApiResponse>(
2570
+ '/api/enterprise/manufacture/operation/delete',
2571
+ { operationId }
2572
+ );
2573
+ return response.data;
2574
+ } catch (error) {
2575
+ return handleApiErrorOperation(error);
2576
+ }
2577
+ },
2578
+
2579
+ async batchDeleteOperations(
2580
+ environment: Environment,
2581
+ tenant: string,
2582
+ operationIds: string[]
2583
+ ): Promise<OperationApiResponse> {
2584
+ try {
2585
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2586
+ if (!token) {
2587
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2588
+ }
2589
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2590
+ client.setAuthToken(token);
2591
+ const response = await client.getClient().post<OperationApiResponse>(
2592
+ '/api/enterprise/manufacture/operation/batchDelete',
2593
+ { operationIdList: operationIds }
2594
+ );
2595
+ return response.data;
2596
+ } catch (error) {
2597
+ return handleApiErrorOperation(error);
2598
+ }
2599
+ },
2600
+
2601
+ async copyOperation(
2602
+ environment: Environment,
2603
+ tenant: string,
2604
+ operationId: string
2605
+ ): Promise<OperationApiResponse> {
2606
+ try {
2607
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2608
+ if (!token) {
2609
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2610
+ }
2611
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2612
+ client.setAuthToken(token);
2613
+ const response = await client.getClient().post<OperationApiResponse>(
2614
+ '/api/enterprise/manufacture/operation/copy',
2615
+ { operationId }
2616
+ );
2617
+ return response.data;
2618
+ } catch (error) {
2619
+ return handleApiErrorOperation(error);
2620
+ }
2621
+ },
2622
+
2623
+ async batchActiveOperations(
2624
+ environment: Environment,
2625
+ tenant: string,
2626
+ operationIds: string[]
2627
+ ): Promise<OperationApiResponse> {
2628
+ try {
2629
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2630
+ if (!token) {
2631
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2632
+ }
2633
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2634
+ client.setAuthToken(token);
2635
+ const response = await client.getClient().post<OperationApiResponse>(
2636
+ '/api/enterprise/manufacture/operation/batchActive',
2637
+ { operationIdList: operationIds }
2638
+ );
2639
+ return response.data;
2640
+ } catch (error) {
2641
+ return handleApiErrorOperation(error);
2642
+ }
2643
+ },
2644
+
2645
+ async batchDeActiveOperations(
2646
+ environment: Environment,
2647
+ tenant: string,
2648
+ operationIds: string[]
2649
+ ): Promise<OperationApiResponse> {
2650
+ try {
2651
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
2652
+ if (!token) {
2653
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
2654
+ }
2655
+ const client = createAPIClient('liberica' as Service, environment, tenant);
2656
+ client.setAuthToken(token);
2657
+ const response = await client.getClient().post<OperationApiResponse>(
2658
+ '/api/enterprise/manufacture/operation/batchDeActive',
2659
+ { operationIdList: operationIds }
2660
+ );
2661
+ return response.data;
2662
+ } catch (error) {
2663
+ return handleApiErrorOperation(error);
2664
+ }
2665
+ },
2666
+
2667
+ };
2668
+
2669
+ function handleApiError(error: unknown): EmployeeApiResponse {
2670
+ if (axios.isAxiosError(error)) {
2671
+ const axiosError = error as AxiosError<Record<string, unknown>>;
2672
+ const responseData = axiosError.response?.data;
2673
+ if (responseData) {
2674
+ const success = responseData.success as boolean | undefined;
2675
+ if (success === false) {
2676
+ const code = responseData.code as string | undefined;
2677
+ const message = responseData.message as string | undefined;
2678
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
2679
+ if (!errorObj && (code || message)) {
2680
+ return {
2681
+ success: false,
2682
+ error: {
2683
+ code: code || 'API_ERROR',
2684
+ message: message || 'API error occurred',
2685
+ },
2686
+ };
2687
+ }
2688
+ }
2689
+ return responseData as unknown as EmployeeApiResponse;
2690
+ }
2691
+ return {
2692
+ success: false,
2693
+ error: {
2694
+ code: 'NETWORK_ERROR',
2695
+ message: axiosError.message || 'Network error occurred',
2696
+ },
2697
+ };
2698
+ }
2699
+ return {
2700
+ success: false,
2701
+ error: {
2702
+ code: 'UNKNOWN_ERROR',
2703
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
2704
+ },
2705
+ };
2706
+ }
2707
+
2708
+ function handleApiErrorClient(error: unknown): ClientApiResponse {
2709
+ if (axios.isAxiosError(error)) {
1925
2710
  const axiosError = error as AxiosError<Record<string, unknown>>;
1926
2711
  const responseData = axiosError.response?.data;
1927
2712
  if (responseData) {
@@ -1959,6 +2744,84 @@ function handleApiErrorClient(error: unknown): ClientApiResponse {
1959
2744
  };
1960
2745
  }
1961
2746
 
2747
+ function handleApiErrorClientContact(error: unknown): ClientContactApiResponse {
2748
+ if (axios.isAxiosError(error)) {
2749
+ const axiosError = error as AxiosError<Record<string, unknown>>;
2750
+ const responseData = axiosError.response?.data;
2751
+ if (responseData) {
2752
+ const success = responseData.success as boolean | undefined;
2753
+ if (success === false) {
2754
+ const code = responseData.code as string | undefined;
2755
+ const message = responseData.message as string | undefined;
2756
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
2757
+ if (!errorObj && (code || message)) {
2758
+ return {
2759
+ success: false,
2760
+ error: {
2761
+ code: code || 'API_ERROR',
2762
+ message: message || 'API error occurred',
2763
+ },
2764
+ };
2765
+ }
2766
+ }
2767
+ return responseData as unknown as ClientContactApiResponse;
2768
+ }
2769
+ return {
2770
+ success: false,
2771
+ error: {
2772
+ code: 'NETWORK_ERROR',
2773
+ message: axiosError.message || 'Network error occurred',
2774
+ },
2775
+ };
2776
+ }
2777
+ return {
2778
+ success: false,
2779
+ error: {
2780
+ code: 'UNKNOWN_ERROR',
2781
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
2782
+ },
2783
+ };
2784
+ }
2785
+
2786
+ function handleApiErrorSupplierContact(error: unknown): SupplierContactApiResponse {
2787
+ if (axios.isAxiosError(error)) {
2788
+ const axiosError = error as AxiosError<Record<string, unknown>>;
2789
+ const responseData = axiosError.response?.data;
2790
+ if (responseData) {
2791
+ const success = responseData.success as boolean | undefined;
2792
+ if (success === false) {
2793
+ const code = responseData.code as string | undefined;
2794
+ const message = responseData.message as string | undefined;
2795
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
2796
+ if (!errorObj && (code || message)) {
2797
+ return {
2798
+ success: false,
2799
+ error: {
2800
+ code: code || 'API_ERROR',
2801
+ message: message || 'API error occurred',
2802
+ },
2803
+ };
2804
+ }
2805
+ }
2806
+ return responseData as unknown as SupplierContactApiResponse;
2807
+ }
2808
+ return {
2809
+ success: false,
2810
+ error: {
2811
+ code: 'NETWORK_ERROR',
2812
+ message: axiosError.message || 'Network error occurred',
2813
+ },
2814
+ };
2815
+ }
2816
+ return {
2817
+ success: false,
2818
+ error: {
2819
+ code: 'UNKNOWN_ERROR',
2820
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
2821
+ },
2822
+ };
2823
+ }
2824
+
1962
2825
  function handleApiErrorSupplier(error: unknown): SupplierApiResponse {
1963
2826
  if (axios.isAxiosError(error)) {
1964
2827
  const axiosError = error as AxiosError<Record<string, unknown>>;
@@ -2191,4 +3054,160 @@ function handleApiErrorCurrency(error: unknown): CurrencyApiResponse {
2191
3054
  message: error instanceof Error ? error.message : 'Unknown error occurred',
2192
3055
  },
2193
3056
  };
3057
+ }
3058
+
3059
+ function handleApiErrorDictType(error: unknown): DictTypeApiResponse {
3060
+ if (axios.isAxiosError(error)) {
3061
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3062
+ const responseData = axiosError.response?.data;
3063
+ if (responseData) {
3064
+ const success = responseData.success as boolean | undefined;
3065
+ if (success === false) {
3066
+ const code = responseData.code as string | undefined;
3067
+ const message = responseData.message as string | undefined;
3068
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3069
+ if (!errorObj && (code || message)) {
3070
+ return {
3071
+ success: false,
3072
+ error: {
3073
+ code: code || 'API_ERROR',
3074
+ message: message || 'API error occurred',
3075
+ },
3076
+ };
3077
+ }
3078
+ }
3079
+ return responseData as unknown as DictTypeApiResponse;
3080
+ }
3081
+ return {
3082
+ success: false,
3083
+ error: {
3084
+ code: 'NETWORK_ERROR',
3085
+ message: axiosError.message || 'Network error occurred',
3086
+ },
3087
+ };
3088
+ }
3089
+ return {
3090
+ success: false,
3091
+ error: {
3092
+ code: 'UNKNOWN_ERROR',
3093
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3094
+ },
3095
+ };
3096
+ }
3097
+
3098
+ function handleApiErrorDict(error: unknown): DictApiResponse {
3099
+ if (axios.isAxiosError(error)) {
3100
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3101
+ const responseData = axiosError.response?.data;
3102
+ if (responseData) {
3103
+ const success = responseData.success as boolean | undefined;
3104
+ if (success === false) {
3105
+ const code = responseData.code as string | undefined;
3106
+ const message = responseData.message as string | undefined;
3107
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3108
+ if (!errorObj && (code || message)) {
3109
+ return {
3110
+ success: false,
3111
+ error: {
3112
+ code: code || 'API_ERROR',
3113
+ message: message || 'API error occurred',
3114
+ },
3115
+ };
3116
+ }
3117
+ }
3118
+ return responseData as unknown as DictApiResponse;
3119
+ }
3120
+ return {
3121
+ success: false,
3122
+ error: {
3123
+ code: 'NETWORK_ERROR',
3124
+ message: axiosError.message || 'Network error occurred',
3125
+ },
3126
+ };
3127
+ }
3128
+ return {
3129
+ success: false,
3130
+ error: {
3131
+ code: 'UNKNOWN_ERROR',
3132
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3133
+ },
3134
+ };
3135
+ }
3136
+
3137
+ function handleApiErrorOperation(error: unknown): OperationApiResponse {
3138
+ if (axios.isAxiosError(error)) {
3139
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3140
+ const responseData = axiosError.response?.data;
3141
+ if (responseData) {
3142
+ const success = responseData.success as boolean | undefined;
3143
+ if (success === false) {
3144
+ const code = responseData.code as string | undefined;
3145
+ const message = responseData.message as string | undefined;
3146
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3147
+ if (!errorObj && (code || message)) {
3148
+ return {
3149
+ success: false,
3150
+ error: {
3151
+ code: code || 'API_ERROR',
3152
+ message: message || 'API error occurred',
3153
+ },
3154
+ };
3155
+ }
3156
+ }
3157
+ return responseData as unknown as OperationApiResponse;
3158
+ }
3159
+ return {
3160
+ success: false,
3161
+ error: {
3162
+ code: 'NETWORK_ERROR',
3163
+ message: axiosError.message || 'Network error occurred',
3164
+ },
3165
+ };
3166
+ }
3167
+ return {
3168
+ success: false,
3169
+ error: {
3170
+ code: 'UNKNOWN_ERROR',
3171
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3172
+ },
3173
+ };
3174
+ }
3175
+
3176
+ function handleApiErrorStock(error: unknown): MasterStockApiResponse {
3177
+ if (axios.isAxiosError(error)) {
3178
+ const axiosError = error as AxiosError<Record<string, unknown>>;
3179
+ const responseData = axiosError.response?.data;
3180
+ if (responseData) {
3181
+ const success = responseData.success as boolean | undefined;
3182
+ if (success === false) {
3183
+ const code = responseData.code as string | undefined;
3184
+ const message = responseData.message as string | undefined;
3185
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
3186
+ if (!errorObj && (code || message)) {
3187
+ return {
3188
+ success: false,
3189
+ error: {
3190
+ code: code || 'API_ERROR',
3191
+ message: message || 'API error occurred',
3192
+ },
3193
+ };
3194
+ }
3195
+ }
3196
+ return responseData as unknown as MasterStockApiResponse;
3197
+ }
3198
+ return {
3199
+ success: false,
3200
+ error: {
3201
+ code: 'NETWORK_ERROR',
3202
+ message: axiosError.message || 'Network error occurred',
3203
+ },
3204
+ };
3205
+ }
3206
+ return {
3207
+ success: false,
3208
+ error: {
3209
+ code: 'UNKNOWN_ERROR',
3210
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
3211
+ },
3212
+ };
2194
3213
  }