@newpeak/barista-cli 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/dist/commands/liberica/index.d.ts.map +1 -1
  2. package/dist/commands/liberica/index.js +7 -0
  3. package/dist/commands/liberica/index.js.map +1 -1
  4. package/dist/commands/liberica/teams/index.d.ts +3 -0
  5. package/dist/commands/liberica/teams/index.d.ts.map +1 -0
  6. package/dist/commands/liberica/teams/index.js +15 -0
  7. package/dist/commands/liberica/teams/index.js.map +1 -0
  8. package/dist/commands/liberica/teams/issues/close.d.ts +3 -0
  9. package/dist/commands/liberica/teams/issues/close.d.ts.map +1 -0
  10. package/dist/commands/liberica/teams/issues/close.js +99 -0
  11. package/dist/commands/liberica/teams/issues/close.js.map +1 -0
  12. package/dist/commands/liberica/teams/issues/create.d.ts +3 -0
  13. package/dist/commands/liberica/teams/issues/create.d.ts.map +1 -0
  14. package/dist/commands/liberica/teams/issues/create.js +255 -0
  15. package/dist/commands/liberica/teams/issues/create.js.map +1 -0
  16. package/dist/commands/liberica/teams/issues/delete.d.ts +3 -0
  17. package/dist/commands/liberica/teams/issues/delete.d.ts.map +1 -0
  18. package/dist/commands/liberica/teams/issues/delete.js +55 -0
  19. package/dist/commands/liberica/teams/issues/delete.js.map +1 -0
  20. package/dist/commands/liberica/teams/issues/get.d.ts +3 -0
  21. package/dist/commands/liberica/teams/issues/get.d.ts.map +1 -0
  22. package/dist/commands/liberica/teams/issues/get.js +68 -0
  23. package/dist/commands/liberica/teams/issues/get.js.map +1 -0
  24. package/dist/commands/liberica/teams/issues/index.d.ts +3 -0
  25. package/dist/commands/liberica/teams/issues/index.d.ts.map +1 -0
  26. package/dist/commands/liberica/teams/issues/index.js +19 -0
  27. package/dist/commands/liberica/teams/issues/index.js.map +1 -0
  28. package/dist/commands/liberica/teams/issues/list.d.ts +3 -0
  29. package/dist/commands/liberica/teams/issues/list.d.ts.map +1 -0
  30. package/dist/commands/liberica/teams/issues/list.js +111 -0
  31. package/dist/commands/liberica/teams/issues/list.js.map +1 -0
  32. package/dist/commands/liberica/teams/issues/update.d.ts +3 -0
  33. package/dist/commands/liberica/teams/issues/update.d.ts.map +1 -0
  34. package/dist/commands/liberica/teams/issues/update.js +132 -0
  35. package/dist/commands/liberica/teams/issues/update.js.map +1 -0
  36. package/dist/commands/liberica/teams/projects/create.d.ts +3 -0
  37. package/dist/commands/liberica/teams/projects/create.d.ts.map +1 -0
  38. package/dist/commands/liberica/teams/projects/create.js +164 -0
  39. package/dist/commands/liberica/teams/projects/create.js.map +1 -0
  40. package/dist/commands/liberica/teams/projects/delete.d.ts +3 -0
  41. package/dist/commands/liberica/teams/projects/delete.d.ts.map +1 -0
  42. package/dist/commands/liberica/teams/projects/delete.js +55 -0
  43. package/dist/commands/liberica/teams/projects/delete.js.map +1 -0
  44. package/dist/commands/liberica/teams/projects/get.d.ts +3 -0
  45. package/dist/commands/liberica/teams/projects/get.d.ts.map +1 -0
  46. package/dist/commands/liberica/teams/projects/get.js +77 -0
  47. package/dist/commands/liberica/teams/projects/get.js.map +1 -0
  48. package/dist/commands/liberica/teams/projects/index.d.ts +3 -0
  49. package/dist/commands/liberica/teams/projects/index.d.ts.map +1 -0
  50. package/dist/commands/liberica/teams/projects/index.js +17 -0
  51. package/dist/commands/liberica/teams/projects/index.js.map +1 -0
  52. package/dist/commands/liberica/teams/projects/list.d.ts +3 -0
  53. package/dist/commands/liberica/teams/projects/list.d.ts.map +1 -0
  54. package/dist/commands/liberica/teams/projects/list.js +115 -0
  55. package/dist/commands/liberica/teams/projects/list.js.map +1 -0
  56. package/dist/commands/liberica/teams/projects/update.d.ts +3 -0
  57. package/dist/commands/liberica/teams/projects/update.d.ts.map +1 -0
  58. package/dist/commands/liberica/teams/projects/update.js +115 -0
  59. package/dist/commands/liberica/teams/projects/update.js.map +1 -0
  60. package/dist/commands/liberica/teams/tasks/create.d.ts +3 -0
  61. package/dist/commands/liberica/teams/tasks/create.d.ts.map +1 -0
  62. package/dist/commands/liberica/teams/tasks/create.js +88 -0
  63. package/dist/commands/liberica/teams/tasks/create.js.map +1 -0
  64. package/dist/commands/liberica/teams/tasks/delete.d.ts +3 -0
  65. package/dist/commands/liberica/teams/tasks/delete.d.ts.map +1 -0
  66. package/dist/commands/liberica/teams/tasks/delete.js +73 -0
  67. package/dist/commands/liberica/teams/tasks/delete.js.map +1 -0
  68. package/dist/commands/liberica/teams/tasks/get.d.ts +3 -0
  69. package/dist/commands/liberica/teams/tasks/get.d.ts.map +1 -0
  70. package/dist/commands/liberica/teams/tasks/get.js +51 -0
  71. package/dist/commands/liberica/teams/tasks/get.js.map +1 -0
  72. package/dist/commands/liberica/teams/tasks/index.d.ts +3 -0
  73. package/dist/commands/liberica/teams/tasks/index.d.ts.map +1 -0
  74. package/dist/commands/liberica/teams/tasks/index.js +17 -0
  75. package/dist/commands/liberica/teams/tasks/index.js.map +1 -0
  76. package/dist/commands/liberica/teams/tasks/list.d.ts +3 -0
  77. package/dist/commands/liberica/teams/tasks/list.d.ts.map +1 -0
  78. package/dist/commands/liberica/teams/tasks/list.js +82 -0
  79. package/dist/commands/liberica/teams/tasks/list.js.map +1 -0
  80. package/dist/commands/liberica/teams/tasks/update.d.ts +3 -0
  81. package/dist/commands/liberica/teams/tasks/update.d.ts.map +1 -0
  82. package/dist/commands/liberica/teams/tasks/update.js +114 -0
  83. package/dist/commands/liberica/teams/tasks/update.js.map +1 -0
  84. package/dist/commands/liberica/teams/work-logs/create.d.ts +3 -0
  85. package/dist/commands/liberica/teams/work-logs/create.d.ts.map +1 -0
  86. package/dist/commands/liberica/teams/work-logs/create.js +183 -0
  87. package/dist/commands/liberica/teams/work-logs/create.js.map +1 -0
  88. package/dist/commands/liberica/teams/work-logs/delete.d.ts +3 -0
  89. package/dist/commands/liberica/teams/work-logs/delete.d.ts.map +1 -0
  90. package/dist/commands/liberica/teams/work-logs/delete.js +55 -0
  91. package/dist/commands/liberica/teams/work-logs/delete.js.map +1 -0
  92. package/dist/commands/liberica/teams/work-logs/get.d.ts +3 -0
  93. package/dist/commands/liberica/teams/work-logs/get.d.ts.map +1 -0
  94. package/dist/commands/liberica/teams/work-logs/get.js +77 -0
  95. package/dist/commands/liberica/teams/work-logs/get.js.map +1 -0
  96. package/dist/commands/liberica/teams/work-logs/index.d.ts +3 -0
  97. package/dist/commands/liberica/teams/work-logs/index.d.ts.map +1 -0
  98. package/dist/commands/liberica/teams/work-logs/index.js +17 -0
  99. package/dist/commands/liberica/teams/work-logs/index.js.map +1 -0
  100. package/dist/commands/liberica/teams/work-logs/list.d.ts +3 -0
  101. package/dist/commands/liberica/teams/work-logs/list.d.ts.map +1 -0
  102. package/dist/commands/liberica/teams/work-logs/list.js +109 -0
  103. package/dist/commands/liberica/teams/work-logs/list.js.map +1 -0
  104. package/dist/commands/liberica/teams/work-logs/update.d.ts +3 -0
  105. package/dist/commands/liberica/teams/work-logs/update.d.ts.map +1 -0
  106. package/dist/commands/liberica/teams/work-logs/update.js +105 -0
  107. package/dist/commands/liberica/teams/work-logs/update.js.map +1 -0
  108. package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts +3 -0
  109. package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts.map +1 -0
  110. package/dist/commands/liberica/transfer-in-forms/batch-delete.js +147 -0
  111. package/dist/commands/liberica/transfer-in-forms/batch-delete.js.map +1 -0
  112. package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts +3 -0
  113. package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts.map +1 -0
  114. package/dist/commands/liberica/transfer-in-forms/batch-review.js +146 -0
  115. package/dist/commands/liberica/transfer-in-forms/batch-review.js.map +1 -0
  116. package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts +3 -0
  117. package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts.map +1 -0
  118. package/dist/commands/liberica/transfer-in-forms/batch-unreview.js +147 -0
  119. package/dist/commands/liberica/transfer-in-forms/batch-unreview.js.map +1 -0
  120. package/dist/commands/liberica/transfer-in-forms/create.d.ts +3 -0
  121. package/dist/commands/liberica/transfer-in-forms/create.d.ts.map +1 -0
  122. package/dist/commands/liberica/transfer-in-forms/create.js +168 -0
  123. package/dist/commands/liberica/transfer-in-forms/create.js.map +1 -0
  124. package/dist/commands/liberica/transfer-in-forms/get.d.ts +3 -0
  125. package/dist/commands/liberica/transfer-in-forms/get.d.ts.map +1 -0
  126. package/dist/commands/liberica/transfer-in-forms/get.js +94 -0
  127. package/dist/commands/liberica/transfer-in-forms/get.js.map +1 -0
  128. package/dist/commands/liberica/transfer-in-forms/index.d.ts +3 -0
  129. package/dist/commands/liberica/transfer-in-forms/index.d.ts.map +1 -0
  130. package/dist/commands/liberica/transfer-in-forms/index.js +21 -0
  131. package/dist/commands/liberica/transfer-in-forms/index.js.map +1 -0
  132. package/dist/commands/liberica/transfer-in-forms/list.d.ts +3 -0
  133. package/dist/commands/liberica/transfer-in-forms/list.d.ts.map +1 -0
  134. package/dist/commands/liberica/transfer-in-forms/list.js +94 -0
  135. package/dist/commands/liberica/transfer-in-forms/list.js.map +1 -0
  136. package/dist/commands/liberica/transfer-in-forms/update.d.ts +3 -0
  137. package/dist/commands/liberica/transfer-in-forms/update.d.ts.map +1 -0
  138. package/dist/commands/liberica/transfer-in-forms/update.js +206 -0
  139. package/dist/commands/liberica/transfer-in-forms/update.js.map +1 -0
  140. package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts +3 -0
  141. package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts.map +1 -0
  142. package/dist/commands/liberica/transfer-out-forms/batch-delete.js +80 -0
  143. package/dist/commands/liberica/transfer-out-forms/batch-delete.js.map +1 -0
  144. package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts +3 -0
  145. package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts.map +1 -0
  146. package/dist/commands/liberica/transfer-out-forms/batch-review.js +142 -0
  147. package/dist/commands/liberica/transfer-out-forms/batch-review.js.map +1 -0
  148. package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts +3 -0
  149. package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts.map +1 -0
  150. package/dist/commands/liberica/transfer-out-forms/batch-unreview.js +53 -0
  151. package/dist/commands/liberica/transfer-out-forms/batch-unreview.js.map +1 -0
  152. package/dist/commands/liberica/transfer-out-forms/create.d.ts +3 -0
  153. package/dist/commands/liberica/transfer-out-forms/create.d.ts.map +1 -0
  154. package/dist/commands/liberica/transfer-out-forms/create.js +191 -0
  155. package/dist/commands/liberica/transfer-out-forms/create.js.map +1 -0
  156. package/dist/commands/liberica/transfer-out-forms/get.d.ts +3 -0
  157. package/dist/commands/liberica/transfer-out-forms/get.d.ts.map +1 -0
  158. package/dist/commands/liberica/transfer-out-forms/get.js +87 -0
  159. package/dist/commands/liberica/transfer-out-forms/get.js.map +1 -0
  160. package/dist/commands/liberica/transfer-out-forms/index.d.ts +3 -0
  161. package/dist/commands/liberica/transfer-out-forms/index.d.ts.map +1 -0
  162. package/dist/commands/liberica/transfer-out-forms/index.js +21 -0
  163. package/dist/commands/liberica/transfer-out-forms/index.js.map +1 -0
  164. package/dist/commands/liberica/transfer-out-forms/list.d.ts +3 -0
  165. package/dist/commands/liberica/transfer-out-forms/list.d.ts.map +1 -0
  166. package/dist/commands/liberica/transfer-out-forms/list.js +118 -0
  167. package/dist/commands/liberica/transfer-out-forms/list.js.map +1 -0
  168. package/dist/commands/liberica/transfer-out-forms/update.d.ts +3 -0
  169. package/dist/commands/liberica/transfer-out-forms/update.d.ts.map +1 -0
  170. package/dist/commands/liberica/transfer-out-forms/update.js +197 -0
  171. package/dist/commands/liberica/transfer-out-forms/update.js.map +1 -0
  172. package/dist/core/api/client.d.ts +42 -0
  173. package/dist/core/api/client.d.ts.map +1 -1
  174. package/dist/core/api/client.js +798 -0
  175. package/dist/core/api/client.js.map +1 -1
  176. package/dist/index.js +1 -1
  177. package/dist/index.js.map +1 -1
  178. package/dist/types/index.d.ts +5 -0
  179. package/dist/types/index.d.ts.map +1 -1
  180. package/dist/types/index.js +5 -0
  181. package/dist/types/index.js.map +1 -1
  182. package/dist/types/team-issue.d.ts +87 -0
  183. package/dist/types/team-issue.d.ts.map +1 -0
  184. package/dist/types/team-issue.js +2 -0
  185. package/dist/types/team-issue.js.map +1 -0
  186. package/dist/types/team-project.d.ts +68 -0
  187. package/dist/types/team-project.d.ts.map +1 -0
  188. package/dist/types/team-project.js +2 -0
  189. package/dist/types/team-project.js.map +1 -0
  190. package/dist/types/team-task.d.ts +91 -0
  191. package/dist/types/team-task.d.ts.map +1 -0
  192. package/dist/types/team-task.js +2 -0
  193. package/dist/types/team-task.js.map +1 -0
  194. package/dist/types/team-work-log.d.ts +81 -0
  195. package/dist/types/team-work-log.d.ts.map +1 -0
  196. package/dist/types/team-work-log.js +2 -0
  197. package/dist/types/team-work-log.js.map +1 -0
  198. package/dist/types/transfer-in-form.d.ts +242 -0
  199. package/dist/types/transfer-in-form.d.ts.map +1 -0
  200. package/dist/types/transfer-in-form.js +2 -0
  201. package/dist/types/transfer-in-form.js.map +1 -0
  202. package/dist/types/transfer-out-form.d.ts +252 -0
  203. package/dist/types/transfer-out-form.d.ts.map +1 -0
  204. package/dist/types/transfer-out-form.js +4 -0
  205. package/dist/types/transfer-out-form.js.map +1 -0
  206. package/docs/commands/liberica/teams/issues/close.md +161 -0
  207. package/docs/commands/liberica/teams/issues/create.md +212 -0
  208. package/docs/commands/liberica/teams/issues/delete.md +179 -0
  209. package/docs/commands/liberica/teams/issues/get.md +167 -0
  210. package/docs/commands/liberica/teams/issues/list.md +182 -0
  211. package/docs/commands/liberica/teams/issues/tests-design.md +341 -0
  212. package/docs/commands/liberica/teams/issues/update.md +202 -0
  213. package/docs/commands/liberica/teams/projects/create.md +174 -0
  214. package/docs/commands/liberica/teams/projects/delete.md +180 -0
  215. package/docs/commands/liberica/teams/projects/get.md +150 -0
  216. package/docs/commands/liberica/teams/projects/list.md +179 -0
  217. package/docs/commands/liberica/teams/projects/update.md +175 -0
  218. package/docs/commands/liberica/teams/tasks/create.md +163 -0
  219. package/docs/commands/liberica/teams/tasks/delete.md +109 -0
  220. package/docs/commands/liberica/teams/tasks/get.md +121 -0
  221. package/docs/commands/liberica/teams/tasks/list.md +148 -0
  222. package/docs/commands/liberica/teams/tasks/update.md +158 -0
  223. package/docs/commands/liberica/teams/work-logs/create.md +151 -0
  224. package/docs/commands/liberica/teams/work-logs/delete.md +130 -0
  225. package/docs/commands/liberica/teams/work-logs/get.md +131 -0
  226. package/docs/commands/liberica/teams/work-logs/list.md +153 -0
  227. package/docs/commands/liberica/teams/work-logs/update.md +150 -0
  228. package/docs/commands/liberica/transfer-in-forms/batch-delete.md +157 -0
  229. package/docs/commands/liberica/transfer-in-forms/batch-review.md +157 -0
  230. package/docs/commands/liberica/transfer-in-forms/batch-unreview.md +157 -0
  231. package/docs/commands/liberica/transfer-in-forms/create.md +220 -0
  232. package/docs/commands/liberica/transfer-in-forms/get.md +221 -0
  233. package/docs/commands/liberica/transfer-in-forms/list.md +242 -0
  234. package/docs/commands/liberica/transfer-in-forms/update.md +185 -0
  235. package/docs/commands/liberica/transfer-out-forms/batch-delete.md +187 -0
  236. package/docs/commands/liberica/transfer-out-forms/batch-review.md +157 -0
  237. package/docs/commands/liberica/transfer-out-forms/batch-unreview.md +157 -0
  238. package/docs/commands/liberica/transfer-out-forms/create.md +280 -0
  239. package/docs/commands/liberica/transfer-out-forms/get.md +211 -0
  240. package/docs/commands/liberica/transfer-out-forms/list.md +233 -0
  241. package/docs/commands/liberica/transfer-out-forms/update.md +286 -0
  242. package/package.json +1 -1
  243. package/src/commands/liberica/index.ts +8 -1
  244. package/src/commands/liberica/teams/index.ts +17 -0
  245. package/src/commands/liberica/teams/issues/close.ts +104 -0
  246. package/src/commands/liberica/teams/issues/create.ts +254 -0
  247. package/src/commands/liberica/teams/issues/delete.ts +58 -0
  248. package/src/commands/liberica/teams/issues/get.ts +78 -0
  249. package/src/commands/liberica/teams/issues/index.ts +21 -0
  250. package/src/commands/liberica/teams/issues/list.ts +144 -0
  251. package/src/commands/liberica/teams/issues/update.ts +141 -0
  252. package/src/commands/liberica/teams/projects/create.ts +159 -0
  253. package/src/commands/liberica/teams/projects/delete.ts +58 -0
  254. package/src/commands/liberica/teams/projects/get.ts +87 -0
  255. package/src/commands/liberica/teams/projects/index.ts +19 -0
  256. package/src/commands/liberica/teams/projects/list.ts +147 -0
  257. package/src/commands/liberica/teams/projects/update.ts +117 -0
  258. package/src/commands/liberica/teams/tasks/create.ts +102 -0
  259. package/src/commands/liberica/teams/tasks/delete.ts +92 -0
  260. package/src/commands/liberica/teams/tasks/get.ts +64 -0
  261. package/src/commands/liberica/teams/tasks/index.ts +19 -0
  262. package/src/commands/liberica/teams/tasks/list.ts +102 -0
  263. package/src/commands/liberica/teams/tasks/update.ts +122 -0
  264. package/src/commands/liberica/teams/work-logs/create.ts +204 -0
  265. package/src/commands/liberica/teams/work-logs/delete.ts +58 -0
  266. package/src/commands/liberica/teams/work-logs/get.ts +87 -0
  267. package/src/commands/liberica/teams/work-logs/index.ts +19 -0
  268. package/src/commands/liberica/teams/work-logs/list.ts +141 -0
  269. package/src/commands/liberica/teams/work-logs/update.ts +120 -0
  270. package/src/commands/liberica/transfer-in-forms/batch-delete.ts +152 -0
  271. package/src/commands/liberica/transfer-in-forms/batch-review.ts +151 -0
  272. package/src/commands/liberica/transfer-in-forms/batch-unreview.ts +152 -0
  273. package/src/commands/liberica/transfer-in-forms/create.ts +179 -0
  274. package/src/commands/liberica/transfer-in-forms/get.ts +107 -0
  275. package/src/commands/liberica/transfer-in-forms/index.ts +23 -0
  276. package/src/commands/liberica/transfer-in-forms/list.ts +97 -0
  277. package/src/commands/liberica/transfer-in-forms/update.ts +213 -0
  278. package/src/commands/liberica/transfer-out-forms/batch-delete.ts +83 -0
  279. package/src/commands/liberica/transfer-out-forms/batch-review.ts +148 -0
  280. package/src/commands/liberica/transfer-out-forms/batch-unreview.ts +56 -0
  281. package/src/commands/liberica/transfer-out-forms/create.ts +194 -0
  282. package/src/commands/liberica/transfer-out-forms/get.ts +114 -0
  283. package/src/commands/liberica/transfer-out-forms/index.ts +23 -0
  284. package/src/commands/liberica/transfer-out-forms/list.ts +125 -0
  285. package/src/commands/liberica/transfer-out-forms/update.ts +197 -0
  286. package/src/core/api/client.ts +1218 -190
  287. package/src/index.ts +1 -1
  288. package/src/types/index.ts +5 -0
  289. package/src/types/team-issue.ts +94 -0
  290. package/src/types/team-project.ts +74 -0
  291. package/src/types/team-task.ts +98 -0
  292. package/src/types/team-work-log.ts +87 -0
  293. package/src/types/transfer-in-form.ts +265 -0
  294. package/src/types/transfer-out-form.ts +290 -0
