@taxdao/fintax-mcp 0.2.0

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 (341) hide show
  1. package/README.md +220 -0
  2. package/dist/app/create-server.d.ts +18 -0
  3. package/dist/app/create-server.js +80 -0
  4. package/dist/app/create-server.js.map +1 -0
  5. package/dist/app/register-tools.d.ts +4 -0
  6. package/dist/app/register-tools.js +18 -0
  7. package/dist/app/register-tools.js.map +1 -0
  8. package/dist/audit/audit-context.d.ts +38 -0
  9. package/dist/audit/audit-context.js +167 -0
  10. package/dist/audit/audit-context.js.map +1 -0
  11. package/dist/audit/audit-sink.d.ts +20 -0
  12. package/dist/audit/audit-sink.js +6 -0
  13. package/dist/audit/audit-sink.js.map +1 -0
  14. package/dist/audit/file-audit-sink.d.ts +6 -0
  15. package/dist/audit/file-audit-sink.js +18 -0
  16. package/dist/audit/file-audit-sink.js.map +1 -0
  17. package/dist/auth/auth-session.d.ts +63 -0
  18. package/dist/auth/auth-session.js +226 -0
  19. package/dist/auth/auth-session.js.map +1 -0
  20. package/dist/auth/credentials.d.ts +6 -0
  21. package/dist/auth/credentials.js +12 -0
  22. package/dist/auth/credentials.js.map +1 -0
  23. package/dist/auth/org-token-provider.d.ts +15 -0
  24. package/dist/auth/org-token-provider.js +62 -0
  25. package/dist/auth/org-token-provider.js.map +1 -0
  26. package/dist/capabilities/capability.d.ts +100 -0
  27. package/dist/capabilities/capability.js +26 -0
  28. package/dist/capabilities/capability.js.map +1 -0
  29. package/dist/capabilities/create-capabilities.d.ts +2 -0
  30. package/dist/capabilities/create-capabilities.js +37 -0
  31. package/dist/capabilities/create-capabilities.js.map +1 -0
  32. package/dist/capabilities/define-capability.d.ts +39 -0
  33. package/dist/capabilities/define-capability.js +64 -0
  34. package/dist/capabilities/define-capability.js.map +1 -0
  35. package/dist/capabilities/definitions/accounting-balances.d.ts +4 -0
  36. package/dist/capabilities/definitions/accounting-balances.js +98 -0
  37. package/dist/capabilities/definitions/accounting-balances.js.map +1 -0
  38. package/dist/capabilities/definitions/accounting-context.d.ts +2 -0
  39. package/dist/capabilities/definitions/accounting-context.js +17 -0
  40. package/dist/capabilities/definitions/accounting-context.js.map +1 -0
  41. package/dist/capabilities/definitions/assets.d.ts +2 -0
  42. package/dist/capabilities/definitions/assets.js +367 -0
  43. package/dist/capabilities/definitions/assets.js.map +1 -0
  44. package/dist/capabilities/definitions/business-documents.d.ts +9 -0
  45. package/dist/capabilities/definitions/business-documents.js +386 -0
  46. package/dist/capabilities/definitions/business-documents.js.map +1 -0
  47. package/dist/capabilities/definitions/dashboard.d.ts +2 -0
  48. package/dist/capabilities/definitions/dashboard.js +153 -0
  49. package/dist/capabilities/definitions/dashboard.js.map +1 -0
  50. package/dist/capabilities/definitions/extended-operation-contracts.d.ts +597 -0
  51. package/dist/capabilities/definitions/extended-operation-contracts.js +1180 -0
  52. package/dist/capabilities/definitions/extended-operation-contracts.js.map +1 -0
  53. package/dist/capabilities/definitions/extended-operations.d.ts +2 -0
  54. package/dist/capabilities/definitions/extended-operations.js +699 -0
  55. package/dist/capabilities/definitions/extended-operations.js.map +1 -0
  56. package/dist/capabilities/definitions/financial-reports.d.ts +2 -0
  57. package/dist/capabilities/definitions/financial-reports.js +100 -0
  58. package/dist/capabilities/definitions/financial-reports.js.map +1 -0
  59. package/dist/capabilities/definitions/fnd-import.d.ts +34 -0
  60. package/dist/capabilities/definitions/fnd-import.js +282 -0
  61. package/dist/capabilities/definitions/fnd-import.js.map +1 -0
  62. package/dist/capabilities/definitions/fund-accounts.d.ts +2 -0
  63. package/dist/capabilities/definitions/fund-accounts.js +188 -0
  64. package/dist/capabilities/definitions/fund-accounts.js.map +1 -0
  65. package/dist/capabilities/definitions/fund-balances.d.ts +2 -0
  66. package/dist/capabilities/definitions/fund-balances.js +84 -0
  67. package/dist/capabilities/definitions/fund-balances.js.map +1 -0
  68. package/dist/capabilities/definitions/journals.d.ts +10 -0
  69. package/dist/capabilities/definitions/journals.js +224 -0
  70. package/dist/capabilities/definitions/journals.js.map +1 -0
  71. package/dist/capabilities/definitions/master-data.d.ts +2 -0
  72. package/dist/capabilities/definitions/master-data.js +451 -0
  73. package/dist/capabilities/definitions/master-data.js.map +1 -0
  74. package/dist/capabilities/definitions/pnl.d.ts +2 -0
  75. package/dist/capabilities/definitions/pnl.js +139 -0
  76. package/dist/capabilities/definitions/pnl.js.map +1 -0
  77. package/dist/capabilities/definitions/reference-data.d.ts +2 -0
  78. package/dist/capabilities/definitions/reference-data.js +169 -0
  79. package/dist/capabilities/definitions/reference-data.js.map +1 -0
  80. package/dist/capabilities/definitions/transaction-drafts.d.ts +2 -0
  81. package/dist/capabilities/definitions/transaction-drafts.js +157 -0
  82. package/dist/capabilities/definitions/transaction-drafts.js.map +1 -0
  83. package/dist/capabilities/definitions/transactions.d.ts +168 -0
  84. package/dist/capabilities/definitions/transactions.js +79 -0
  85. package/dist/capabilities/definitions/transactions.js.map +1 -0
  86. package/dist/capabilities/executor.d.ts +19 -0
  87. package/dist/capabilities/executor.js +134 -0
  88. package/dist/capabilities/executor.js.map +1 -0
  89. package/dist/capabilities/registry.d.ts +7 -0
  90. package/dist/capabilities/registry.js +51 -0
  91. package/dist/capabilities/registry.js.map +1 -0
  92. package/dist/clients/base-client.d.ts +5 -0
  93. package/dist/clients/base-client.js +13 -0
  94. package/dist/clients/base-client.js.map +1 -0
  95. package/dist/clients/http-client.d.ts +29 -0
  96. package/dist/clients/http-client.js +167 -0
  97. package/dist/clients/http-client.js.map +1 -0
  98. package/dist/clients/suite-client.d.ts +5 -0
  99. package/dist/clients/suite-client.js +5 -0
  100. package/dist/clients/suite-client.js.map +1 -0
  101. package/dist/concurrency/lock-manager.d.ts +4 -0
  102. package/dist/concurrency/lock-manager.js +23 -0
  103. package/dist/concurrency/lock-manager.js.map +1 -0
  104. package/dist/config/load-config.d.ts +2 -0
  105. package/dist/config/load-config.js +18 -0
  106. package/dist/config/load-config.js.map +1 -0
  107. package/dist/config/schema.d.ts +24 -0
  108. package/dist/config/schema.js +85 -0
  109. package/dist/config/schema.js.map +1 -0
  110. package/dist/errors/fintax-error.d.ts +24 -0
  111. package/dist/errors/fintax-error.js +21 -0
  112. package/dist/errors/fintax-error.js.map +1 -0
  113. package/dist/errors/normalize-error.d.ts +3 -0
  114. package/dist/errors/normalize-error.js +67 -0
  115. package/dist/errors/normalize-error.js.map +1 -0
  116. package/dist/files/artifact-store.d.ts +17 -0
  117. package/dist/files/artifact-store.js +74 -0
  118. package/dist/files/artifact-store.js.map +1 -0
  119. package/dist/files/input-policy.d.ts +28 -0
  120. package/dist/files/input-policy.js +109 -0
  121. package/dist/files/input-policy.js.map +1 -0
  122. package/dist/files/roots-provider.d.ts +14 -0
  123. package/dist/files/roots-provider.js +47 -0
  124. package/dist/files/roots-provider.js.map +1 -0
  125. package/dist/index.d.ts +2 -0
  126. package/dist/index.js +49 -0
  127. package/dist/index.js.map +1 -0
  128. package/dist/logging/logger.d.ts +3 -0
  129. package/dist/logging/logger.js +13 -0
  130. package/dist/logging/logger.js.map +1 -0
  131. package/dist/policies/idempotency.d.ts +32 -0
  132. package/dist/policies/idempotency.js +155 -0
  133. package/dist/policies/idempotency.js.map +1 -0
  134. package/dist/policies/job-reference.d.ts +16 -0
  135. package/dist/policies/job-reference.js +62 -0
  136. package/dist/policies/job-reference.js.map +1 -0
  137. package/dist/policies/operation-plan.d.ts +27 -0
  138. package/dist/policies/operation-plan.js +99 -0
  139. package/dist/policies/operation-plan.js.map +1 -0
  140. package/dist/policies/redaction.d.ts +2 -0
  141. package/dist/policies/redaction.js +29 -0
  142. package/dist/policies/redaction.js.map +1 -0
  143. package/dist/policies/retry.d.ts +8 -0
  144. package/dist/policies/retry.js +19 -0
  145. package/dist/policies/retry.js.map +1 -0
  146. package/dist/responses/tool-response.d.ts +4 -0
  147. package/dist/responses/tool-response.js +24 -0
  148. package/dist/responses/tool-response.js.map +1 -0
  149. package/dist/schemas/common.d.ts +226 -0
  150. package/dist/schemas/common.js +133 -0
  151. package/dist/schemas/common.js.map +1 -0
  152. package/dist/schemas/domains/accounting-balances.d.ts +497 -0
  153. package/dist/schemas/domains/accounting-balances.js +226 -0
  154. package/dist/schemas/domains/accounting-balances.js.map +1 -0
  155. package/dist/schemas/domains/accounting-context.d.ts +118 -0
  156. package/dist/schemas/domains/accounting-context.js +54 -0
  157. package/dist/schemas/domains/accounting-context.js.map +1 -0
  158. package/dist/schemas/domains/assets.d.ts +2508 -0
  159. package/dist/schemas/domains/assets.js +960 -0
  160. package/dist/schemas/domains/assets.js.map +1 -0
  161. package/dist/schemas/domains/business-documents.d.ts +4406 -0
  162. package/dist/schemas/domains/business-documents.js +1153 -0
  163. package/dist/schemas/domains/business-documents.js.map +1 -0
  164. package/dist/schemas/domains/configuration.d.ts +518 -0
  165. package/dist/schemas/domains/configuration.js +504 -0
  166. package/dist/schemas/domains/configuration.js.map +1 -0
  167. package/dist/schemas/domains/dashboard.d.ts +339 -0
  168. package/dist/schemas/domains/dashboard.js +211 -0
  169. package/dist/schemas/domains/dashboard.js.map +1 -0
  170. package/dist/schemas/domains/extended-operation-results.d.ts +1588 -0
  171. package/dist/schemas/domains/extended-operation-results.js +275 -0
  172. package/dist/schemas/domains/extended-operation-results.js.map +1 -0
  173. package/dist/schemas/domains/extended-operations.d.ts +1061 -0
  174. package/dist/schemas/domains/extended-operations.js +567 -0
  175. package/dist/schemas/domains/extended-operations.js.map +1 -0
  176. package/dist/schemas/domains/extended-query-results.d.ts +1688 -0
  177. package/dist/schemas/domains/extended-query-results.js +337 -0
  178. package/dist/schemas/domains/extended-query-results.js.map +1 -0
  179. package/dist/schemas/domains/financial-reports.d.ts +540 -0
  180. package/dist/schemas/domains/financial-reports.js +206 -0
  181. package/dist/schemas/domains/financial-reports.js.map +1 -0
  182. package/dist/schemas/domains/fnd-import.d.ts +912 -0
  183. package/dist/schemas/domains/fnd-import.js +396 -0
  184. package/dist/schemas/domains/fnd-import.js.map +1 -0
  185. package/dist/schemas/domains/fund-accounts.d.ts +1092 -0
  186. package/dist/schemas/domains/fund-accounts.js +410 -0
  187. package/dist/schemas/domains/fund-accounts.js.map +1 -0
  188. package/dist/schemas/domains/fund-balances.d.ts +476 -0
  189. package/dist/schemas/domains/fund-balances.js +233 -0
  190. package/dist/schemas/domains/fund-balances.js.map +1 -0
  191. package/dist/schemas/domains/journals.d.ts +1619 -0
  192. package/dist/schemas/domains/journals.js +615 -0
  193. package/dist/schemas/domains/journals.js.map +1 -0
  194. package/dist/schemas/domains/master-data.d.ts +2010 -0
  195. package/dist/schemas/domains/master-data.js +799 -0
  196. package/dist/schemas/domains/master-data.js.map +1 -0
  197. package/dist/schemas/domains/pnl.d.ts +837 -0
  198. package/dist/schemas/domains/pnl.js +469 -0
  199. package/dist/schemas/domains/pnl.js.map +1 -0
  200. package/dist/schemas/domains/reference-data.d.ts +227 -0
  201. package/dist/schemas/domains/reference-data.js +144 -0
  202. package/dist/schemas/domains/reference-data.js.map +1 -0
  203. package/dist/schemas/domains/transaction-drafts.d.ts +903 -0
  204. package/dist/schemas/domains/transaction-drafts.js +242 -0
  205. package/dist/schemas/domains/transaction-drafts.js.map +1 -0
  206. package/dist/schemas/domains/transactions.d.ts +910 -0
  207. package/dist/schemas/domains/transactions.js +266 -0
  208. package/dist/schemas/domains/transactions.js.map +1 -0
  209. package/dist/schemas/primitives.d.ts +6 -0
  210. package/dist/schemas/primitives.js +11 -0
  211. package/dist/schemas/primitives.js.map +1 -0
  212. package/dist/schemas/public-input.d.ts +3 -0
  213. package/dist/schemas/public-input.js +524 -0
  214. package/dist/schemas/public-input.js.map +1 -0
  215. package/dist/tools/core-edit/idempotent-write.d.ts +23 -0
  216. package/dist/tools/core-edit/idempotent-write.js +58 -0
  217. package/dist/tools/core-edit/idempotent-write.js.map +1 -0
  218. package/dist/tools/core-edit/save-asset.d.ts +5 -0
  219. package/dist/tools/core-edit/save-asset.js +334 -0
  220. package/dist/tools/core-edit/save-asset.js.map +1 -0
  221. package/dist/tools/core-edit/save-business-document-draft.d.ts +2 -0
  222. package/dist/tools/core-edit/save-business-document-draft.js +128 -0
  223. package/dist/tools/core-edit/save-business-document-draft.js.map +1 -0
  224. package/dist/tools/core-edit/save-fund-account.d.ts +2 -0
  225. package/dist/tools/core-edit/save-fund-account.js +138 -0
  226. package/dist/tools/core-edit/save-fund-account.js.map +1 -0
  227. package/dist/tools/core-edit/save-journal-draft.d.ts +2 -0
  228. package/dist/tools/core-edit/save-journal-draft.js +122 -0
  229. package/dist/tools/core-edit/save-journal-draft.js.map +1 -0
  230. package/dist/tools/core-edit/save-master-data.d.ts +2 -0
  231. package/dist/tools/core-edit/save-master-data.js +153 -0
  232. package/dist/tools/core-edit/save-master-data.js.map +1 -0
  233. package/dist/tools/core-edit/save-transaction-draft.d.ts +2 -0
  234. package/dist/tools/core-edit/save-transaction-draft.js +128 -0
  235. package/dist/tools/core-edit/save-transaction-draft.js.map +1 -0
  236. package/dist/tools/core-read/export-business-documents.d.ts +2 -0
  237. package/dist/tools/core-read/export-business-documents.js +67 -0
  238. package/dist/tools/core-read/export-business-documents.js.map +1 -0
  239. package/dist/tools/core-read/export-journals.d.ts +2 -0
  240. package/dist/tools/core-read/export-journals.js +56 -0
  241. package/dist/tools/core-read/export-journals.js.map +1 -0
  242. package/dist/tools/core-read/export-transactions.d.ts +2 -0
  243. package/dist/tools/core-read/export-transactions.js +67 -0
  244. package/dist/tools/core-read/export-transactions.js.map +1 -0
  245. package/dist/tools/core-read/query-accounting-balances.d.ts +2 -0
  246. package/dist/tools/core-read/query-accounting-balances.js +135 -0
  247. package/dist/tools/core-read/query-accounting-balances.js.map +1 -0
  248. package/dist/tools/core-read/query-accounting-context.d.ts +2 -0
  249. package/dist/tools/core-read/query-accounting-context.js +76 -0
  250. package/dist/tools/core-read/query-accounting-context.js.map +1 -0
  251. package/dist/tools/core-read/query-assets.d.ts +2 -0
  252. package/dist/tools/core-read/query-assets.js +425 -0
  253. package/dist/tools/core-read/query-assets.js.map +1 -0
  254. package/dist/tools/core-read/query-business-documents.d.ts +9 -0
  255. package/dist/tools/core-read/query-business-documents.js +620 -0
  256. package/dist/tools/core-read/query-business-documents.js.map +1 -0
  257. package/dist/tools/core-read/query-dashboard.d.ts +2 -0
  258. package/dist/tools/core-read/query-dashboard.js +144 -0
  259. package/dist/tools/core-read/query-dashboard.js.map +1 -0
  260. package/dist/tools/core-read/query-financial-reports.d.ts +2 -0
  261. package/dist/tools/core-read/query-financial-reports.js +171 -0
  262. package/dist/tools/core-read/query-financial-reports.js.map +1 -0
  263. package/dist/tools/core-read/query-fund-accounts.d.ts +2 -0
  264. package/dist/tools/core-read/query-fund-accounts.js +140 -0
  265. package/dist/tools/core-read/query-fund-accounts.js.map +1 -0
  266. package/dist/tools/core-read/query-fund-balances.d.ts +2 -0
  267. package/dist/tools/core-read/query-fund-balances.js +150 -0
  268. package/dist/tools/core-read/query-fund-balances.js.map +1 -0
  269. package/dist/tools/core-read/query-journals.d.ts +2 -0
  270. package/dist/tools/core-read/query-journals.js +277 -0
  271. package/dist/tools/core-read/query-journals.js.map +1 -0
  272. package/dist/tools/core-read/query-master-data.d.ts +2 -0
  273. package/dist/tools/core-read/query-master-data.js +363 -0
  274. package/dist/tools/core-read/query-master-data.js.map +1 -0
  275. package/dist/tools/core-read/query-pnl.d.ts +2 -0
  276. package/dist/tools/core-read/query-pnl.js +244 -0
  277. package/dist/tools/core-read/query-pnl.js.map +1 -0
  278. package/dist/tools/core-read/query-reference-data.d.ts +2 -0
  279. package/dist/tools/core-read/query-reference-data.js +293 -0
  280. package/dist/tools/core-read/query-reference-data.js.map +1 -0
  281. package/dist/tools/core-read/query-transactions.d.ts +2 -0
  282. package/dist/tools/core-read/query-transactions.js +58 -0
  283. package/dist/tools/core-read/query-transactions.js.map +1 -0
  284. package/dist/tools/create-tools.d.ts +3 -0
  285. package/dist/tools/create-tools.js +88 -0
  286. package/dist/tools/create-tools.js.map +1 -0
  287. package/dist/tools/extended/asset-operation-tools.d.ts +9 -0
  288. package/dist/tools/extended/asset-operation-tools.js +419 -0
  289. package/dist/tools/extended/asset-operation-tools.js.map +1 -0
  290. package/dist/tools/extended/automation-tools.d.ts +7 -0
  291. package/dist/tools/extended/automation-tools.js +333 -0
  292. package/dist/tools/extended/automation-tools.js.map +1 -0
  293. package/dist/tools/extended/configuration-tools.d.ts +14 -0
  294. package/dist/tools/extended/configuration-tools.js +871 -0
  295. package/dist/tools/extended/configuration-tools.js.map +1 -0
  296. package/dist/tools/extended/period-end-tools.d.ts +11 -0
  297. package/dist/tools/extended/period-end-tools.js +480 -0
  298. package/dist/tools/extended/period-end-tools.js.map +1 -0
  299. package/dist/tools/extended/query-output.d.ts +2589 -0
  300. package/dist/tools/extended/query-output.js +610 -0
  301. package/dist/tools/extended/query-output.js.map +1 -0
  302. package/dist/tools/extended/tool-support.d.ts +56 -0
  303. package/dist/tools/extended/tool-support.js +198 -0
  304. package/dist/tools/extended/tool-support.js.map +1 -0
  305. package/dist/tools/extended/workflow-tools.d.ts +10 -0
  306. package/dist/tools/extended/workflow-tools.js +678 -0
  307. package/dist/tools/extended/workflow-tools.js.map +1 -0
  308. package/dist/tools/fnd-import/execute-import.d.ts +2 -0
  309. package/dist/tools/fnd-import/execute-import.js +201 -0
  310. package/dist/tools/fnd-import/execute-import.js.map +1 -0
  311. package/dist/tools/fnd-import/get-import-template.d.ts +2 -0
  312. package/dist/tools/fnd-import/get-import-template.js +66 -0
  313. package/dist/tools/fnd-import/get-import-template.js.map +1 -0
  314. package/dist/tools/fnd-import/get-job-status.d.ts +8 -0
  315. package/dist/tools/fnd-import/get-job-status.js +201 -0
  316. package/dist/tools/fnd-import/get-job-status.js.map +1 -0
  317. package/dist/tools/fnd-import/prepare-import.d.ts +31 -0
  318. package/dist/tools/fnd-import/prepare-import.js +214 -0
  319. package/dist/tools/fnd-import/prepare-import.js.map +1 -0
  320. package/dist/tools/fnd-import/public-import-result.d.ts +18 -0
  321. package/dist/tools/fnd-import/public-import-result.js +35 -0
  322. package/dist/tools/fnd-import/public-import-result.js.map +1 -0
  323. package/dist/tools/tool-definition.d.ts +45 -0
  324. package/dist/tools/tool-definition.js +11 -0
  325. package/dist/tools/tool-definition.js.map +1 -0
  326. package/dist/tools/tool-handler.d.ts +27 -0
  327. package/dist/tools/tool-handler.js +196 -0
  328. package/dist/tools/tool-handler.js.map +1 -0
  329. package/dist/tools/transaction-item.d.ts +225 -0
  330. package/dist/tools/transaction-item.js +109 -0
  331. package/dist/tools/transaction-item.js.map +1 -0
  332. package/dist/transport/draining-transport.d.ts +14 -0
  333. package/dist/transport/draining-transport.js +36 -0
  334. package/dist/transport/draining-transport.js.map +1 -0
  335. package/dist/transport/stdio.d.ts +2 -0
  336. package/dist/transport/stdio.js +5 -0
  337. package/dist/transport/stdio.js.map +1 -0
  338. package/dist/version.d.ts +2 -0
  339. package/dist/version.js +3 -0
  340. package/dist/version.js.map +1 -0
  341. package/package.json +49 -0