@@ -0,0 +1,233 @@
1
+ # barista liberica transfer-out-forms list
2
+
3
+ Paginated query of transfer-out form line items.
4
+
5
+ ## 2.1 Command Metadata
6
+
7
+ | Field | Value |
8
+ |------|-----|
9
+ | Full Command | `barista liberica transfer-out-forms list` |
10
+ | Description | Paginated query of transfer-out form line items |
11
+ | HTTP Method | GET |
12
+ | Requires Authentication | Yes |
13
+ | Supports Dry-Run | No |
14
+
15
+ ## 2.2 Backend API Reference
16
+
17
+ ### Controller Location
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/stock/
22
+ └── EnterpriseTransferOutFormController.java
23
+ └── page(@GetResource(path = "/page"))
24
+ └── public ResponseData<PageResult<TransferOutFormCompactResponse>> page(
25
+ @RequestHeader("X-TENANT-ID") Long tenantId,
26
+ @ParameterObject TransferOutFormCompactQueryRequest transferOutFormCompactQueryRequest
27
+ )
28
+ ```
29
+
30
+ ### Request DTO Location
31
+ ```
32
+ coffee-liberica-end/
33
+ └── business/liberica-business-stock/stock-api/
34
+ └── src/main/java/com/newpeak/liberica/stock/api/pojo/request/
35
+ └── TransferOutFormCompactQueryRequest.java
36
+ ├── current: Long (page number, 0-based)
37
+ ├── size: Long (page size)
38
+ ├── transferOutFormCode: String
39
+ ├── warehouseCode: String
40
+ ├── materialCode: String
41
+ ├── materialName: String
42
+ ├── stockDate: Date
43
+ ├── stockDateCriteria: DateRange
44
+ ├── transferOutType: String
45
+ ├── reviewFlag: String
46
+ ├── reviewerName: String
47
+ ├── followerName: String
48
+ └── sourceCode: String
49
+ ```
50
+
51
+ ### Response DTO Location
52
+ ```
53
+ coffee-liberica-end/
54
+ └── business/liberica-business-stock/stock-api/
55
+ └── src/main/java/com/newpeak/liberica/stock/api/pojo/response/
56
+ └── TransferOutFormCompactResponse.java
57
+ ├── transferOutFormItemId: Long
58
+ ├── transferOutFormItemCode: String
59
+ ├── transferOutFormId: Long
60
+ ├── transferOutFormCode: String
61
+ ├── warehouseCode: String
62
+ ├── materialCode: String
63
+ ├── materialName: String
64
+ ├── materialType: String
65
+ ├── materialUomCode: String
66
+ ├── formQuantity: BigDecimal
67
+ ├── formMaterialUomCode: String
68
+ ├── stockQuantity: BigDecimal
69
+ ├── unitPrice: BigDecimal
70
+ ├── stockAmount: BigDecimal
71
+ ├── stockDate: Date
72
+ ├── transferOutType: String
73
+ ├── reviewFlag: String
74
+ ├── reviewerName: String
75
+ ├── followerName: String
76
+ ├── createTime: String
77
+ └── updateTime: String
78
+ ```
79
+
80
+ ### Pagination Wrapper
81
+ ```
82
+ cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult
83
+ ├── total: long
84
+ ├── size: long
85
+ ├── current: long
86
+ └── records: List<TransferOutFormCompactResponse>
87
+ ```
88
+
89
+ ## 2.3 CLI Parameter Design
90
+
91
+ ### Command Structure
92
+ ```
93
+ barista liberica transfer-out-forms list [options]
94
+ ```
95
+
96
+ ### Global Options
97
+ | Option | Type | Description |
98
+ |------|------|------|
99
+ | `--env` | string | Target environment (dev\|test\|prod-cn\|prod-jp) |
100
+ | `--tenant` | string | Tenant code |
101
+ | `--json` | boolean | JSON output |
102
+
103
+ ### Command Options
104
+ | Option | Short | Type | Required | Default | Description | Maps to DTO Field |
105
+ |------|--------|------|------|--------|------|-------------|
106
+ | --page | -p | number | No | 1 | Page number (1-based) | current |
107
+ | --size | -s | number | No | 20 | Page size | size |
108
+ | --code | -c | string | No | - | Transfer-out form code | transferOutFormCode |
109
+ | --warehouse-code | -w | string | No | - | Warehouse code | warehouseCode |
110
+ | --material-code | -m | string | No | - | Material code | materialCode |
111
+ | --material-name | -n | string | No | - | Material name (fuzzy) | materialName |
112
+ | --review-flag | -r | string | No | - | Review flag | reviewFlag |
113
+ | --stock-date-start | — | string | No | - | Stock date start (YYYY-MM-DD) | stockDateCriteria.start |
114
+ | --stock-date-end | — | string | No | - | Stock date end (YYYY-MM-DD) | stockDateCriteria.end |
115
+ | --follower-name | -f | string | No | - | Follower name | followerName |
116
+
117
+ ## 2.4 Field Mapping Table
118
+
119
+ | CLI Parameter | DTO Field | Type Conversion | Validation Rule |
120
+ |---------|---------|----------|----------|
121
+ | --page / -p | current | number→Long | >= 1, CLI page 1 maps to API page 0 |
122
+ | --size / -s | size | number→Long | 1-100 |
123
+ | --code / -c | transferOutFormCode | Direct | max=255 |
124
+ | --warehouse-code / -w | warehouseCode | Direct | max=255 |
125
+ | --material-code / -m | materialCode | Direct | max=255 |
126
+ | --material-name / -n | materialName | Direct | fuzzy match |
127
+ | --review-flag / -r | reviewFlag | Direct | enum validation |
128
+ | --stock-date-start | stockDateCriteria.start | string→Date | yyyy-MM-dd |
129
+ | --stock-date-end | stockDateCriteria.end | string→Date | yyyy-MM-dd |
130
+ | --follower-name / -f | followerName | Direct | max=255 |
131
+
132
+ ## 2.5 Error Code Reference
133
+
134
+ ### ExceptionEnum Location
135
+ ```
136
+ coffee-liberica-end/
137
+ └── business/liberica-business-stock/stock-api/
138
+ └── src/main/java/com/newpeak/liberica/stock/api/exception/enums/
139
+ └── TransferOutFormExceptionEnum.java
140
+ ├── TRANSFER_OUT_FORM_NOT_EXIST("01001190001", "租户出库单不存在")
141
+ ```
142
+
143
+ ### Known Error Codes
144
+ | Error Code | Error Message | Trigger Condition |
145
+ |--------|----------|----------|
146
+ | 01001190001 | Transfer-out form does not exist | Detail with non-existent ID |
147
+
148
+ ## 2.6 Permission Check
149
+
150
+ | Check Item | Location | Description |
151
+ |--------|------|------|
152
+ | Annotation | `@GetResource(path = "/page")` | No requiredPermission |
153
+
154
+ ## 2.7 Implementation Notes
155
+
156
+ 1. **Pagination conversion**: CLI page is 1-based, API page is 0-based. `apiPage = cliPage - 1`.
157
+ 2. **No X-TENANT-ID header**: Tenant is extracted from JWT token.
158
+ 3. **BigInteger ID handling**: All ID fields (`transferOutFormId`, `transferOutFormItemId`) must be parsed as `string` in TypeScript to avoid precision loss.
159
+ 4. **Date range**: When only start or only end is provided, send it as a single `stockDate` instead of `stockDateCriteria`.
160
+ 5. **Output format**: Table output with pagination summary at the bottom.
161
+
162
+ ## 2.8 Example Usage
163
+
164
+ ```bash
165
+ # Default pagination
166
+ barista liberica transfer-out-forms list
167
+
168
+ # Page 2 with 50 items per page
169
+ barista liberica transfer-out-forms list --page 2 --size 50
170
+
171
+ # Filter by warehouse and review flag
172
+ barista liberica transfer-out-forms list --warehouse-code WH001 --review-flag reviewed
173
+
174
+ # Filter by date range
175
+ barista liberica transfer-out-forms list --stock-date-start 2025-01-01 --stock-date-end 2025-01-31
176
+
177
+ # JSON output
178
+ barista liberica transfer-out-forms list --page 1 --size 10 --json
179
+ ```
180
+
181
+ ## 2.9 Output Examples
182
+
183
+ ### Table Output
184
+ ```
185
+ ┌─────────────┬─────────────────────┬──────────────┬──────────────────┬───────────────┬─────────────┬──────────────┐
186
+ │ Item ID │ Form Code │ Warehouse │ Material Name │ Stock Qty │ Review Flag │ Follower │
187
+ ├─────────────┼─────────────────────┼──────────────┼──────────────────┼───────────────┼─────────────┼──────────────┤
188
+ │ 1000001 │ TO-2025-0001 │ WH001 │ Coffee Beans A │ 500.00 │ reviewed │ Zhang San │
189
+ │ 1000002 │ TO-2025-0001 │ WH001 │ Coffee Beans B │ 300.00 │ reviewed │ Zhang San │
190
+ │ 1000003 │ TO-2025-0002 │ WH002 │ Filter Paper │ 1000.00 │ pending │ Li Si │
191
+ └─────────────┴─────────────────────┴──────────────┴──────────────────┴───────────────┴─────────────┴──────────────┘
192
+ Total: 3 | Page 1/1 | Size 20
193
+ ```
194
+
195
+ ### JSON Output
196
+ ```json
197
+ {
198
+ "success": true,
199
+ "data": {
200
+ "items": [
201
+ {
202
+ "transferOutFormItemId": "1000001",
203
+ "transferOutFormCode": "TO-2025-0001",
204
+ "warehouseCode": "WH001",
205
+ "materialName": "Coffee Beans A",
206
+ "stockQuantity": "500.00",
207
+ "materialUomCode": "kg",
208
+ "reviewFlag": "reviewed",
209
+ "followerName": "Zhang San",
210
+ "stockDate": "2025-05-15"
211
+ }
212
+ ],
213
+ "pagination": {
214
+ "page": 1,
215
+ "size": 20,
216
+ "total": 3
217
+ }
218
+ }
219
+ }
220
+ ```
221
+
222
+ ## 2.10 API Path
223
+
224
+ ```
225
+ GET /api/enterprise/stock/transferOut/page?pageNo=0&pageSize=20
226
+ ```
227
+
228
+ **Headers:**
229
+ ```
230
+ Authorization: <token> (No "Bearer " prefix)
231
+ ```
232
+
233
+ **Note**: Do NOT include `X-TENANT-ID` header. Tenant is extracted from JWT token.
@@ -0,0 +1,286 @@
1
+ # barista liberica transfer-out-forms update
2
+
3
+ Update an existing transfer-out form.
4
+
5
+ ## 2.1 Command Metadata
6
+
7
+ | Field | Value |
8
+ |------|-----|
9
+ | Full Command | `barista liberica transfer-out-forms update <id>` |
10
+ | Description | Update an existing transfer-out form |
11
+ | HTTP Method | POST |
12
+ | Requires Authentication | Yes |
13
+ | Supports Dry-Run | Yes |
14
+
15
+ ## 2.2 Backend API Reference
16
+
17
+ ### Controller Location
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/stock/
22
+ └── EnterpriseTransferOutFormController.java
23
+ └── edit(@PostResource(path = "/edit", requiredPermission = true, requirePermissionCode = TransferOutFormPermissionConstants.EDIT_TRANSFER_OUT_FORM))
24
+ └── public ResponseData<? extends TransferOutFormResponse> edit(
25
+ @RequestHeader("X-TENANT-ID") Long tenantId,
26
+ @RequestBody @Validated(BaseRequest.edit.class) TransferOutFormRequest transferOutFormRequest
27
+ )
28
+ ```
29
+
30
+ ### Request DTO Location
31
+ ```
32
+ coffee-liberica-end/
33
+ └── business/liberica-business-stock/stock-api/
34
+ └── src/main/java/com/newpeak/liberica/stock/api/pojo/request/
35
+ └── TransferOutFormRequest.java
36
+ ├── transferOutFormId: Long (@NotNull on edit)
37
+ ├── warehouseCode: String (@NotBlank on edit, max=255)
38
+ ├── stockDate: Date (@NotNull on edit)
39
+ ├── transferOutType: String (@NotBlank on edit, max=255)
40
+ ├── transferOutFormCode: String (max=255)
41
+ ├── follower: String (max=255)
42
+ ├── followerName: String (max=255)
43
+ ├── remark: String (max=255)
44
+ ├── itemList: List<TransferOutFormItemRequest> (@NotEmpty on edit)
45
+ └── lotList: List<TransferOutFormLotRequest>
46
+ ```
47
+
48
+ **TransferOutFormItemRequest (required fields on edit):**
49
+ ```
50
+ ├── materialCode: String (@NotBlank, max=255)
51
+ ├── materialUomCode: String (@NotBlank, max=255)
52
+ ├── formQuantity: BigDecimal (@NotNull)
53
+ ├── formMaterialUomCode: String (@NotBlank, max=255)
54
+ ├── stockQuantity: BigDecimal (@NotNull)
55
+ ├── transferOutFormItemId: Long (required for existing items)
56
+ ├── sourceType: String (max=255)
57
+ ├── sourceCode: String (max=255)
58
+ ├── materialName: String (max=255)
59
+ ├── materialType: String (max=255)
60
+ ├── materialCharacteristicCode: String (max=255)
61
+ ├── color: String (max=255)
62
+ ├── longX: BigDecimal
63
+ ├── wideY: BigDecimal
64
+ ├── highZ: BigDecimal
65
+ ├── lotNoList: List<String>
66
+ ├── unitPrice: BigDecimal
67
+ ├── localCurrency: String (max=255)
68
+ ├── stockAmount: BigDecimal
69
+ └── remark: String (max=255)
70
+ ```
71
+
72
+ **TransferOutFormLotRequest (required fields on edit):**
73
+ ```
74
+ ├── transferOutFormLotId: Long (required for existing lots)
75
+ ├── warehouseCode: String (@NotBlank, max=255)
76
+ ├── materialCode: String (@NotBlank, max=255)
77
+ ├── materialUomCode: String (@NotBlank, max=255)
78
+ ├── lotNo: String (max=255)
79
+ ├── stockQuantity: BigDecimal (@NotNull)
80
+ ├── materialName: String (max=255)
81
+ ├── materialType: String (max=255)
82
+ ├── materialCharacteristicCode: String (max=255)
83
+ ├── color: String (max=255)
84
+ ├── longX: BigDecimal
85
+ ├── wideY: BigDecimal
86
+ ├── highZ: BigDecimal
87
+ ├── unitPrice: BigDecimal
88
+ ├── localCurrency: String (max=255)
89
+ ├── stockAmount: BigDecimal
90
+ └── remark: String (max=255)
91
+ ```
92
+
93
+ ### Response DTO Location
94
+ ```
95
+ coffee-liberica-end/
96
+ └── business/liberica-business-stock/stock-api/
97
+ └── src/main/java/com/newpeak/liberica/stock/api/pojo/response/
98
+ └── TransferOutFormResponse.java
99
+ ├── transferOutFormId: Long
100
+ ├── transferOutFormCode: String
101
+ ├── warehouseCode: String
102
+ ├── stockDate: Date
103
+ ├── transferOutType: String
104
+ ├── follower: String
105
+ ├── followerName: String
106
+ ├── reviewFlag: String
107
+ ├── reviewer: String
108
+ ├── reviewerName: String
109
+ ├── reviewTime: Instant
110
+ ├── remark: String
111
+ ├── enough: boolean
112
+ ├── itemList: List<TransferOutFormItemResponse>
113
+ ├── lotList: List<TransferOutFormLotResponse>
114
+ ├── createTime: String
115
+ └── updateTime: String
116
+ ```
117
+
118
+ ## 2.3 CLI Parameter Design
119
+
120
+ ### Command Structure
121
+ ```
122
+ barista liberica transfer-out-forms update <id> [options]
123
+ ```
124
+
125
+ ### Positional Arguments
126
+ | Argument | Type | Required | Description |
127
+ |------|------|------|------|
128
+ | id | string | Yes | Transfer-out form ID (transferOutFormId) |
129
+
130
+ ### Global Options
131
+ | Option | Type | Description |
132
+ |------|------|------|
133
+ | `--env` | string | Target environment (dev\|test\|prod-cn\|prod-jp) |
134
+ | `--tenant` | string | Tenant code |
135
+ | `--dry-run` | boolean | Preview mode (no actual API call) |
136
+ | `--json` | boolean | JSON output |
137
+
138
+ ### Command Options
139
+ | Option | Short | Type | Required | Default | Description | Maps to DTO Field |
140
+ |------|--------|------|------|--------|------|-------------|
141
+ | --warehouse-code | -w | string | Yes | - | Warehouse code | warehouseCode |
142
+ | --stock-date | -d | string | Yes | - | Stock date (YYYY-MM-DD) | stockDate |
143
+ | --transfer-out-type | -t | string | Yes | - | Transfer-out type | transferOutType |
144
+ | --code | -c | string | No | - | Transfer-out form code | transferOutFormCode |
145
+ | --follower | -f | string | No | - | Follower code | follower |
146
+ | --follower-name | -n | string | No | - | Follower name | followerName |
147
+ | --remark | -r | string | No | - | Remark | remark |
148
+ | --items | -i | string | Yes | - | Item list as JSON array | itemList |
149
+ | --lots | -l | string | No | - | Lot list as JSON array | lotList |
150
+
151
+ ## 2.4 Field Mapping Table
152
+
153
+ | CLI Parameter | DTO Field | Type Conversion | Validation Rule |
154
+ |---------|---------|----------|----------|
155
+ | <id> (positional) | transferOutFormId | string→Long | @NotNull |
156
+ | --warehouse-code / -w | warehouseCode | Direct | @NotBlank, max=255 |
157
+ | --stock-date / -d | stockDate | string→Date | @NotNull, yyyy-MM-dd |
158
+ | --transfer-out-type / -t | transferOutType | Direct | @NotBlank, max=255 |
159
+ | --code / -c | transferOutFormCode | Direct | max=255 |
160
+ | --follower / -f | follower | Direct | max=255 |
161
+ | --follower-name / -n | followerName | Direct | max=255 |
162
+ | --remark / -r | remark | Direct | max=255 |
163
+ | --items / -i | itemList | string→JSON Array | @NotEmpty |
164
+ | --lots / -l | lotList | string→JSON Array | - |
165
+
166
+ ## 2.5 Error Code Reference
167
+
168
+ ### ExceptionEnum Location
169
+ ```
170
+ coffee-liberica-end/
171
+ └── business/liberica-business-stock/stock-api/
172
+ └── src/main/java/com/newpeak/liberica/stock/api/exception/enums/
173
+ └── TransferOutFormExceptionEnum.java
174
+ ├── TRANSFER_OUT_FORM_NOT_EXIST("01001190001", "租户出库单不存在")
175
+ ```
176
+
177
+ ### Known Error Codes
178
+ | Error Code | Error Message | Trigger Condition |
179
+ |--------|----------|----------|
180
+ | 01001190001 | Transfer-out form does not exist | Update with non-existent ID |
181
+
182
+ ## 2.6 Permission Check
183
+
184
+ | Check Item | Location | Description |
185
+ |--------|------|------|
186
+ | PermissionConstants | `TransferOutFormPermissionConstants.EDIT_TRANSFER_OUT_FORM` | Controller layer `@PostResource(requirePermissionCode = "EDIT_TRANSFER_OUT_FORM")` |
187
+
188
+ ## 2.7 Implementation Notes
189
+
190
+ 1. **Required fields**: `id` (positional), `--warehouse-code`, `--stock-date`, `--transfer-out-type`, and `--items` must be provided.
191
+ 2. **Item ID handling**: Existing items must include `transferOutFormItemId` in the JSON array. New items should omit this field.
192
+ 3. **Lot ID handling**: Existing lots must include `transferOutFormLotId` in the JSON array. New lots should omit this field.
193
+ 4. **Dry-run support**: Use `--dry-run` to preview the request body without calling the API.
194
+ 5. **BigInteger ID handling**: `transferOutFormId` and nested IDs must be parsed as `string` in TypeScript to avoid precision loss.
195
+ 6. **Pre-population**: For CLI convenience, consider fetching the current form detail first and merging unchanged fields with the provided options.
196
+
197
+ ## 2.8 Example Usage
198
+
199
+ ```bash
200
+ # Update with minimal required fields
201
+ barista liberica transfer-out-forms update 123456789 \
202
+ --warehouse-code WH001 \
203
+ --stock-date 2025-05-15 \
204
+ --transfer-out-type adjustment \
205
+ --items '[{"transferOutFormItemId":"1000001","materialCode":"MAT001","materialUomCode":"kg","formQuantity":600,"formMaterialUomCode":"kg","stockQuantity":600}]'
206
+
207
+ # Update with all options
208
+ barista liberica transfer-out-forms update 123456789 \
209
+ --warehouse-code WH001 \
210
+ --stock-date 2025-05-15 \
211
+ --transfer-out-type adjustment \
212
+ --code "TO-2025-0001" \
213
+ --follower "EMP001" \
214
+ --follower-name "Zhang San" \
215
+ --remark "Updated adjustment" \
216
+ --items '[{"transferOutFormItemId":"1000001","materialCode":"MAT001","materialName":"Coffee Beans A","materialUomCode":"kg","formQuantity":600,"formMaterialUomCode":"kg","stockQuantity":600,"unitPrice":50,"stockAmount":30000}]' \
217
+ --lots '[{"transferOutFormLotId":"2000001","warehouseCode":"WH001","materialCode":"MAT001","materialUomCode":"kg","lotNo":"LOT202501","stockQuantity":600}]'
218
+
219
+ # Dry-run preview
220
+ barista liberica transfer-out-forms update 123456789 \
221
+ --warehouse-code WH001 \
222
+ --stock-date 2025-05-15 \
223
+ --transfer-out-type adjustment \
224
+ --items '[...]' \
225
+ --dry-run
226
+
227
+ # JSON output
228
+ barista liberica transfer-out-forms update 123456789 \
229
+ --warehouse-code WH001 \
230
+ --stock-date 2025-05-15 \
231
+ --transfer-out-type adjustment \
232
+ --items '[...]' \
233
+ --json
234
+ ```
235
+
236
+ ## 2.9 Request Body Structure
237
+
238
+ ```json
239
+ {
240
+ "transferOutFormId": 123456789,
241
+ "warehouseCode": "WH001",
242
+ "stockDate": "2025-05-15",
243
+ "transferOutType": "adjustment",
244
+ "transferOutFormCode": "TO-2025-0001",
245
+ "follower": "EMP001",
246
+ "followerName": "Zhang San",
247
+ "remark": "Updated adjustment",
248
+ "itemList": [
249
+ {
250
+ "transferOutFormItemId": 1000001,
251
+ "materialCode": "MAT001",
252
+ "materialName": "Coffee Beans A",
253
+ "materialUomCode": "kg",
254
+ "formQuantity": 600,
255
+ "formMaterialUomCode": "kg",
256
+ "stockQuantity": 600,
257
+ "unitPrice": 50,
258
+ "stockAmount": 30000
259
+ }
260
+ ],
261
+ "lotList": [
262
+ {
263
+ "transferOutFormLotId": 2000001,
264
+ "warehouseCode": "WH001",
265
+ "materialCode": "MAT001",
266
+ "materialUomCode": "kg",
267
+ "lotNo": "LOT202501",
268
+ "stockQuantity": 600
269
+ }
270
+ ]
271
+ }
272
+ ```
273
+
274
+ ## 2.10 API Path
275
+
276
+ ```
277
+ POST /api/enterprise/stock/transferOut/edit
278
+ ```
279
+
280
+ **Headers:**
281
+ ```
282
+ Authorization: <token> (No "Bearer " prefix)
283
+ Content-Type: application/json
284
+ ```
285
+
286
+ **Note**: Do NOT include `X-TENANT-ID` header. Tenant is extracted from JWT token.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newpeak/barista-cli",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "AI Tools CLI for Liberica and Arabica services",
5
5
  "type": "module",
6
6
  "bin": "./bin/barista",
@@ -21,6 +21,9 @@ import { createCalendarCommand } from './calendar/index.js';
21
21
  import { createClientContactsCommand } from './client-contacts/index.js';
22
22
  import { createSupplierContactsCommand } from './supplier-contacts/index.js';
23
23
  import { createMouldCommand } from './mould/index.js';
24
+ import { createTeamsCommand } from './teams/index.js';
25
+ import { createTransferInFormsCommand } from './transfer-in-forms/index.js';
26
+ import { createTransferOutFormsCommand } from './transfer-out-forms/index.js';
24
27
 
25
28
  export function createLibericaCommand(): Command {
26
29
  const libericaCommand = new Command('liberica');
@@ -47,6 +50,9 @@ export function createLibericaCommand(): Command {
47
50
  libericaCommand.addCommand(createClientContactsCommand());
48
51
  libericaCommand.addCommand(createSupplierContactsCommand());
49
52
  libericaCommand.addCommand(createMouldCommand());
53
+ libericaCommand.addCommand(createTeamsCommand());
54
+ libericaCommand.addCommand(createTransferInFormsCommand());
55
+ libericaCommand.addCommand(createTransferOutFormsCommand());
50
56
 
51
57
  libericaCommand.action(() => {
52
58
  console.log(chalk.bold('\n☕ Liberica Commands\n'));
@@ -67,8 +73,9 @@ export function createLibericaCommand(): Command {
67
73
  console.log(' Use "barista liberica dicts <command>" for dictionary item management');
68
74
  console.log(' Use "barista liberica operations <command>" for operation management');
69
75
  console.log(' Use "barista liberica stock <command>" for stock management');
76
+ console.log(' Use "barista liberica teams <command>" for teams and issue management');
70
77
  console.log('\n Run "barista liberica <command> --help" for more details\n');
71
78
  });
72
79
 
73
80
  return libericaCommand;
74
- }
81
+ }
@@ -0,0 +1,17 @@
1
+ import { Command } from 'commander';
2
+ import { createTeamIssuesCommand } from './issues/index.js';
3
+ import { createTeamProjectsCommand } from './projects/index.js';
4
+ import { createTeamTasksCommand } from './tasks/index.js';
5
+ import { createTeamWorkLogsCommand } from './work-logs/index.js';
6
+
7
+ export function createTeamsCommand(): Command {
8
+ const teamsCommand = new Command('teams');
9
+ teamsCommand.description('Manage teams and issues');
10
+
11
+ teamsCommand.addCommand(createTeamIssuesCommand());
12
+ teamsCommand.addCommand(createTeamProjectsCommand());
13
+ teamsCommand.addCommand(createTeamTasksCommand());
14
+ teamsCommand.addCommand(createTeamWorkLogsCommand());
15
+
16
+ return teamsCommand;
17
+ }
@@ -0,0 +1,104 @@
1
+ import { Command, Option } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+ import { Environment } from '../../../../types/index.js';
6
+ import { UpdateTeamIssueRequest } from '../../../../types/team-issue.js';
7
+
8
+ export function createTeamIssueCloseCommand(): Command {
9
+ const closeCommand = new Command('close');
10
+ closeCommand
11
+ .description('Close a team issue (sets status to CLOSED)')
12
+ .argument('<issue-id>', 'Issue ID')
13
+ .addOption(new Option('--env <string>').hideHelp())
14
+ .addOption(new Option('--tenant <string>').hideHelp())
15
+ .option('--json', 'Output as JSON');
16
+
17
+ closeCommand.action(async (issueId: string, options: Record<string, unknown>) => {
18
+ const context = configManager.getCurrentContext();
19
+ const environment = context.environment as Environment;
20
+ const tenant = context.tenant;
21
+
22
+ if (!issueId || issueId.trim() === '') {
23
+ console.error(chalk.red('\n✗ Issue ID is required\n'));
24
+ process.exit(1);
25
+ }
26
+
27
+ // Fetch the issue first to get all required fields
28
+ let existingIssue: Record<string, unknown> | null = null;
29
+ try {
30
+ const getResponse = await apiClient.getTeamIssue(environment, tenant, issueId);
31
+ if (!getResponse.success || !getResponse.data) {
32
+ if (options.json) {
33
+ console.log(JSON.stringify({ success: false, error: getResponse.error }, null, 2));
34
+ } else {
35
+ console.error(chalk.red(`\n✗ Issue not found: ${getResponse.error?.message || 'Unknown error'}\n`));
36
+ }
37
+ process.exit(1);
38
+ }
39
+ existingIssue = getResponse.data as unknown as Record<string, unknown>;
40
+ } catch (error) {
41
+ if (options.json) {
42
+ console.log(JSON.stringify({ success: false, error: { message: error instanceof Error ? error.message : 'Unknown error' } }, null, 2));
43
+ } else {
44
+ console.error(chalk.red(`\n✗ Error fetching issue: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
45
+ }
46
+ process.exit(1);
47
+ }
48
+
49
+ const request: UpdateTeamIssueRequest = {
50
+ teamIssueId: issueId,
51
+ issueTitle: existingIssue.issueTitle as string,
52
+ issueDesc: existingIssue.issueDesc as string,
53
+ issueType: existingIssue.issueType as 'BUG' | 'REQUIREMENT' | 'QUESTION',
54
+ projectId: existingIssue.projectId as string,
55
+ projectCode: existingIssue.projectCode as string,
56
+ projectName: existingIssue.projectName as string,
57
+ reporterName: existingIssue.reporterName as string,
58
+ reporterEmail: existingIssue.reporterEmail as string,
59
+ priority: existingIssue.priority as 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT',
60
+ teamIssueStatus: 'CLOSED',
61
+ assignTo: existingIssue.assignTo as string[],
62
+ tags: existingIssue.tags as string[] | undefined,
63
+ };
64
+
65
+ try {
66
+ const response = await apiClient.updateTeamIssue(environment, tenant, request);
67
+
68
+ if (response.success) {
69
+ if (options.json) {
70
+ console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
71
+ } else {
72
+ console.log(chalk.green(`\n✓ Issue ${issueId} closed successfully\n`));
73
+ }
74
+ } else {
75
+ if (options.json) {
76
+ console.log(JSON.stringify({ success: false, error: response.error }, null, 2));
77
+ } else {
78
+ console.error(chalk.red(`\n✗ Close failed: ${response.error?.message || 'Unknown error'}`));
79
+ if (response.error?.code) {
80
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
81
+ }
82
+ console.error();
83
+ }
84
+ process.exit(1);
85
+ }
86
+ } catch (error) {
87
+ if (options.json) {
88
+ console.log(
89
+ JSON.stringify({
90
+ success: false,
91
+ error: { message: error instanceof Error ? error.message : 'Unknown error' },
92
+ })
93
+ );
94
+ } else {
95
+ console.error(
96
+ chalk.red(`\n✗ Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`)
97
+ );
98
+ }
99
+ process.exit(1);
100
+ }
101
+ });
102
+
103
+ return closeCommand;
104
+ }