@@ -0,0 +1,960 @@
1
+ import { z } from 'zod/v4';
2
+ import { contextSchema, viewPageSuccessEnvelopeSchema, successEnvelopeSchema, } from '../common.js';
3
+ import { dateSchema, decimalStringSchema, upstreamDecimalSchema, uuidSchema, } from '../primitives.js';
4
+ export const assetApprovalStatusSchema = z.enum([
5
+ 'NONE',
6
+ 'PENDING',
7
+ 'APPROVED',
8
+ 'REJECTED',
9
+ 'WITHDRAWN',
10
+ ]);
11
+ export const assetVerificationStatusSchema = z
12
+ .enum(['D', 'V', 'F'])
13
+ .describe('Upstream verification status code. Pass D, V, or F exactly as returned by the service.');
14
+ export const assetMovementTypeSchema = z.enum([
15
+ 'SOURCE',
16
+ 'DEPR',
17
+ 'IMPAIR',
18
+ 'RETIRE',
19
+ 'ADJUST',
20
+ 'UNPLANNED',
21
+ 'CATCHUP',
22
+ 'RECLASS',
23
+ 'REALLOC',
24
+ ]);
25
+ export const assetFinanceIncludeSchema = z.enum([
26
+ 'source_lines',
27
+ 'allocation_lines',
28
+ 'depreciation_details',
29
+ ]);
30
+ export const assetListFiltersSchema = z
31
+ .object({
32
+ search: z.string().min(1).optional(),
33
+ ledger_id: z.uuid().optional(),
34
+ category_id: z.uuid().optional(),
35
+ asset_type: z.string().min(1).max(64).optional(),
36
+ in_use: z.boolean().optional(),
37
+ location: z.string().min(1).max(255).optional(),
38
+ approval_status: assetApprovalStatusSchema.optional(),
39
+ })
40
+ .strict();
41
+ export const assetMovementFiltersSchema = z
42
+ .object({
43
+ ledger_id: z.uuid(),
44
+ period_name: z.string().min(1).max(64).optional(),
45
+ movement_types: z.array(assetMovementTypeSchema).min(1).max(9).optional(),
46
+ search: z.string().min(1).max(255).optional(),
47
+ biz_date_from: dateSchema.optional(),
48
+ biz_date_to: dateSchema.optional(),
49
+ })
50
+ .strict()
51
+ .superRefine((filters, context) => {
52
+ if (filters.biz_date_from !== undefined &&
53
+ filters.biz_date_to !== undefined &&
54
+ filters.biz_date_from > filters.biz_date_to) {
55
+ context.addIssue({
56
+ code: 'custom',
57
+ path: ['biz_date_to'],
58
+ message: 'biz_date_to must not be earlier than biz_date_from',
59
+ });
60
+ }
61
+ if (filters.movement_types !== undefined &&
62
+ new Set(filters.movement_types).size !== filters.movement_types.length) {
63
+ context.addIssue({
64
+ code: 'custom',
65
+ path: ['movement_types'],
66
+ message: 'movement_types must not contain duplicates',
67
+ });
68
+ }
69
+ });
70
+ export const queryAssetsInputSchema = z.discriminatedUnion('view', [
71
+ z
72
+ .object({
73
+ view: z.literal('list'),
74
+ filters: assetListFiltersSchema.default({}),
75
+ page: z.number().int().positive().default(1),
76
+ page_size: z.number().int().min(1).max(100).default(20),
77
+ context: contextSchema.optional(),
78
+ })
79
+ .strict()
80
+ .describe('Asset-card lists use a fixed order and do not support custom sorting; a page is not sorted again locally.'),
81
+ z
82
+ .object({
83
+ view: z.literal('detail'),
84
+ card_id: z.uuid(),
85
+ context: contextSchema.optional(),
86
+ })
87
+ .strict(),
88
+ z
89
+ .object({
90
+ view: z.literal('finance'),
91
+ finance_id: z.uuid(),
92
+ include: z
93
+ .array(assetFinanceIncludeSchema)
94
+ .max(3)
95
+ .default([])
96
+ .superRefine((values, context) => {
97
+ if (new Set(values).size !== values.length) {
98
+ context.addIssue({
99
+ code: 'custom',
100
+ message: 'include must not contain duplicates',
101
+ });
102
+ }
103
+ }),
104
+ context: contextSchema.optional(),
105
+ })
106
+ .strict(),
107
+ z
108
+ .object({
109
+ view: z.literal('movement_history'),
110
+ filters: assetMovementFiltersSchema,
111
+ page: z.number().int().positive().default(1),
112
+ page_size: z.number().int().min(1).max(100).default(20),
113
+ context: contextSchema.optional(),
114
+ })
115
+ .strict()
116
+ .describe('Asset-movement lists use a fixed order and do not support custom sorting; a page is not sorted again locally.'),
117
+ ]);
118
+ const nullableUpstreamDecimalSchema = upstreamDecimalSchema.nullable();
119
+ const nullableDecimalSchema = decimalStringSchema.nullable();
120
+ const nullableStringSchema = z.string().nullable();
121
+ const nullableUuidSchema = z.uuid().nullable();
122
+ const nullableIntegerSchema = z.number().int().nullable();
123
+ const auxiliaryFields = {
124
+ attribute1: z.string().nullable().optional(),
125
+ attribute2: z.string().nullable().optional(),
126
+ attribute3: z.string().nullable().optional(),
127
+ attribute4: z.string().nullable().optional(),
128
+ attribute5: z.string().nullable().optional(),
129
+ attribute6: z.string().nullable().optional(),
130
+ attribute7: z.string().nullable().optional(),
131
+ attribute8: z.string().nullable().optional(),
132
+ attribute9: z.string().nullable().optional(),
133
+ attribute10: z.string().nullable().optional(),
134
+ attribute11: z.string().nullable().optional(),
135
+ attribute12: z.string().nullable().optional(),
136
+ };
137
+ export const assetAuxiliarySchema = z
138
+ .object({
139
+ attribute1: nullableStringSchema,
140
+ attribute2: nullableStringSchema,
141
+ attribute3: nullableStringSchema,
142
+ attribute4: nullableStringSchema,
143
+ attribute5: nullableStringSchema,
144
+ attribute6: nullableStringSchema,
145
+ attribute7: nullableStringSchema,
146
+ attribute8: nullableStringSchema,
147
+ attribute9: nullableStringSchema,
148
+ attribute10: nullableStringSchema,
149
+ attribute11: nullableStringSchema,
150
+ attribute12: nullableStringSchema,
151
+ })
152
+ .strict();
153
+ export const assetWorkbenchRowUpstreamSchema = z
154
+ .object({
155
+ asset_finance_id: z.uuid().nullable(),
156
+ card_id: z.uuid(),
157
+ asset_no: z.string(),
158
+ description: z.string().nullable().optional(),
159
+ tag_no: z.string().nullable().optional(),
160
+ ledger_id: z.uuid().nullable().optional(),
161
+ ledger_name: z.string().nullable().optional(),
162
+ category_id: z.uuid().nullable().optional(),
163
+ category_name: z.string().nullable().optional(),
164
+ asset_type: z.string().nullable().optional(),
165
+ location: z.string().nullable().optional(),
166
+ quantity: nullableUpstreamDecimalSchema,
167
+ original_cost: nullableUpstreamDecimalSchema,
168
+ nbv: nullableUpstreamDecimalSchema,
169
+ accum_depr: nullableUpstreamDecimalSchema,
170
+ in_use: z.boolean(),
171
+ version: z.number().int().nullable().optional(),
172
+ card_attachment_count: z.number().int().nonnegative().default(0),
173
+ finance_attachment_count: z.number().int().nonnegative().default(0),
174
+ approval_status: assetApprovalStatusSchema.nullable().optional(),
175
+ verification_status: assetVerificationStatusSchema.nullable().optional(),
176
+ finance_approval_status: assetApprovalStatusSchema.nullable().optional(),
177
+ finance_verification_status: assetVerificationStatusSchema
178
+ .nullable()
179
+ .optional(),
180
+ })
181
+ .passthrough();
182
+ export const assetWorkbenchListUpstreamSchema = z
183
+ .object({
184
+ list: z.array(assetWorkbenchRowUpstreamSchema),
185
+ total: z.number().int().nonnegative(),
186
+ page: z.number().int().positive(),
187
+ page_size: z.number().int().positive().optional(),
188
+ pageSize: z.number().int().positive().optional(),
189
+ })
190
+ .passthrough();
191
+ export const assetCardUpstreamSchema = z
192
+ .object({
193
+ id: z.uuid(),
194
+ asset_no: z.string(),
195
+ tag_no: z.string().nullable().optional(),
196
+ serial_no: z.string().nullable().optional(),
197
+ asset_type: z.string().nullable().optional(),
198
+ category_id: z.uuid().nullable().optional(),
199
+ category_name: z.string().nullable().optional(),
200
+ manufacturer: z.string().nullable().optional(),
201
+ asset_name: z.string().nullable().optional(),
202
+ in_use: z.boolean(),
203
+ description: z.string().nullable().optional(),
204
+ asset_key_field: z.string().nullable().optional(),
205
+ quantity: nullableUpstreamDecimalSchema,
206
+ unit: z.string().nullable().optional(),
207
+ location: z.string().nullable().optional(),
208
+ version: z.number().int().nullable().optional(),
209
+ approval_status: assetApprovalStatusSchema.nullable().optional(),
210
+ verification_status: assetVerificationStatusSchema.nullable().optional(),
211
+ approved_by: z.uuid().nullable().optional(),
212
+ approved_at: z.string().nullable().optional(),
213
+ })
214
+ .passthrough();
215
+ const financeCoaFields = {
216
+ asset_cost_coa_code: z.string().nullable().optional(),
217
+ asset_clearing_coa_code: z.string().nullable().optional(),
218
+ depr_expense_coa_code: z.string().nullable().optional(),
219
+ accum_depr_coa_code: z.string().nullable().optional(),
220
+ addl_expense_coa_code: z.string().nullable().optional(),
221
+ addl_reserve_coa_code: z.string().nullable().optional(),
222
+ reval_reserve_coa_code: z.string().nullable().optional(),
223
+ cip_cost_coa_code: z.string().nullable().optional(),
224
+ cip_clearing_coa_code: z.string().nullable().optional(),
225
+ accum_impair_coa_code: z.string().nullable().optional(),
226
+ unplanned_depr_coa_code: z.string().nullable().optional(),
227
+ writeoff_coa_code: z.string().nullable().optional(),
228
+ };
229
+ export const assetFinanceUpstreamSchema = z
230
+ .object({
231
+ id: z.uuid(),
232
+ card_id: z.uuid(),
233
+ category_id: z.uuid().nullable().optional(),
234
+ category_name: z.string().nullable().optional(),
235
+ ledger_id: z.uuid().nullable().optional(),
236
+ ledger_name: z.string().nullable().optional(),
237
+ remark: z.string().nullable().optional(),
238
+ current_cost: nullableUpstreamDecimalSchema,
239
+ original_cost: nullableUpstreamDecimalSchema,
240
+ salvage_type: z.string().nullable().optional(),
241
+ salvage_pct: nullableUpstreamDecimalSchema,
242
+ salvage_value: nullableUpstreamDecimalSchema,
243
+ recoverable_cost: nullableUpstreamDecimalSchema,
244
+ nbv: nullableUpstreamDecimalSchema,
245
+ ytd_depr: nullableUpstreamDecimalSchema,
246
+ accum_depr: nullableUpstreamDecimalSchema,
247
+ accum_impair: nullableUpstreamDecimalSchema,
248
+ accum_retire: nullableUpstreamDecimalSchema,
249
+ depr_method_id: z.uuid().nullable().optional(),
250
+ useful_life_years: z.number().int().nullable().optional(),
251
+ months: z.number().int().nullable().optional(),
252
+ depr_flag: z.boolean(),
253
+ disabled_flag: z.boolean(),
254
+ start_date: dateSchema.nullable().optional(),
255
+ depr_start_rule: z.string().nullable().optional(),
256
+ retire_rule: z.string().nullable().optional(),
257
+ amortize_adjust: z.boolean().nullable().optional(),
258
+ cap_limit: nullableUpstreamDecimalSchema,
259
+ ...financeCoaFields,
260
+ version: z.number().int().nullable().optional(),
261
+ approval_status: assetApprovalStatusSchema.nullable().optional(),
262
+ verification_status: assetVerificationStatusSchema.nullable().optional(),
263
+ approved_by: z.uuid().nullable().optional(),
264
+ approved_at: z.string().nullable().optional(),
265
+ })
266
+ .passthrough();
267
+ export const assetFinanceListUpstreamSchema = z
268
+ .object({ list: z.array(assetFinanceUpstreamSchema) })
269
+ .passthrough();
270
+ export const assetSourceLineUpstreamSchema = z
271
+ .object({
272
+ id: z.uuid(),
273
+ asset_finance_id: z.uuid(),
274
+ line_no: z.number().int().nullable().optional(),
275
+ invoice_no: z.string().nullable().optional(),
276
+ invoice_line_no: z.number().int().nullable().optional(),
277
+ party_id: z.uuid().nullable().optional(),
278
+ party_name: z.string().nullable().optional(),
279
+ party_code: z.string().nullable().optional(),
280
+ description: z.string().nullable().optional(),
281
+ line_amount: nullableUpstreamDecimalSchema,
282
+ version: z.number().int().nullable().optional(),
283
+ })
284
+ .passthrough();
285
+ export const assetSourceLinesUpstreamSchema = z
286
+ .object({
287
+ lines: z.array(assetSourceLineUpstreamSchema),
288
+ original_cost: nullableUpstreamDecimalSchema,
289
+ })
290
+ .passthrough();
291
+ export const assetAllocationLineUpstreamSchema = z
292
+ .object({
293
+ id: z.uuid(),
294
+ asset_finance_id: z.uuid(),
295
+ line_no: z.number().int().nullable().optional(),
296
+ quantity: nullableUpstreamDecimalSchema,
297
+ employee_name: z.string().nullable().optional(),
298
+ depr_expense_coa_code: z.string().nullable().optional(),
299
+ ...auxiliaryFields,
300
+ description: z.string().nullable().optional(),
301
+ reference: z.string().nullable().optional(),
302
+ remark: z.string().nullable().optional(),
303
+ version: z.number().int().nullable().optional(),
304
+ })
305
+ .passthrough();
306
+ export const assetAllocationLinesUpstreamSchema = z
307
+ .object({
308
+ lines: z.array(assetAllocationLineUpstreamSchema),
309
+ total_quantity: nullableUpstreamDecimalSchema,
310
+ })
311
+ .passthrough();
312
+ export const assetMovementEventUpstreamSchema = z
313
+ .object({
314
+ event_id: z.uuid(),
315
+ event_no: z.string(),
316
+ event_time: z.string().nullable(),
317
+ event_type: z.string(),
318
+ entry_source: z.string(),
319
+ })
320
+ .passthrough();
321
+ export const assetMovementJournalUpstreamSchema = z
322
+ .object({
323
+ journal_id: z.uuid(),
324
+ journal_number: z.string().nullable(),
325
+ period_name: z.string().nullable(),
326
+ approval_status: z.string().nullable(),
327
+ ledger_id: z.uuid().nullable(),
328
+ event_id: z.uuid().nullable(),
329
+ })
330
+ .passthrough();
331
+ export const assetDepreciationDetailUpstreamSchema = z
332
+ .object({
333
+ id: z.uuid(),
334
+ movement_type: z.string(),
335
+ amount: nullableUpstreamDecimalSchema,
336
+ biz_date: dateSchema.nullable().optional(),
337
+ period_name: z.string().nullable().optional(),
338
+ fiscal_year: z.string().nullable().optional(),
339
+ periods_covered: z.number().int().nullable().optional(),
340
+ alloc_line_id: z.uuid().nullable().optional(),
341
+ quantity: nullableUpstreamDecimalSchema,
342
+ description: z.string().nullable().optional(),
343
+ reference: z.string().nullable().optional(),
344
+ remark: z.string().nullable().optional(),
345
+ coa_code: z.string().nullable().optional(),
346
+ ...auxiliaryFields,
347
+ events: z.array(assetMovementEventUpstreamSchema).default([]),
348
+ journals: z.array(assetMovementJournalUpstreamSchema).default([]),
349
+ })
350
+ .passthrough();
351
+ export const assetDepreciationSummaryUpstreamSchema = z
352
+ .object({
353
+ asset_finance_id: z.uuid(),
354
+ ledger_id: z.uuid().nullable(),
355
+ asset_no: z.string().nullable(),
356
+ tag_no: z.string().nullable(),
357
+ description: z.string().nullable(),
358
+ ledger_name: z.string().nullable(),
359
+ currency: z.string().nullable(),
360
+ original_cost: nullableUpstreamDecimalSchema,
361
+ recoverable_cost: nullableUpstreamDecimalSchema,
362
+ nbv: nullableUpstreamDecimalSchema,
363
+ ytd_depr: nullableUpstreamDecimalSchema,
364
+ accum_depr: nullableUpstreamDecimalSchema,
365
+ })
366
+ .passthrough();
367
+ export const assetDepreciationDetailsUpstreamSchema = z
368
+ .object({
369
+ summary: assetDepreciationSummaryUpstreamSchema.nullable(),
370
+ list: z.array(assetDepreciationDetailUpstreamSchema),
371
+ })
372
+ .passthrough();
373
+ export const assetMovementRowUpstreamSchema = z
374
+ .object({
375
+ id: z.uuid(),
376
+ asset_finance_id: z.uuid().nullable(),
377
+ card_id: z.uuid().nullable(),
378
+ alloc_line_id: z.uuid().nullable(),
379
+ asset_no: z.string(),
380
+ asset_description: z.string().nullable(),
381
+ tag_no: z.string().nullable(),
382
+ ledger_id: z.uuid().nullable(),
383
+ ledger_name: z.string().nullable(),
384
+ currency: z.string().nullable(),
385
+ movement_type: z.string(),
386
+ origin_movement_type: z.string().nullable(),
387
+ employee_name: z.string().nullable(),
388
+ coa_code: z.string().nullable(),
389
+ biz_date: dateSchema.nullable(),
390
+ period_name: z.string().nullable(),
391
+ derived_period_name: z.string().nullable(),
392
+ fiscal_year: z.string().nullable(),
393
+ periods_covered: z.number().int().nullable(),
394
+ quantity: nullableUpstreamDecimalSchema,
395
+ amount: nullableUpstreamDecimalSchema,
396
+ is_reversed: z.boolean(),
397
+ reverse_of_id: z.uuid().nullable(),
398
+ remark: z.string().nullable(),
399
+ aux: z.object(auxiliaryFields).passthrough().default({}),
400
+ events: z.array(assetMovementEventUpstreamSchema).default([]),
401
+ journals: z.array(assetMovementJournalUpstreamSchema).default([]),
402
+ })
403
+ .passthrough();
404
+ export const assetMovementListUpstreamSchema = z
405
+ .object({
406
+ list: z.array(assetMovementRowUpstreamSchema),
407
+ total: z.number().int().nonnegative(),
408
+ page: z.number().int().positive(),
409
+ page_size: z.number().int().positive().optional(),
410
+ pageSize: z.number().int().positive().optional(),
411
+ summary: z
412
+ .object({
413
+ total_amount: upstreamDecimalSchema,
414
+ row_count: z.number().int().nonnegative(),
415
+ })
416
+ .passthrough(),
417
+ })
418
+ .passthrough();
419
+ export const assetWorkbenchRowSchema = z
420
+ .object({
421
+ asset_finance_id: nullableUuidSchema,
422
+ card_id: z.uuid(),
423
+ asset_no: z.string(),
424
+ description: nullableStringSchema,
425
+ tag_no: nullableStringSchema,
426
+ ledger_id: nullableUuidSchema,
427
+ ledger_name: nullableStringSchema,
428
+ category_id: nullableUuidSchema,
429
+ category_name: nullableStringSchema,
430
+ asset_type: nullableStringSchema,
431
+ location: nullableStringSchema,
432
+ quantity: nullableDecimalSchema,
433
+ original_cost: nullableDecimalSchema,
434
+ nbv: nullableDecimalSchema,
435
+ accum_depr: nullableDecimalSchema,
436
+ in_use: z.boolean(),
437
+ version: nullableIntegerSchema,
438
+ card_attachment_count: z.number().int().nonnegative(),
439
+ finance_attachment_count: z.number().int().nonnegative(),
440
+ approval_status: assetApprovalStatusSchema.nullable(),
441
+ verification_status: assetVerificationStatusSchema.nullable(),
442
+ finance_approval_status: assetApprovalStatusSchema.nullable(),
443
+ finance_verification_status: assetVerificationStatusSchema.nullable(),
444
+ })
445
+ .strict();
446
+ export const assetCardSchema = z
447
+ .object({
448
+ id: z.uuid(),
449
+ asset_no: z.string(),
450
+ tag_no: nullableStringSchema,
451
+ serial_no: nullableStringSchema,
452
+ asset_type: nullableStringSchema,
453
+ category_id: nullableUuidSchema,
454
+ category_name: nullableStringSchema,
455
+ manufacturer: nullableStringSchema,
456
+ asset_name: nullableStringSchema,
457
+ in_use: z.boolean(),
458
+ description: nullableStringSchema,
459
+ asset_key_field: nullableStringSchema,
460
+ quantity: nullableDecimalSchema,
461
+ unit: nullableStringSchema,
462
+ location: nullableStringSchema,
463
+ version: nullableIntegerSchema,
464
+ approval_status: assetApprovalStatusSchema.nullable(),
465
+ verification_status: assetVerificationStatusSchema.nullable(),
466
+ approved_by: nullableUuidSchema,
467
+ approved_at: nullableStringSchema,
468
+ })
469
+ .strict();
470
+ export const assetFinanceCoaAccountsSchema = z
471
+ .object({
472
+ asset_cost: nullableStringSchema,
473
+ asset_clearing: nullableStringSchema,
474
+ depreciation_expense: nullableStringSchema,
475
+ accumulated_depreciation: nullableStringSchema,
476
+ additional_expense: nullableStringSchema,
477
+ additional_reserve: nullableStringSchema,
478
+ revaluation_reserve: nullableStringSchema,
479
+ cip_cost: nullableStringSchema,
480
+ cip_clearing: nullableStringSchema,
481
+ accumulated_impairment: nullableStringSchema,
482
+ unplanned_depreciation: nullableStringSchema,
483
+ writeoff: nullableStringSchema,
484
+ })
485
+ .strict();
486
+ export const assetFinanceSchema = z
487
+ .object({
488
+ id: z.uuid(),
489
+ card_id: z.uuid(),
490
+ category_id: nullableUuidSchema,
491
+ category_name: nullableStringSchema,
492
+ ledger_id: nullableUuidSchema,
493
+ ledger_name: nullableStringSchema,
494
+ remark: nullableStringSchema,
495
+ current_cost: nullableDecimalSchema,
496
+ original_cost: nullableDecimalSchema,
497
+ salvage_type: nullableStringSchema,
498
+ salvage_pct: nullableDecimalSchema,
499
+ salvage_value: nullableDecimalSchema,
500
+ recoverable_cost: nullableDecimalSchema,
501
+ nbv: nullableDecimalSchema,
502
+ ytd_depr: nullableDecimalSchema,
503
+ accum_depr: nullableDecimalSchema,
504
+ accum_impair: nullableDecimalSchema,
505
+ accum_retire: nullableDecimalSchema,
506
+ depr_method_id: nullableUuidSchema,
507
+ useful_life_years: nullableIntegerSchema,
508
+ months: nullableIntegerSchema,
509
+ depr_flag: z.boolean(),
510
+ disabled_flag: z.boolean(),
511
+ start_date: dateSchema.nullable(),
512
+ depr_start_rule: nullableStringSchema,
513
+ retire_rule: nullableStringSchema,
514
+ amortize_adjust: z.boolean().nullable(),
515
+ cap_limit: nullableDecimalSchema,
516
+ coa_accounts: assetFinanceCoaAccountsSchema,
517
+ version: nullableIntegerSchema,
518
+ approval_status: assetApprovalStatusSchema.nullable(),
519
+ verification_status: assetVerificationStatusSchema.nullable(),
520
+ approved_by: nullableUuidSchema,
521
+ approved_at: nullableStringSchema,
522
+ })
523
+ .strict();
524
+ export const assetSourceLinesSchema = z
525
+ .object({
526
+ original_cost: nullableDecimalSchema,
527
+ lines: z.array(z
528
+ .object({
529
+ id: z.uuid(),
530
+ asset_finance_id: z.uuid(),
531
+ line_no: nullableIntegerSchema,
532
+ invoice_no: nullableStringSchema,
533
+ invoice_line_no: nullableIntegerSchema,
534
+ party_id: nullableUuidSchema,
535
+ party_name: nullableStringSchema,
536
+ party_code: nullableStringSchema,
537
+ description: nullableStringSchema,
538
+ line_amount: nullableDecimalSchema,
539
+ version: nullableIntegerSchema,
540
+ })
541
+ .strict()),
542
+ })
543
+ .strict();
544
+ export const assetAllocationLinesSchema = z
545
+ .object({
546
+ total_quantity: nullableDecimalSchema,
547
+ lines: z.array(z
548
+ .object({
549
+ id: z.uuid(),
550
+ asset_finance_id: z.uuid(),
551
+ line_no: nullableIntegerSchema,
552
+ quantity: nullableDecimalSchema,
553
+ employee_name: nullableStringSchema,
554
+ depr_expense_coa_code: nullableStringSchema,
555
+ attributes: assetAuxiliarySchema,
556
+ description: nullableStringSchema,
557
+ reference: nullableStringSchema,
558
+ remark: nullableStringSchema,
559
+ version: nullableIntegerSchema,
560
+ })
561
+ .strict()),
562
+ })
563
+ .strict();
564
+ export const assetMovementEventSchema = z
565
+ .object({
566
+ event_id: z.uuid(),
567
+ event_no: z.string(),
568
+ event_time: nullableStringSchema,
569
+ event_type: z.string(),
570
+ entry_source: z.string(),
571
+ })
572
+ .strict();
573
+ export const assetMovementJournalSchema = z
574
+ .object({
575
+ journal_id: z.uuid(),
576
+ journal_number: nullableStringSchema,
577
+ period_name: nullableStringSchema,
578
+ approval_status: nullableStringSchema,
579
+ ledger_id: nullableUuidSchema,
580
+ event_id: nullableUuidSchema,
581
+ })
582
+ .strict();
583
+ export const assetDepreciationDetailsSchema = z
584
+ .object({
585
+ summary: z
586
+ .object({
587
+ asset_finance_id: z.uuid(),
588
+ ledger_id: nullableUuidSchema,
589
+ asset_no: nullableStringSchema,
590
+ tag_no: nullableStringSchema,
591
+ description: nullableStringSchema,
592
+ ledger_name: nullableStringSchema,
593
+ currency: nullableStringSchema,
594
+ original_cost: nullableDecimalSchema,
595
+ recoverable_cost: nullableDecimalSchema,
596
+ nbv: nullableDecimalSchema,
597
+ ytd_depr: nullableDecimalSchema,
598
+ accum_depr: nullableDecimalSchema,
599
+ })
600
+ .strict()
601
+ .nullable(),
602
+ items: z.array(z
603
+ .object({
604
+ id: z.uuid(),
605
+ movement_type: z.string(),
606
+ amount: nullableDecimalSchema,
607
+ biz_date: dateSchema.nullable(),
608
+ period_name: nullableStringSchema,
609
+ fiscal_year: nullableStringSchema,
610
+ periods_covered: nullableIntegerSchema,
611
+ alloc_line_id: nullableUuidSchema,
612
+ quantity: nullableDecimalSchema,
613
+ coa_code: nullableStringSchema,
614
+ attributes: assetAuxiliarySchema,
615
+ description: nullableStringSchema,
616
+ reference: nullableStringSchema,
617
+ remark: nullableStringSchema,
618
+ events: z.array(assetMovementEventSchema),
619
+ journals: z.array(assetMovementJournalSchema),
620
+ })
621
+ .strict()),
622
+ })
623
+ .strict();
624
+ export const assetMovementRowSchema = z
625
+ .object({
626
+ id: z.uuid(),
627
+ asset_finance_id: nullableUuidSchema,
628
+ card_id: nullableUuidSchema,
629
+ alloc_line_id: nullableUuidSchema,
630
+ asset_no: z.string(),
631
+ asset_description: nullableStringSchema,
632
+ tag_no: nullableStringSchema,
633
+ ledger_id: nullableUuidSchema,
634
+ ledger_name: nullableStringSchema,
635
+ currency: nullableStringSchema,
636
+ movement_type: z.string(),
637
+ origin_movement_type: nullableStringSchema,
638
+ employee_name: nullableStringSchema,
639
+ coa_code: nullableStringSchema,
640
+ biz_date: dateSchema.nullable(),
641
+ period_name: nullableStringSchema,
642
+ derived_period_name: nullableStringSchema,
643
+ fiscal_year: nullableStringSchema,
644
+ periods_covered: nullableIntegerSchema,
645
+ quantity: nullableDecimalSchema,
646
+ amount: nullableDecimalSchema,
647
+ is_reversed: z.boolean(),
648
+ reverse_of_id: nullableUuidSchema,
649
+ remark: nullableStringSchema,
650
+ attributes: assetAuxiliarySchema,
651
+ events: z.array(assetMovementEventSchema),
652
+ journals: z.array(assetMovementJournalSchema),
653
+ })
654
+ .strict();
655
+ export const queryAssetsOutputSchema = viewPageSuccessEnvelopeSchema(z.discriminatedUnion('view', [
656
+ z
657
+ .object({
658
+ view: z.literal('list'),
659
+ items: z.array(assetWorkbenchRowSchema),
660
+ })
661
+ .strict(),
662
+ z
663
+ .object({
664
+ view: z.literal('detail'),
665
+ card: assetCardSchema,
666
+ finances: z.array(assetFinanceSchema).nullable(),
667
+ })
668
+ .strict(),
669
+ z
670
+ .object({
671
+ view: z.literal('finance'),
672
+ finance: assetFinanceSchema,
673
+ include: z.array(assetFinanceIncludeSchema),
674
+ source_lines: assetSourceLinesSchema.nullable().optional(),
675
+ allocation_lines: assetAllocationLinesSchema.nullable().optional(),
676
+ depreciation_details: assetDepreciationDetailsSchema
677
+ .nullable()
678
+ .optional(),
679
+ })
680
+ .strict(),
681
+ z
682
+ .object({
683
+ view: z.literal('movement_history'),
684
+ items: z.array(assetMovementRowSchema),
685
+ summary: z
686
+ .object({
687
+ total_amount: decimalStringSchema,
688
+ row_count: z.number().int().nonnegative(),
689
+ })
690
+ .strict(),
691
+ })
692
+ .strict(),
693
+ ]), ['list', 'movement_history']);
694
+ const writeContextSchema = z.object({ org_id: uuidSchema }).strict();
695
+ const optionalText = (max) => z.string().max(max).optional();
696
+ const nonNegativeDecimalSchema = decimalStringSchema.refine((value) => !value.startsWith('-'), 'Must be a non-negative decimal string');
697
+ const cardShape = {
698
+ asset_no: z.string().min(1).max(64),
699
+ tag_no: optionalText(64),
700
+ serial_no: optionalText(128),
701
+ asset_type: optionalText(64),
702
+ category_id: uuidSchema,
703
+ manufacturer: optionalText(128),
704
+ asset_name: optionalText(50),
705
+ in_use: z.boolean().optional(),
706
+ description: optionalText(512),
707
+ asset_key_field: optionalText(128),
708
+ quantity: nonNegativeDecimalSchema.optional(),
709
+ unit: optionalText(32),
710
+ location: optionalText(200),
711
+ };
712
+ export const assetCardSaveValuesSchema = z.object(cardShape).strict();
713
+ export const assetCardCreateValuesSchema = assetCardSaveValuesSchema.extend({
714
+ attachment_file_ids: z.array(uuidSchema).max(10).optional(),
715
+ });
716
+ const coaAccountsSchema = z
717
+ .object({
718
+ asset_cost: optionalText(50),
719
+ asset_clearing: optionalText(50),
720
+ depreciation_expense: optionalText(50),
721
+ accumulated_depreciation: optionalText(50),
722
+ additional_expense: optionalText(50),
723
+ additional_reserve: optionalText(50),
724
+ revaluation_reserve: optionalText(50),
725
+ cip_cost: optionalText(50),
726
+ cip_clearing: optionalText(50),
727
+ accumulated_impairment: optionalText(50),
728
+ unplanned_depreciation: optionalText(50),
729
+ writeoff: optionalText(50),
730
+ })
731
+ .strict()
732
+ .optional();
733
+ export const assetFinanceSaveValuesSchema = z
734
+ .object({
735
+ category_id: uuidSchema.optional(),
736
+ remark: optionalText(512),
737
+ current_cost: decimalStringSchema.optional(),
738
+ original_cost: nonNegativeDecimalSchema.optional(),
739
+ salvage_type: optionalText(32),
740
+ salvage_pct: nonNegativeDecimalSchema.optional(),
741
+ salvage_value: nonNegativeDecimalSchema.optional(),
742
+ ytd_depr: decimalStringSchema.optional(),
743
+ accum_depr: decimalStringSchema.optional(),
744
+ depr_method_id: uuidSchema.optional(),
745
+ useful_life_years: z.number().int().nonnegative().optional(),
746
+ months: z.number().int().nonnegative().optional(),
747
+ depr_flag: z.boolean().optional(),
748
+ disabled_flag: z.boolean().optional(),
749
+ start_date: dateSchema.optional(),
750
+ depr_start_rule: optionalText(32),
751
+ retire_rule: optionalText(32),
752
+ amortize_adjust: z.boolean().optional(),
753
+ cap_limit: nonNegativeDecimalSchema.optional(),
754
+ coa_accounts: coaAccountsSchema,
755
+ })
756
+ .strict();
757
+ export const assetFinanceCreateValuesSchema = assetFinanceSaveValuesSchema.extend({
758
+ attachment_file_ids: z.array(uuidSchema).max(10).optional(),
759
+ });
760
+ export const assetSourceLineInputSchema = z
761
+ .object({
762
+ line_no: z.number().int().positive(),
763
+ invoice_no: z.string().min(1).max(100),
764
+ invoice_line_no: z.number().int().positive(),
765
+ line_amount: decimalStringSchema.optional(),
766
+ description: optionalText(512),
767
+ })
768
+ .strict();
769
+ export const assetAllocationLineInputSchema = z
770
+ .object({
771
+ id: uuidSchema.optional(),
772
+ line_no: z.number().int().positive().optional(),
773
+ quantity: nonNegativeDecimalSchema,
774
+ employee_name: optionalText(200),
775
+ depr_expense_coa_code: optionalText(50),
776
+ attributes: z.array(z.string().max(255).nullable()).max(12).optional(),
777
+ description: optionalText(512),
778
+ reference: optionalText(256),
779
+ remark: optionalText(512),
780
+ })
781
+ .strict();
782
+ const saveBaseShape = {
783
+ context: writeContextSchema,
784
+ idempotency_key: uuidSchema,
785
+ };
786
+ export const saveAssetInputSchema = z.discriminatedUnion('target', [
787
+ z
788
+ .object({
789
+ target: z.literal('card'),
790
+ ...saveBaseShape,
791
+ mutation: z.discriminatedUnion('operation', [
792
+ z
793
+ .object({
794
+ operation: z.literal('create'),
795
+ values: assetCardCreateValuesSchema,
796
+ })
797
+ .strict(),
798
+ z
799
+ .object({
800
+ operation: z.literal('update'),
801
+ card_id: uuidSchema,
802
+ version: z.number().int().nonnegative(),
803
+ values: assetCardSaveValuesSchema,
804
+ })
805
+ .strict(),
806
+ ]),
807
+ })
808
+ .strict(),
809
+ z
810
+ .object({
811
+ target: z.literal('finance'),
812
+ ...saveBaseShape,
813
+ mutation: z.discriminatedUnion('operation', [
814
+ z
815
+ .object({
816
+ operation: z.literal('create'),
817
+ card_id: uuidSchema,
818
+ values: assetFinanceCreateValuesSchema,
819
+ })
820
+ .strict(),
821
+ z
822
+ .object({
823
+ operation: z.literal('update'),
824
+ finance_id: uuidSchema,
825
+ version: z.number().int().nonnegative(),
826
+ values: assetFinanceSaveValuesSchema,
827
+ })
828
+ .strict(),
829
+ ]),
830
+ })
831
+ .strict(),
832
+ z
833
+ .object({
834
+ target: z.literal('source_lines'),
835
+ ...saveBaseShape,
836
+ mutation: z.discriminatedUnion('operation', [
837
+ z
838
+ .object({
839
+ operation: z.literal('add'),
840
+ finance_id: uuidSchema,
841
+ lines: z.array(assetSourceLineInputSchema).min(1).max(500),
842
+ })
843
+ .strict(),
844
+ z
845
+ .object({
846
+ operation: z.literal('replace'),
847
+ finance_id: uuidSchema,
848
+ lines: z.array(assetSourceLineInputSchema).min(1).max(500),
849
+ })
850
+ .strict(),
851
+ ]),
852
+ })
853
+ .strict(),
854
+ z
855
+ .object({
856
+ target: z.literal('allocation_lines'),
857
+ ...saveBaseShape,
858
+ mutation: z
859
+ .object({
860
+ operation: z.literal('replace'),
861
+ finance_id: uuidSchema,
862
+ lines: z.array(assetAllocationLineInputSchema).min(1).max(500),
863
+ })
864
+ .strict(),
865
+ })
866
+ .strict(),
867
+ ]);
868
+ const specializedAssetWriteBaseShape = {
869
+ context: writeContextSchema,
870
+ idempotency_key: uuidSchema,
871
+ };
872
+ export const saveAssetCardInputSchema = z.discriminatedUnion('operation', [
873
+ z
874
+ .object({
875
+ operation: z.literal('create'),
876
+ ...specializedAssetWriteBaseShape,
877
+ values: assetCardCreateValuesSchema,
878
+ })
879
+ .strict(),
880
+ z
881
+ .object({
882
+ operation: z.literal('update'),
883
+ ...specializedAssetWriteBaseShape,
884
+ card_id: uuidSchema,
885
+ version: z.number().int().nonnegative(),
886
+ values: assetCardSaveValuesSchema,
887
+ })
888
+ .strict(),
889
+ ]);
890
+ export const saveAssetFinanceInputSchema = z.discriminatedUnion('operation', [
891
+ z
892
+ .object({
893
+ operation: z.literal('create'),
894
+ ...specializedAssetWriteBaseShape,
895
+ card_id: uuidSchema,
896
+ values: assetFinanceCreateValuesSchema,
897
+ })
898
+ .strict(),
899
+ z
900
+ .object({
901
+ operation: z.literal('update'),
902
+ ...specializedAssetWriteBaseShape,
903
+ finance_id: uuidSchema,
904
+ version: z.number().int().nonnegative(),
905
+ values: assetFinanceSaveValuesSchema,
906
+ })
907
+ .strict(),
908
+ ]);
909
+ export const saveAssetSourceLinesInputSchema = z
910
+ .object({
911
+ operation: z.enum(['add', 'replace']),
912
+ ...specializedAssetWriteBaseShape,
913
+ finance_id: uuidSchema,
914
+ lines: z.array(assetSourceLineInputSchema).min(1).max(500),
915
+ })
916
+ .strict();
917
+ export const replaceAssetAllocationLinesInputSchema = z
918
+ .object({
919
+ ...specializedAssetWriteBaseShape,
920
+ finance_id: uuidSchema,
921
+ lines: z.array(assetAllocationLineInputSchema).min(1).max(500),
922
+ })
923
+ .strict();
924
+ export const saveAssetCardOutputSchema = successEnvelopeSchema(z
925
+ .object({
926
+ operation: z.enum(['created', 'updated']),
927
+ card: z
928
+ .object({
929
+ id: uuidSchema,
930
+ version: z.number().int().nonnegative().nullable(),
931
+ })
932
+ .strict(),
933
+ })
934
+ .strict());
935
+ export const saveAssetFinanceOutputSchema = successEnvelopeSchema(z
936
+ .object({
937
+ operation: z.enum(['created', 'updated']),
938
+ finance: z
939
+ .object({
940
+ id: uuidSchema,
941
+ version: z.number().int().nonnegative().nullable(),
942
+ })
943
+ .strict(),
944
+ })
945
+ .strict());
946
+ export const saveAssetSourceLinesOutputSchema = successEnvelopeSchema(z
947
+ .object({
948
+ operation: z.enum(['added', 'replaced']),
949
+ finance_id: uuidSchema,
950
+ line_count: z.number().int().nonnegative(),
951
+ })
952
+ .strict());
953
+ export const replaceAssetAllocationLinesOutputSchema = successEnvelopeSchema(z
954
+ .object({
955
+ operation: z.literal('replaced'),
956
+ finance_id: uuidSchema,
957
+ line_count: z.number().int().nonnegative(),
958
+ })
959
+ .strict());
960
+ //# sourceMappingURL=assets.js.map