shutro-erp 0.3.4 → 0.3.5

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 (381) hide show
  1. package/dist/account_portal/.kosh/bindings.js +1 -1
  2. package/dist/account_portal/.kosh/schema.d.ts +54 -3
  3. package/dist/account_portal/module.d.ts +359 -6
  4. package/dist/accounting/.kosh/bindings.js +1 -1
  5. package/dist/accounting/.kosh/schema.d.ts +54 -3
  6. package/dist/accounting/index.js +214 -2
  7. package/dist/accounting/module.d.ts +217 -5
  8. package/dist/accounting/module.js +23 -2
  9. package/dist/calendar/.kosh/bindings.d.ts +22 -0
  10. package/dist/calendar/.kosh/bindings.js +15 -0
  11. package/dist/calendar/.kosh/schema.d.ts +795 -0
  12. package/dist/calendar/demo.d.ts +6 -0
  13. package/dist/calendar/demo.js +24 -0
  14. package/dist/calendar/index.d.ts +3 -0
  15. package/dist/calendar/index.js +291 -0
  16. package/dist/calendar/module.d.ts +1705 -0
  17. package/dist/calendar/module.js +180 -0
  18. package/dist/cli/init.js +48 -0
  19. package/dist/cli/templates.d.ts +1 -1
  20. package/dist/cli/templates.js +137 -0
  21. package/dist/contacts/.kosh/bindings.js +1 -1
  22. package/dist/contacts/.kosh/schema.d.ts +78 -3
  23. package/dist/contacts/demo.js +30 -1
  24. package/dist/contacts/index.d.ts +1 -1
  25. package/dist/contacts/index.js +155 -9
  26. package/dist/contacts/module.d.ts +338 -2
  27. package/dist/contacts/module.js +82 -5
  28. package/dist/crm/.kosh/bindings.d.ts +22 -0
  29. package/dist/crm/.kosh/bindings.js +15 -0
  30. package/dist/crm/.kosh/schema.d.ts +799 -0
  31. package/dist/crm/demo.d.ts +6 -0
  32. package/dist/crm/demo.js +45 -0
  33. package/dist/crm/index.d.ts +3 -0
  34. package/dist/crm/index.js +361 -0
  35. package/dist/crm/module.d.ts +1843 -0
  36. package/dist/crm/module.js +207 -0
  37. package/dist/event/.kosh/bindings.d.ts +22 -0
  38. package/dist/event/.kosh/bindings.js +15 -0
  39. package/dist/event/.kosh/schema.d.ts +843 -0
  40. package/dist/event/demo.d.ts +6 -0
  41. package/dist/event/demo.js +65 -0
  42. package/dist/event/index.d.ts +14 -0
  43. package/dist/event/index.js +333 -0
  44. package/dist/event/mails.d.ts +15 -0
  45. package/dist/event/mails.js +112 -0
  46. package/dist/event/module.d.ts +2800 -0
  47. package/dist/event/module.js +323 -0
  48. package/dist/event/web/CheckInBox.d.ts +9 -0
  49. package/dist/event/web/CheckInBox.js +87 -0
  50. package/dist/event/web/index.d.ts +11 -0
  51. package/dist/event/web/index.js +16 -0
  52. package/dist/event/web/messages.d.ts +2 -0
  53. package/dist/event/web/messages.js +23 -0
  54. package/dist/event_account/.kosh/bindings.d.ts +22 -0
  55. package/dist/event_account/.kosh/bindings.js +15 -0
  56. package/dist/event_account/.kosh/schema.d.ts +1639 -0
  57. package/dist/event_account/index.d.ts +3 -0
  58. package/dist/event_account/index.js +28 -0
  59. package/dist/event_account/module.d.ts +6968 -0
  60. package/dist/event_account/module.js +90 -0
  61. package/dist/hr/.kosh/bindings.d.ts +22 -0
  62. package/dist/hr/.kosh/bindings.js +15 -0
  63. package/dist/hr/.kosh/schema.d.ts +878 -0
  64. package/dist/hr/demo.d.ts +6 -0
  65. package/dist/hr/demo.js +60 -0
  66. package/dist/hr/index.d.ts +3 -0
  67. package/dist/hr/index.js +483 -0
  68. package/dist/hr/module.d.ts +2611 -0
  69. package/dist/hr/module.js +350 -0
  70. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  71. package/dist/l10n_bd/.kosh/schema.d.ts +54 -3
  72. package/dist/l10n_bd/module.d.ts +359 -6
  73. package/dist/l10n_in/.kosh/bindings.js +1 -1
  74. package/dist/l10n_in/.kosh/schema.d.ts +54 -3
  75. package/dist/l10n_in/module.d.ts +380 -7
  76. package/dist/maintenance/.kosh/bindings.d.ts +22 -0
  77. package/dist/maintenance/.kosh/bindings.js +15 -0
  78. package/dist/maintenance/.kosh/schema.d.ts +911 -0
  79. package/dist/maintenance/demo.d.ts +6 -0
  80. package/dist/maintenance/demo.js +60 -0
  81. package/dist/maintenance/index.d.ts +3 -0
  82. package/dist/maintenance/index.js +422 -0
  83. package/dist/maintenance/module.d.ts +3545 -0
  84. package/dist/maintenance/module.js +446 -0
  85. package/dist/maintenance_stock/.kosh/bindings.d.ts +22 -0
  86. package/dist/maintenance_stock/.kosh/bindings.js +15 -0
  87. package/dist/maintenance_stock/.kosh/schema.d.ts +1371 -0
  88. package/dist/maintenance_stock/index.d.ts +9 -0
  89. package/dist/maintenance_stock/index.js +52 -0
  90. package/dist/maintenance_stock/module.d.ts +6953 -0
  91. package/dist/maintenance_stock/module.js +192 -0
  92. package/dist/modules-sdk/index.d.ts +1 -1
  93. package/dist/modules-sdk/manifest.d.ts +70 -0
  94. package/dist/modules-sdk/manifest.js +35 -1
  95. package/dist/mrp/.kosh/bindings.d.ts +22 -0
  96. package/dist/mrp/.kosh/bindings.js +15 -0
  97. package/dist/mrp/.kosh/schema.d.ts +1378 -0
  98. package/dist/mrp/demo.d.ts +7 -0
  99. package/dist/mrp/demo.js +42 -0
  100. package/dist/mrp/index.d.ts +3 -0
  101. package/dist/mrp/index.js +392 -0
  102. package/dist/mrp/module.d.ts +8608 -0
  103. package/dist/mrp/module.js +695 -0
  104. package/dist/mrp_account/.kosh/bindings.d.ts +22 -0
  105. package/dist/mrp_account/.kosh/bindings.js +15 -0
  106. package/dist/mrp_account/.kosh/schema.d.ts +2106 -0
  107. package/dist/mrp_account/index.d.ts +3 -0
  108. package/dist/mrp_account/index.js +22 -0
  109. package/dist/mrp_account/module.d.ts +20840 -0
  110. package/dist/mrp_account/module.js +123 -0
  111. package/dist/payment/.kosh/bindings.js +1 -1
  112. package/dist/payment/.kosh/schema.d.ts +54 -3
  113. package/dist/payment/module.d.ts +359 -6
  114. package/dist/portal/.kosh/bindings.js +1 -1
  115. package/dist/portal/.kosh/schema.d.ts +78 -3
  116. package/dist/portal/module.d.ts +166 -2
  117. package/dist/pos/.kosh/bindings.d.ts +22 -0
  118. package/dist/pos/.kosh/bindings.js +15 -0
  119. package/dist/pos/.kosh/schema.d.ts +1690 -0
  120. package/dist/pos/accounting.d.ts +10 -0
  121. package/dist/pos/accounting.js +149 -0
  122. package/dist/pos/demo.d.ts +6 -0
  123. package/dist/pos/demo.js +90 -0
  124. package/dist/pos/index.d.ts +9 -0
  125. package/dist/pos/index.js +349 -0
  126. package/dist/pos/module.d.ts +9636 -0
  127. package/dist/pos/module.js +423 -0
  128. package/dist/pos/routes.d.ts +39 -0
  129. package/dist/pos/routes.js +368 -0
  130. package/dist/pos/web/Register.d.ts +9 -0
  131. package/dist/pos/web/Register.js +252 -0
  132. package/dist/pos/web/index.d.ts +11 -0
  133. package/dist/pos/web/index.js +16 -0
  134. package/dist/pos/web/messages.d.ts +2 -0
  135. package/dist/pos/web/messages.js +87 -0
  136. package/dist/pos_stock/.kosh/bindings.d.ts +22 -0
  137. package/dist/pos_stock/.kosh/bindings.js +15 -0
  138. package/dist/pos_stock/.kosh/schema.d.ts +2015 -0
  139. package/dist/pos_stock/index.d.ts +9 -0
  140. package/dist/pos_stock/index.js +35 -0
  141. package/dist/pos_stock/module.d.ts +11935 -0
  142. package/dist/pos_stock/module.js +115 -0
  143. package/dist/product/.kosh/bindings.js +1 -1
  144. package/dist/product/.kosh/schema.d.ts +51 -1
  145. package/dist/product/index.js +81 -4
  146. package/dist/product/module.d.ts +43 -1
  147. package/dist/product/module.js +9 -2
  148. package/dist/project/.kosh/bindings.js +1 -1
  149. package/dist/project/.kosh/schema.d.ts +54 -3
  150. package/dist/project/index.js +147 -7
  151. package/dist/project/module.d.ts +210 -2
  152. package/dist/project/module.js +52 -5
  153. package/dist/project_portal/.kosh/bindings.js +1 -1
  154. package/dist/project_portal/.kosh/schema.d.ts +54 -3
  155. package/dist/project_portal/module.d.ts +353 -4
  156. package/dist/purchase/.kosh/bindings.js +1 -1
  157. package/dist/purchase/.kosh/schema.d.ts +54 -3
  158. package/dist/purchase/index.js +163 -3
  159. package/dist/purchase/module.d.ts +215 -3
  160. package/dist/purchase/module.js +21 -3
  161. package/dist/purchase_account/.kosh/bindings.js +1 -1
  162. package/dist/purchase_account/.kosh/schema.d.ts +55 -3
  163. package/dist/purchase_account/index.js +26 -1
  164. package/dist/purchase_account/module.d.ts +393 -7
  165. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  166. package/dist/purchase_portal/.kosh/schema.d.ts +54 -3
  167. package/dist/purchase_portal/module.d.ts +366 -5
  168. package/dist/purchase_stock/.kosh/bindings.d.ts +22 -0
  169. package/dist/purchase_stock/.kosh/bindings.js +15 -0
  170. package/dist/purchase_stock/.kosh/schema.d.ts +1310 -0
  171. package/dist/purchase_stock/index.d.ts +7 -0
  172. package/dist/purchase_stock/index.js +91 -0
  173. package/dist/purchase_stock/module.d.ts +6763 -0
  174. package/dist/purchase_stock/module.js +144 -0
  175. package/dist/purchase_stock_account/.kosh/bindings.d.ts +22 -0
  176. package/dist/purchase_stock_account/.kosh/bindings.js +15 -0
  177. package/dist/purchase_stock_account/.kosh/schema.d.ts +1959 -0
  178. package/dist/purchase_stock_account/index.d.ts +3 -0
  179. package/dist/purchase_stock_account/index.js +24 -0
  180. package/dist/purchase_stock_account/module.d.ts +35366 -0
  181. package/dist/purchase_stock_account/module.js +162 -0
  182. package/dist/recruitment/.kosh/bindings.d.ts +22 -0
  183. package/dist/recruitment/.kosh/bindings.js +15 -0
  184. package/dist/recruitment/.kosh/schema.d.ts +990 -0
  185. package/dist/recruitment/demo.d.ts +6 -0
  186. package/dist/recruitment/demo.js +45 -0
  187. package/dist/recruitment/index.d.ts +3 -0
  188. package/dist/recruitment/index.js +385 -0
  189. package/dist/recruitment/module.d.ts +3247 -0
  190. package/dist/recruitment/module.js +193 -0
  191. package/dist/recruitment/web/HireButton.d.ts +9 -0
  192. package/dist/recruitment/web/HireButton.js +32 -0
  193. package/dist/recruitment/web/index.d.ts +11 -0
  194. package/dist/recruitment/web/index.js +16 -0
  195. package/dist/recruitment/web/messages.d.ts +2 -0
  196. package/dist/recruitment/web/messages.js +19 -0
  197. package/dist/reporting/documents.d.ts +5 -0
  198. package/dist/reporting/documents.js +28 -1
  199. package/dist/reporting/index.d.ts +1 -1
  200. package/dist/reporting/index.js +4 -2
  201. package/dist/reporting/models.js +9 -0
  202. package/dist/reporting/overviews.d.ts +16 -0
  203. package/dist/reporting/overviews.js +56 -0
  204. package/dist/reporting/routes-documents.js +1 -1
  205. package/dist/reporting/routes.js +138 -80
  206. package/dist/reporting/web/DashboardView.d.ts +11 -0
  207. package/dist/reporting/web/DashboardView.js +2 -2
  208. package/dist/reporting/web/DesignerView.js +5 -0
  209. package/dist/reporting/web/Overview.d.ts +9 -0
  210. package/dist/reporting/web/Overview.js +53 -0
  211. package/dist/reporting/web/index.d.ts +1 -0
  212. package/dist/reporting/web/index.js +4 -1
  213. package/dist/reporting/web/messages.js +9 -0
  214. package/dist/sale_account/.kosh/bindings.js +1 -1
  215. package/dist/sale_account/.kosh/schema.d.ts +59 -3
  216. package/dist/sale_account/index.js +22 -1
  217. package/dist/sale_account/module.d.ts +461 -7
  218. package/dist/sale_portal/.kosh/bindings.js +1 -1
  219. package/dist/sale_portal/.kosh/schema.d.ts +58 -3
  220. package/dist/sale_portal/module.d.ts +434 -5
  221. package/dist/sale_project/.kosh/bindings.js +1 -1
  222. package/dist/sale_project/.kosh/schema.d.ts +60 -3
  223. package/dist/sale_project/module.d.ts +476 -6
  224. package/dist/sale_stock/.kosh/bindings.d.ts +22 -0
  225. package/dist/sale_stock/.kosh/bindings.js +15 -0
  226. package/dist/sale_stock/.kosh/schema.d.ts +1228 -0
  227. package/dist/sale_stock/index.d.ts +7 -0
  228. package/dist/sale_stock/index.js +84 -0
  229. package/dist/sale_stock/module.d.ts +6791 -0
  230. package/dist/sale_stock/module.js +146 -0
  231. package/dist/sales/.kosh/bindings.js +1 -1
  232. package/dist/sales/.kosh/schema.d.ts +58 -3
  233. package/dist/sales/index.js +191 -4
  234. package/dist/sales/module.d.ts +355 -3
  235. package/dist/sales/module.js +78 -3
  236. package/dist/server/api/metadata.d.ts +5 -0
  237. package/dist/server/api/metadata.js +5 -0
  238. package/dist/server/api/rest.js +64 -1
  239. package/dist/server/api/views.js +1 -0
  240. package/dist/server/app-settings.d.ts +7 -0
  241. package/dist/server/app-settings.js +10 -0
  242. package/dist/server/auth/base.js +9 -0
  243. package/dist/server/index.d.ts +1 -0
  244. package/dist/server/index.js +1 -0
  245. package/dist/settings/app-settings.d.ts +2 -0
  246. package/dist/settings/app-settings.js +518 -0
  247. package/dist/settings/index.d.ts +1 -0
  248. package/dist/settings/index.js +15 -0
  249. package/dist/settings/people.js +29 -5
  250. package/dist/settings/web/AppSettingsPage.d.ts +11 -0
  251. package/dist/settings/web/AppSettingsPage.js +210 -0
  252. package/dist/settings/web/OverviewPage.js +16 -3
  253. package/dist/settings/web/PeoplePage.js +20 -6
  254. package/dist/settings/web/index.d.ts +1 -0
  255. package/dist/settings/web/index.js +3 -0
  256. package/dist/settings/web/messages.js +118 -2
  257. package/dist/stock/.kosh/bindings.d.ts +22 -0
  258. package/dist/stock/.kosh/bindings.js +15 -0
  259. package/dist/stock/.kosh/schema.d.ts +1147 -0
  260. package/dist/stock/demo.d.ts +7 -0
  261. package/dist/stock/demo.js +55 -0
  262. package/dist/stock/index.d.ts +3 -0
  263. package/dist/stock/index.js +674 -0
  264. package/dist/stock/module.d.ts +6330 -0
  265. package/dist/stock/module.js +1325 -0
  266. package/dist/stock/web/ScanBox.d.ts +8 -0
  267. package/dist/stock/web/ScanBox.js +90 -0
  268. package/dist/stock/web/index.d.ts +11 -0
  269. package/dist/stock/web/index.js +16 -0
  270. package/dist/stock/web/messages.d.ts +2 -0
  271. package/dist/stock/web/messages.js +25 -0
  272. package/dist/stock_account/.kosh/bindings.d.ts +22 -0
  273. package/dist/stock_account/.kosh/bindings.js +15 -0
  274. package/dist/stock_account/.kosh/schema.d.ts +1875 -0
  275. package/dist/stock_account/index.d.ts +3 -0
  276. package/dist/stock_account/index.js +130 -0
  277. package/dist/stock_account/module.d.ts +10655 -0
  278. package/dist/stock_account/module.js +339 -0
  279. package/dist/storage/attachments.d.ts +5 -0
  280. package/dist/storage/attachments.js +12 -1
  281. package/dist/storage/models.js +3 -0
  282. package/dist/storage/routes.js +13 -2
  283. package/dist/todo/.kosh/bindings.d.ts +22 -0
  284. package/dist/todo/.kosh/bindings.js +15 -0
  285. package/dist/todo/.kosh/schema.d.ts +732 -0
  286. package/dist/todo/demo.d.ts +6 -0
  287. package/dist/todo/demo.js +35 -0
  288. package/dist/todo/index.d.ts +3 -0
  289. package/dist/todo/index.js +187 -0
  290. package/dist/todo/module.d.ts +1180 -0
  291. package/dist/todo/module.js +130 -0
  292. package/dist/trade_finance/.kosh/bindings.d.ts +22 -0
  293. package/dist/trade_finance/.kosh/bindings.js +15 -0
  294. package/dist/trade_finance/.kosh/schema.d.ts +884 -0
  295. package/dist/trade_finance/demo.d.ts +6 -0
  296. package/dist/trade_finance/demo.js +63 -0
  297. package/dist/trade_finance/index.d.ts +3 -0
  298. package/dist/trade_finance/index.js +413 -0
  299. package/dist/trade_finance/module.d.ts +3779 -0
  300. package/dist/trade_finance/module.js +505 -0
  301. package/dist/trade_finance_account/.kosh/bindings.d.ts +22 -0
  302. package/dist/trade_finance_account/.kosh/bindings.js +15 -0
  303. package/dist/trade_finance_account/.kosh/schema.d.ts +1711 -0
  304. package/dist/trade_finance_account/index.d.ts +3 -0
  305. package/dist/trade_finance_account/index.js +92 -0
  306. package/dist/trade_finance_account/module.d.ts +7928 -0
  307. package/dist/trade_finance_account/module.js +244 -0
  308. package/dist/trade_finance_purchase/.kosh/bindings.d.ts +22 -0
  309. package/dist/trade_finance_purchase/.kosh/bindings.js +15 -0
  310. package/dist/trade_finance_purchase/.kosh/schema.d.ts +1153 -0
  311. package/dist/trade_finance_purchase/index.d.ts +8 -0
  312. package/dist/trade_finance_purchase/index.js +50 -0
  313. package/dist/trade_finance_purchase/module.d.ts +4252 -0
  314. package/dist/trade_finance_purchase/module.js +44 -0
  315. package/dist/trade_finance_sale/.kosh/bindings.d.ts +22 -0
  316. package/dist/trade_finance_sale/.kosh/bindings.js +15 -0
  317. package/dist/trade_finance_sale/.kosh/schema.d.ts +1071 -0
  318. package/dist/trade_finance_sale/index.d.ts +8 -0
  319. package/dist/trade_finance_sale/index.js +50 -0
  320. package/dist/trade_finance_sale/module.d.ts +4280 -0
  321. package/dist/trade_finance_sale/module.js +44 -0
  322. package/dist/ui/api.d.ts +2 -1
  323. package/dist/ui/api.js +2 -1
  324. package/dist/ui/app.js +2 -1
  325. package/dist/ui/components/AppIcon.js +23 -1
  326. package/dist/ui/components/primitives.d.ts +2 -0
  327. package/dist/ui/components/primitives.js +7 -1
  328. package/dist/ui/i18n/messages.d.ts +23 -0
  329. package/dist/ui/i18n/messages.js +38 -0
  330. package/dist/ui/index.d.ts +1 -0
  331. package/dist/ui/index.js +1 -0
  332. package/dist/ui/offline/queue.d.ts +5 -1
  333. package/dist/ui/offline/queue.js +2 -0
  334. package/dist/ui/registry.d.ts +5 -0
  335. package/dist/ui/shell/Home.js +55 -4
  336. package/dist/ui/views/FormView.js +98 -17
  337. package/dist/ui/views/KanbanView.d.ts +2 -0
  338. package/dist/ui/views/KanbanView.js +32 -3
  339. package/dist/ui/views/ListView.js +108 -11
  340. package/dist/ui/views/StatsRow.d.ts +14 -0
  341. package/dist/ui/views/StatsRow.js +88 -0
  342. package/dist/ui/views/widgets.d.ts +2 -1
  343. package/dist/ui/views/widgets.js +194 -1
  344. package/dist/views/builders.d.ts +19 -2
  345. package/dist/views/builders.js +21 -1
  346. package/dist/views/condition.d.ts +6 -0
  347. package/dist/views/condition.js +20 -0
  348. package/dist/views/documents.d.ts +8 -0
  349. package/dist/views/extend.d.ts +2 -2
  350. package/dist/views/extend.js +11 -1
  351. package/dist/views/index.d.ts +2 -2
  352. package/dist/views/index.js +2 -2
  353. package/dist/views/types.d.ts +52 -5
  354. package/dist/views/validate.js +39 -1
  355. package/dist/website/.kosh/bindings.d.ts +22 -0
  356. package/dist/website/.kosh/bindings.js +15 -0
  357. package/dist/website/.kosh/schema.d.ts +881 -0
  358. package/dist/website/demo.d.ts +6 -0
  359. package/dist/website/demo.js +115 -0
  360. package/dist/website/index.d.ts +9 -0
  361. package/dist/website/index.js +250 -0
  362. package/dist/website/module.d.ts +2987 -0
  363. package/dist/website/module.js +281 -0
  364. package/dist/website/render.d.ts +45 -0
  365. package/dist/website/render.js +102 -0
  366. package/dist/website/routes.d.ts +12 -0
  367. package/dist/website/routes.js +246 -0
  368. package/dist/website/web/PagePreview.d.ts +7 -0
  369. package/dist/website/web/PagePreview.js +33 -0
  370. package/dist/website/web/index.d.ts +11 -0
  371. package/dist/website/web/index.js +16 -0
  372. package/dist/website/web/messages.d.ts +2 -0
  373. package/dist/website/web/messages.js +15 -0
  374. package/dist/website_crm/.kosh/bindings.d.ts +22 -0
  375. package/dist/website_crm/.kosh/bindings.js +15 -0
  376. package/dist/website_crm/.kosh/schema.d.ts +966 -0
  377. package/dist/website_crm/index.d.ts +3 -0
  378. package/dist/website_crm/index.js +39 -0
  379. package/dist/website_crm/module.d.ts +2955 -0
  380. package/dist/website_crm/module.js +44 -0
  381. package/package.json +118 -1
@@ -0,0 +1,1371 @@
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 4ad794c3cc1ba92b
2
+ // Schema view of module `maintenance_stock` (RFC 0002 §7.7): the models it owns or depends on, with the extensions it can see.
3
+ import type { F } from '../../server/orm.js';
4
+
5
+ /** Model name → model type (RFC 0002 §7.7). */
6
+ export interface SchemaView {
7
+ readonly 'account.tax': AccountTax;
8
+ readonly 'audit.event': AuditEvent;
9
+ readonly 'auth.api_key': AuthApiKey;
10
+ readonly 'auth.credential': AuthCredential;
11
+ readonly 'auth.policy': AuthPolicy;
12
+ readonly 'auth.session': AuthSession;
13
+ readonly 'auth.user_grant': AuthUserGrant;
14
+ readonly 'auth.user_group': AuthUserGroup;
15
+ readonly 'kosh.image': KoshImage;
16
+ readonly 'kosh.saved_view': KoshSavedView;
17
+ readonly 'kosh.setting': KoshSetting;
18
+ readonly 'mail.activity': MailActivity;
19
+ readonly 'mail.activity.type': MailActivityType;
20
+ readonly 'mail.channel': MailChannel;
21
+ readonly 'mail.channel.member': MailChannelMember;
22
+ readonly 'mail.follower': MailFollower;
23
+ readonly 'mail.message': MailMessage;
24
+ readonly 'mail.message.reaction': MailMessageReaction;
25
+ readonly 'maintenance.equipment': MaintenanceEquipment;
26
+ readonly 'maintenance.meter': MaintenanceMeter;
27
+ readonly 'maintenance.meter.reading': MaintenanceMeterReading;
28
+ readonly 'maintenance.plan': MaintenancePlan;
29
+ readonly 'maintenance.plan.task': MaintenancePlanTask;
30
+ readonly 'maintenance.request': MaintenanceRequest;
31
+ readonly 'maintenance.request.part': MaintenanceRequestPart;
32
+ readonly 'maintenance.request.task': MaintenanceRequestTask;
33
+ readonly 'oauth.app': OauthApp;
34
+ readonly 'oauth.code': OauthCode;
35
+ readonly 'oauth.grant': OauthGrant;
36
+ readonly 'oauth.token': OauthToken;
37
+ readonly 'product.category': ProductCategory;
38
+ readonly 'product.product': ProductProduct;
39
+ readonly 'res.company': ResCompany;
40
+ readonly 'res.currency': ResCurrency;
41
+ readonly 'res.partner': ResPartner;
42
+ readonly 'res.partner.tag': ResPartnerTag;
43
+ readonly 'res.users': ResUsers;
44
+ readonly 'stock.count': StockCount;
45
+ readonly 'stock.count.line': StockCountLine;
46
+ readonly 'stock.location': StockLocation;
47
+ readonly 'stock.lot': StockLot;
48
+ readonly 'stock.lot.line': StockLotLine;
49
+ readonly 'stock.move': StockMove;
50
+ readonly 'stock.picking': StockPicking;
51
+ readonly 'stock.quant': StockQuant;
52
+ readonly 'stock.reservation': StockReservation;
53
+ readonly 'stock.scrap': StockScrap;
54
+ readonly 'stock.warehouse': StockWarehouse;
55
+ readonly 'storage.attachment': StorageAttachment;
56
+ readonly 'uom.uom': UomUom;
57
+ }
58
+
59
+ /** `account.tax` (owner: product). */
60
+ export interface AccountTax {
61
+ readonly name: 'account.tax';
62
+ readonly fields: {
63
+ readonly id: F.Id<'account.tax'>;
64
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
65
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
66
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
67
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
68
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
69
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
70
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
71
+ readonly use: F.Selection<'sale' | 'purchase', { readonly required: true; readonly default: true }>;
72
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
73
+ readonly amountType: F.Selection<'percent' | 'fixed', { readonly required: true; readonly default: true }>;
74
+ readonly rate: F.Decimal<{ readonly required: true; readonly default: true }>;
75
+ readonly fixedAmount: F.Decimal<{ readonly required: true; readonly default: true }>;
76
+ readonly affectsBase: F.Bool<{ readonly required: true; readonly default: true }>;
77
+ readonly priceIncluded: F.Bool<{ readonly required: true; readonly default: true }>;
78
+ readonly reverseCharge: F.Bool<{ readonly required: true; readonly default: true }>;
79
+ };
80
+ readonly methods: AccountTaxMethods;
81
+ }
82
+
83
+ /** Methods of `account.tax`: declared ones and transitions. */
84
+ export interface AccountTaxMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'account.tax'> {
85
+ }
86
+
87
+ /** `audit.event` (owner: base). */
88
+ export interface AuditEvent {
89
+ readonly name: 'audit.event';
90
+ readonly fields: {
91
+ readonly id: F.Id<'audit.event'>;
92
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
93
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
94
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
95
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
96
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
97
+ readonly kind: F.Char<{ readonly required: true }>;
98
+ readonly actor: F.Many2one<'res.users'>;
99
+ readonly company: F.Many2one<'res.company'>;
100
+ readonly targetModel: F.Char;
101
+ readonly targetId: F.Integer;
102
+ readonly summary: F.Char<{ readonly required: true }>;
103
+ readonly details: F.Json;
104
+ readonly ip: F.Char;
105
+ };
106
+ readonly methods: AuditEventMethods;
107
+ }
108
+
109
+ /** Methods of `audit.event`: declared ones and transitions. */
110
+ export interface AuditEventMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'audit.event'> {
111
+ }
112
+
113
+ /** `auth.api_key` (owner: base). */
114
+ export interface AuthApiKey {
115
+ readonly name: 'auth.api_key';
116
+ readonly fields: {
117
+ readonly id: F.Id<'auth.api_key'>;
118
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
119
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
120
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
121
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
122
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
123
+ readonly name: F.Char<{ readonly required: true }>;
124
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
125
+ readonly tokenHash: F.Char<{ readonly required: true }>;
126
+ readonly prefix: F.Char<{ readonly required: true }>;
127
+ readonly scopes: F.Text<{ readonly required: true }>;
128
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
129
+ readonly lastUsedAt: F.Datetime;
130
+ readonly lastUsedIp: F.Char;
131
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
132
+ readonly issuedBy: F.Many2one<'res.users'>;
133
+ };
134
+ readonly methods: AuthApiKeyMethods;
135
+ }
136
+
137
+ /** Methods of `auth.api_key`: declared ones and transitions. */
138
+ export interface AuthApiKeyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.api_key'> {
139
+ }
140
+
141
+ /** `auth.credential` (owner: base). */
142
+ export interface AuthCredential {
143
+ readonly name: 'auth.credential';
144
+ readonly fields: {
145
+ readonly id: F.Id<'auth.credential'>;
146
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
147
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
148
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
149
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
150
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
151
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
152
+ readonly passwordHash: F.Char;
153
+ readonly totpSecret: F.Char;
154
+ readonly totpEnabled: F.Bool<{ readonly required: true; readonly default: true }>;
155
+ readonly recoveryCodes: F.Json;
156
+ };
157
+ readonly methods: AuthCredentialMethods;
158
+ }
159
+
160
+ /** Methods of `auth.credential`: declared ones and transitions. */
161
+ export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
162
+ }
163
+
164
+ /** `auth.policy` (owner: base). */
165
+ export interface AuthPolicy {
166
+ readonly name: 'auth.policy';
167
+ readonly fields: {
168
+ readonly id: F.Id<'auth.policy'>;
169
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
170
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
171
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
172
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
173
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
174
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
175
+ readonly sessionDays: F.Integer;
176
+ };
177
+ readonly methods: AuthPolicyMethods;
178
+ }
179
+
180
+ /** Methods of `auth.policy`: declared ones and transitions. */
181
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
182
+ }
183
+
184
+ /** `auth.session` (owner: base). */
185
+ export interface AuthSession {
186
+ readonly name: 'auth.session';
187
+ readonly fields: {
188
+ readonly id: F.Id<'auth.session'>;
189
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
190
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
191
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
192
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
193
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
194
+ readonly tokenHash: F.Char<{ readonly required: true }>;
195
+ readonly csrfHash: F.Char<{ readonly required: true }>;
196
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
197
+ readonly twoFactorVerified: F.Bool<{ readonly required: true; readonly default: true }>;
198
+ readonly secondFactor: F.Bool<{ readonly required: true; readonly default: true }>;
199
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
200
+ readonly lastSeenAt: F.Datetime<{ readonly required: true }>;
201
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
202
+ readonly ip: F.Char;
203
+ readonly userAgent: F.Char;
204
+ };
205
+ readonly methods: AuthSessionMethods;
206
+ }
207
+
208
+ /** Methods of `auth.session`: declared ones and transitions. */
209
+ export interface AuthSessionMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.session'> {
210
+ }
211
+
212
+ /** `auth.user_grant` (owner: base). */
213
+ export interface AuthUserGrant {
214
+ readonly name: 'auth.user_grant';
215
+ readonly fields: {
216
+ readonly id: F.Id<'auth.user_grant'>;
217
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
218
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
219
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
220
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
221
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
222
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
223
+ readonly company: F.Many2one<'res.company'>;
224
+ readonly grant: F.Char<{ readonly required: true }>;
225
+ readonly expiresAt: F.Datetime;
226
+ readonly reason: F.Char<{ readonly required: true }>;
227
+ };
228
+ readonly methods: AuthUserGrantMethods;
229
+ }
230
+
231
+ /** Methods of `auth.user_grant`: declared ones and transitions. */
232
+ export interface AuthUserGrantMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_grant'> {
233
+ }
234
+
235
+ /** `auth.user_group` (owner: base). */
236
+ export interface AuthUserGroup {
237
+ readonly name: 'auth.user_group';
238
+ readonly fields: {
239
+ readonly id: F.Id<'auth.user_group'>;
240
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
241
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
242
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
243
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
244
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
245
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
246
+ readonly company: F.Many2one<'res.company'>;
247
+ readonly group: F.Char<{ readonly required: true }>;
248
+ };
249
+ readonly methods: AuthUserGroupMethods;
250
+ }
251
+
252
+ /** Methods of `auth.user_group`: declared ones and transitions. */
253
+ export interface AuthUserGroupMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_group'> {
254
+ }
255
+
256
+ /** `kosh.image` (owner: base). */
257
+ export interface KoshImage {
258
+ readonly name: 'kosh.image';
259
+ readonly fields: {
260
+ readonly id: F.Id<'kosh.image'>;
261
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
262
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
263
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
264
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
265
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
266
+ readonly ownerModel: F.Char<{ readonly required: true }>;
267
+ readonly ownerId: F.Integer<{ readonly required: true }>;
268
+ readonly mime: F.Char<{ readonly required: true }>;
269
+ readonly data: F.Text<{ readonly required: true }>;
270
+ readonly hash: F.Char<{ readonly required: true }>;
271
+ };
272
+ readonly methods: KoshImageMethods;
273
+ }
274
+
275
+ /** Methods of `kosh.image`: declared ones and transitions. */
276
+ export interface KoshImageMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.image'> {
277
+ }
278
+
279
+ /** `kosh.saved_view` (owner: base). */
280
+ export interface KoshSavedView {
281
+ readonly name: 'kosh.saved_view';
282
+ readonly fields: {
283
+ readonly id: F.Id<'kosh.saved_view'>;
284
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
285
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
286
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
287
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
288
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
289
+ readonly name: F.Char<{ readonly required: true }>;
290
+ readonly targetModel: F.Char<{ readonly required: true }>;
291
+ readonly viewType: F.Char<{ readonly required: true; readonly default: true }>;
292
+ readonly state: F.Json<unknown, { readonly required: true }>;
293
+ readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
294
+ readonly isDefault: F.Bool<{ readonly required: true; readonly default: true }>;
295
+ };
296
+ readonly methods: KoshSavedViewMethods;
297
+ }
298
+
299
+ /** Methods of `kosh.saved_view`: declared ones and transitions. */
300
+ export interface KoshSavedViewMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.saved_view'> {
301
+ }
302
+
303
+ /** `kosh.setting` (owner: base). */
304
+ export interface KoshSetting {
305
+ readonly name: 'kosh.setting';
306
+ readonly fields: {
307
+ readonly id: F.Id<'kosh.setting'>;
308
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
309
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
310
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
311
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
312
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
313
+ readonly key: F.Char<{ readonly required: true }>;
314
+ readonly value: F.Json;
315
+ };
316
+ readonly methods: KoshSettingMethods;
317
+ }
318
+
319
+ /** Methods of `kosh.setting`: declared ones and transitions. */
320
+ export interface KoshSettingMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.setting'> {
321
+ }
322
+
323
+ /** `mail.activity` (owner: messaging). */
324
+ export interface MailActivity {
325
+ readonly name: 'mail.activity';
326
+ readonly fields: {
327
+ readonly id: F.Id<'mail.activity'>;
328
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
329
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
330
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
331
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
332
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
333
+ readonly resModel: F.Char<{ readonly required: true }>;
334
+ readonly resId: F.Integer<{ readonly required: true }>;
335
+ readonly type: F.Many2one<'mail.activity.type', { readonly required: true }>;
336
+ readonly summary: F.Char;
337
+ readonly note: F.Text;
338
+ readonly deadline: F.DateOnly<{ readonly required: true }>;
339
+ readonly assignee: F.Many2one<'res.users', { readonly required: true }>;
340
+ readonly done: F.Bool<{ readonly required: true; readonly default: true }>;
341
+ readonly doneAt: F.Datetime;
342
+ readonly feedback: F.Text;
343
+ };
344
+ readonly methods: MailActivityMethods;
345
+ }
346
+
347
+ /** Methods of `mail.activity`: declared ones and transitions. */
348
+ export interface MailActivityMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.activity'> {
349
+ }
350
+
351
+ /** `mail.activity.type` (owner: messaging). */
352
+ export interface MailActivityType {
353
+ readonly name: 'mail.activity.type';
354
+ readonly fields: {
355
+ readonly id: F.Id<'mail.activity.type'>;
356
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
357
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
358
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
359
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
360
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
361
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
362
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
363
+ readonly key: F.Char;
364
+ readonly icon: F.Char<{ readonly default: true }>;
365
+ readonly days: F.Integer<{ readonly default: true }>;
366
+ readonly sequence: F.Integer<{ readonly default: true }>;
367
+ };
368
+ readonly methods: MailActivityTypeMethods;
369
+ }
370
+
371
+ /** Methods of `mail.activity.type`: declared ones and transitions. */
372
+ export interface MailActivityTypeMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.activity.type'> {
373
+ }
374
+
375
+ /** `mail.channel` (owner: messaging). */
376
+ export interface MailChannel {
377
+ readonly name: 'mail.channel';
378
+ readonly fields: {
379
+ readonly id: F.Id<'mail.channel'>;
380
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
381
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
382
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
383
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
384
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
385
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
386
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
387
+ readonly name: F.Char<{ readonly required: true }>;
388
+ readonly kind: F.Selection<'channel' | 'group' | 'direct', { readonly required: true; readonly default: true }>;
389
+ readonly description: F.Char;
390
+ readonly public: F.Bool<{ readonly required: true; readonly default: true }>;
391
+ readonly members: F.One2many<'mail.channel.member', { readonly required: true }>;
392
+ readonly pairKey: F.Char;
393
+ readonly lastMessageAt: F.Datetime;
394
+ };
395
+ readonly methods: MailChannelMethods;
396
+ }
397
+
398
+ /** Methods of `mail.channel`: declared ones and transitions. */
399
+ export interface MailChannelMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.channel'> {
400
+ }
401
+
402
+ /** `mail.channel.member` (owner: messaging). */
403
+ export interface MailChannelMember {
404
+ readonly name: 'mail.channel.member';
405
+ readonly fields: {
406
+ readonly id: F.Id<'mail.channel.member'>;
407
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
408
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
409
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
410
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
411
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
412
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
413
+ readonly channel: F.Many2one<'mail.channel', { readonly required: true }>;
414
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
415
+ readonly lastReadMessage: F.Many2one<'mail.message'>;
416
+ readonly muted: F.Bool<{ readonly required: true; readonly default: true }>;
417
+ readonly pinned: F.Bool<{ readonly required: true; readonly default: true }>;
418
+ };
419
+ readonly methods: MailChannelMemberMethods;
420
+ }
421
+
422
+ /** Methods of `mail.channel.member`: declared ones and transitions. */
423
+ export interface MailChannelMemberMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.channel.member'> {
424
+ }
425
+
426
+ /** `mail.follower` (owner: messaging). */
427
+ export interface MailFollower {
428
+ readonly name: 'mail.follower';
429
+ readonly fields: {
430
+ readonly id: F.Id<'mail.follower'>;
431
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
432
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
433
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
434
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
435
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
436
+ readonly resModel: F.Char<{ readonly required: true }>;
437
+ readonly resId: F.Integer<{ readonly required: true }>;
438
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
439
+ };
440
+ readonly methods: MailFollowerMethods;
441
+ }
442
+
443
+ /** Methods of `mail.follower`: declared ones and transitions. */
444
+ export interface MailFollowerMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.follower'> {
445
+ }
446
+
447
+ /** `mail.message` (owner: messaging). */
448
+ export interface MailMessage {
449
+ readonly name: 'mail.message';
450
+ readonly fields: {
451
+ readonly id: F.Id<'mail.message'>;
452
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
453
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
454
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
455
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
456
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
457
+ readonly resModel: F.Char<{ readonly required: true }>;
458
+ readonly resId: F.Integer<{ readonly required: true }>;
459
+ readonly kind: F.Selection<'comment' | 'note' | 'activity' | 'system', { readonly required: true; readonly default: true }>;
460
+ readonly author: F.Many2one<'res.users'>;
461
+ readonly authorEmail: F.Char;
462
+ readonly authorName: F.Char;
463
+ readonly text: F.Text<{ readonly required: true }>;
464
+ readonly body: F.Text<{ readonly required: true }>;
465
+ readonly mentions: F.Many2many<'res.users', { readonly required: true }>;
466
+ readonly attachments: F.Many2many<'storage.attachment', { readonly required: true }>;
467
+ readonly editedAt: F.Datetime;
468
+ readonly parent: F.Many2one<'mail.message'>;
469
+ readonly replyCount: F.Integer<{ readonly required: true; readonly default: true }>;
470
+ readonly reactions: F.One2many<'mail.message.reaction', { readonly required: true }>;
471
+ readonly deletedAt: F.Datetime;
472
+ };
473
+ readonly methods: MailMessageMethods;
474
+ }
475
+
476
+ /** Methods of `mail.message`: declared ones and transitions. */
477
+ export interface MailMessageMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message'> {
478
+ }
479
+
480
+ /** `mail.message.reaction` (owner: messaging). */
481
+ export interface MailMessageReaction {
482
+ readonly name: 'mail.message.reaction';
483
+ readonly fields: {
484
+ readonly id: F.Id<'mail.message.reaction'>;
485
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
486
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
487
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
488
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
489
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
490
+ readonly message: F.Many2one<'mail.message', { readonly required: true }>;
491
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
492
+ readonly emoji: F.Char<{ readonly required: true }>;
493
+ };
494
+ readonly methods: MailMessageReactionMethods;
495
+ }
496
+
497
+ /** Methods of `mail.message.reaction`: declared ones and transitions. */
498
+ export interface MailMessageReactionMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message.reaction'> {
499
+ }
500
+
501
+ /** `maintenance.equipment` (owner: maintenance). */
502
+ export interface MaintenanceEquipment {
503
+ readonly name: 'maintenance.equipment';
504
+ readonly fields: {
505
+ readonly id: F.Id<'maintenance.equipment'>;
506
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
507
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
508
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
509
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
510
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
511
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
512
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
513
+ readonly name: F.Char<{ readonly required: true }>;
514
+ readonly code: F.Char;
515
+ readonly category: F.Selection<'machine' | 'vehicle' | 'it' | 'building' | 'tool' | 'other', { readonly required: true; readonly default: true }>;
516
+ readonly location: F.Char;
517
+ readonly vendor: F.Many2one<'res.partner'>;
518
+ readonly purchaseDate: F.DateOnly;
519
+ readonly warrantyUntil: F.DateOnly;
520
+ readonly responsible: F.Many2one<'res.users'>;
521
+ readonly meters: F.One2many<'maintenance.meter', { readonly required: true }>;
522
+ readonly plans: F.One2many<'maintenance.plan', { readonly required: true }>;
523
+ readonly requests: F.One2many<'maintenance.request', { readonly required: true }>;
524
+ readonly status: F.Selection<'operational' | 'down' | 'retired', { readonly readonly: true; readonly compute: true; readonly store: true }>;
525
+ readonly note: F.Text;
526
+ };
527
+ readonly methods: MaintenanceEquipmentMethods;
528
+ }
529
+
530
+ /** Methods of `maintenance.equipment`: declared ones and transitions. */
531
+ export interface MaintenanceEquipmentMethods extends F.Methods<typeof import('../../maintenance/index.js').maintenanceShutro, 'maintenance.equipment'> {
532
+ }
533
+
534
+ /** `maintenance.meter` (owner: maintenance). */
535
+ export interface MaintenanceMeter {
536
+ readonly name: 'maintenance.meter';
537
+ readonly fields: {
538
+ readonly id: F.Id<'maintenance.meter'>;
539
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
540
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
541
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
542
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
543
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
544
+ readonly equipment: F.Many2one<'maintenance.equipment', { readonly required: true }>;
545
+ readonly name: F.Char<{ readonly required: true }>;
546
+ readonly unit: F.Char<{ readonly required: true; readonly default: true }>;
547
+ readonly readings: F.One2many<'maintenance.meter.reading', { readonly required: true }>;
548
+ readonly value: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
549
+ };
550
+ readonly methods: MaintenanceMeterMethods;
551
+ }
552
+
553
+ /** Methods of `maintenance.meter`: declared ones and transitions. */
554
+ export interface MaintenanceMeterMethods extends F.Methods<typeof import('../../maintenance/index.js').maintenanceShutro, 'maintenance.meter'> {
555
+ }
556
+
557
+ /** `maintenance.meter.reading` (owner: maintenance). */
558
+ export interface MaintenanceMeterReading {
559
+ readonly name: 'maintenance.meter.reading';
560
+ readonly fields: {
561
+ readonly id: F.Id<'maintenance.meter.reading'>;
562
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
563
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
564
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
565
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
566
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
567
+ readonly meter: F.Many2one<'maintenance.meter', { readonly required: true }>;
568
+ readonly date: F.Datetime<{ readonly required: true; readonly default: true }>;
569
+ readonly value: F.Decimal<{ readonly required: true }>;
570
+ };
571
+ readonly methods: MaintenanceMeterReadingMethods;
572
+ }
573
+
574
+ /** Methods of `maintenance.meter.reading`: declared ones and transitions. */
575
+ export interface MaintenanceMeterReadingMethods extends F.Methods<typeof import('../../maintenance/index.js').maintenanceShutro, 'maintenance.meter.reading'> {
576
+ }
577
+
578
+ /** `maintenance.plan` (owner: maintenance). */
579
+ export interface MaintenancePlan {
580
+ readonly name: 'maintenance.plan';
581
+ readonly fields: {
582
+ readonly id: F.Id<'maintenance.plan'>;
583
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
584
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
585
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
586
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
587
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
588
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
589
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
590
+ readonly name: F.Char<{ readonly required: true }>;
591
+ readonly equipment: F.Many2one<'maintenance.equipment', { readonly required: true }>;
592
+ readonly trigger: F.Selection<'time' | 'meter', { readonly required: true; readonly default: true }>;
593
+ readonly intervalDays: F.Integer;
594
+ readonly startDate: F.DateOnly<{ readonly required: true; readonly default: true }>;
595
+ readonly meter: F.Many2one<'maintenance.meter'>;
596
+ readonly intervalValue: F.Decimal;
597
+ readonly lastDoneDate: F.DateOnly;
598
+ readonly lastDoneValue: F.Decimal;
599
+ readonly nextDate: F.DateOnly<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
600
+ readonly tasks: F.One2many<'maintenance.plan.task', { readonly required: true }>;
601
+ readonly hours: F.Decimal<{ readonly default: true }>;
602
+ };
603
+ readonly methods: MaintenancePlanMethods;
604
+ }
605
+
606
+ /** Methods of `maintenance.plan`: declared ones and transitions. */
607
+ export interface MaintenancePlanMethods extends F.Methods<typeof import('../../maintenance/index.js').maintenanceShutro, 'maintenance.plan'> {
608
+ }
609
+
610
+ /** `maintenance.plan.task` (owner: maintenance). */
611
+ export interface MaintenancePlanTask {
612
+ readonly name: 'maintenance.plan.task';
613
+ readonly fields: {
614
+ readonly id: F.Id<'maintenance.plan.task'>;
615
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
616
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
617
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
618
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
619
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
620
+ readonly plan: F.Many2one<'maintenance.plan', { readonly required: true }>;
621
+ readonly name: F.Char<{ readonly required: true }>;
622
+ };
623
+ readonly methods: MaintenancePlanTaskMethods;
624
+ }
625
+
626
+ /** Methods of `maintenance.plan.task`: declared ones and transitions. */
627
+ export interface MaintenancePlanTaskMethods extends F.Methods<typeof import('../../maintenance/index.js').maintenanceShutro, 'maintenance.plan.task'> {
628
+ }
629
+
630
+ /** `maintenance.request` (owner: maintenance; extended by: maintenance_stock). */
631
+ export interface MaintenanceRequest {
632
+ readonly name: 'maintenance.request';
633
+ readonly fields: {
634
+ readonly id: F.Id<'maintenance.request'>;
635
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
636
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
637
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
638
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
639
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
640
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
641
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
642
+ readonly equipment: F.Many2one<'maintenance.equipment', { readonly required: true }>;
643
+ readonly kind: F.Selection<'preventive' | 'breakdown', { readonly required: true; readonly default: true }>;
644
+ readonly plan: F.Many2one<'maintenance.plan'>;
645
+ readonly description: F.Text;
646
+ readonly priority: F.Selection<'low' | 'normal' | 'high' | 'urgent', { readonly required: true; readonly default: true }>;
647
+ readonly scheduledDate: F.DateOnly<{ readonly required: true; readonly default: true }>;
648
+ readonly assignedTo: F.Many2one<'res.users'>;
649
+ readonly reportedAt: F.Datetime<{ readonly required: true; readonly default: true }>;
650
+ readonly startedAt: F.Datetime;
651
+ readonly finishedAt: F.Datetime;
652
+ readonly downtime: F.Bool<{ readonly required: true; readonly default: true }>;
653
+ readonly downtimeHours: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
654
+ readonly labourHours: F.Decimal<{ readonly default: true }>;
655
+ readonly labourCost: F.Decimal<{ readonly default: true }>;
656
+ readonly tasks: F.One2many<'maintenance.request.task', { readonly required: true }>;
657
+ readonly note: F.Text;
658
+ readonly state: F.State<'new' | 'progress' | 'done' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
659
+ readonly parts: F.One2many<'maintenance.request.part', { readonly required: true }>; // maintenance_stock
660
+ readonly partsTransfer: F.Many2one<'stock.picking'>; // maintenance_stock
661
+ readonly partsCost: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>; // maintenance_stock
662
+ };
663
+ readonly methods: MaintenanceRequestMethods;
664
+ }
665
+
666
+ /** Methods of `maintenance.request`: declared ones and transitions. */
667
+ export interface MaintenanceRequestMethods extends F.Methods<typeof import('../../maintenance/index.js').maintenanceShutro, 'maintenance.request'>, F.Methods<typeof import('../module.js').maintenanceStockShutro, 'maintenance.request'> {
668
+ readonly 'cancel': () => Promise<void>;
669
+ readonly 'finish': () => Promise<void>;
670
+ readonly 'start': () => Promise<void>;
671
+ }
672
+
673
+ /** `maintenance.request.part` (owner: maintenance_stock). */
674
+ export interface MaintenanceRequestPart {
675
+ readonly name: 'maintenance.request.part';
676
+ readonly fields: {
677
+ readonly id: F.Id<'maintenance.request.part'>;
678
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
679
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
680
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
681
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
682
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
683
+ readonly request: F.Many2one<'maintenance.request', { readonly required: true }>;
684
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
685
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
686
+ readonly uom: F.Many2one<'uom.uom'>;
687
+ readonly cost: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
688
+ };
689
+ readonly methods: MaintenanceRequestPartMethods;
690
+ }
691
+
692
+ /** Methods of `maintenance.request.part`: declared ones and transitions. */
693
+ export interface MaintenanceRequestPartMethods extends F.Methods<typeof import('../module.js').maintenanceStockShutro, 'maintenance.request.part'> {
694
+ }
695
+
696
+ /** `maintenance.request.task` (owner: maintenance). */
697
+ export interface MaintenanceRequestTask {
698
+ readonly name: 'maintenance.request.task';
699
+ readonly fields: {
700
+ readonly id: F.Id<'maintenance.request.task'>;
701
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
702
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
703
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
704
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
705
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
706
+ readonly request: F.Many2one<'maintenance.request', { readonly required: true }>;
707
+ readonly name: F.Char<{ readonly required: true }>;
708
+ readonly done: F.Bool<{ readonly required: true; readonly default: true }>;
709
+ };
710
+ readonly methods: MaintenanceRequestTaskMethods;
711
+ }
712
+
713
+ /** Methods of `maintenance.request.task`: declared ones and transitions. */
714
+ export interface MaintenanceRequestTaskMethods extends F.Methods<typeof import('../../maintenance/index.js').maintenanceShutro, 'maintenance.request.task'> {
715
+ }
716
+
717
+ /** `oauth.app` (owner: base). */
718
+ export interface OauthApp {
719
+ readonly name: 'oauth.app';
720
+ readonly fields: {
721
+ readonly id: F.Id<'oauth.app'>;
722
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
723
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
724
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
725
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
726
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
727
+ readonly name: F.Char<{ readonly required: true }>;
728
+ readonly clientId: F.Char<{ readonly required: true }>;
729
+ readonly secretHash: F.Char;
730
+ readonly confidential: F.Bool<{ readonly required: true; readonly default: true }>;
731
+ readonly redirectUris: F.Text<{ readonly required: true }>;
732
+ readonly scopes: F.Char<{ readonly required: true }>;
733
+ readonly homepage: F.Char;
734
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
735
+ readonly owner: F.Many2one<'res.users'>;
736
+ };
737
+ readonly methods: OauthAppMethods;
738
+ }
739
+
740
+ /** Methods of `oauth.app`: declared ones and transitions. */
741
+ export interface OauthAppMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.app'> {
742
+ }
743
+
744
+ /** `oauth.code` (owner: base). */
745
+ export interface OauthCode {
746
+ readonly name: 'oauth.code';
747
+ readonly fields: {
748
+ readonly id: F.Id<'oauth.code'>;
749
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
750
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
751
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
752
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
753
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
754
+ readonly codeHash: F.Char<{ readonly required: true }>;
755
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
756
+ readonly redirectUri: F.Char<{ readonly required: true }>;
757
+ readonly challenge: F.Char;
758
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
759
+ readonly used: F.Bool<{ readonly required: true; readonly default: true }>;
760
+ };
761
+ readonly methods: OauthCodeMethods;
762
+ }
763
+
764
+ /** Methods of `oauth.code`: declared ones and transitions. */
765
+ export interface OauthCodeMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.code'> {
766
+ }
767
+
768
+ /** `oauth.grant` (owner: base). */
769
+ export interface OauthGrant {
770
+ readonly name: 'oauth.grant';
771
+ readonly fields: {
772
+ readonly id: F.Id<'oauth.grant'>;
773
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
774
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
775
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
776
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
777
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
778
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
779
+ readonly app: F.Many2one<'oauth.app', { readonly required: true }>;
780
+ readonly scopes: F.Char<{ readonly required: true }>;
781
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
782
+ readonly lastUsedAt: F.Datetime;
783
+ };
784
+ readonly methods: OauthGrantMethods;
785
+ }
786
+
787
+ /** Methods of `oauth.grant`: declared ones and transitions. */
788
+ export interface OauthGrantMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.grant'> {
789
+ }
790
+
791
+ /** `oauth.token` (owner: base). */
792
+ export interface OauthToken {
793
+ readonly name: 'oauth.token';
794
+ readonly fields: {
795
+ readonly id: F.Id<'oauth.token'>;
796
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
797
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
798
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
799
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
800
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
801
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
802
+ readonly accessHash: F.Char<{ readonly required: true }>;
803
+ readonly refreshHash: F.Char<{ readonly required: true }>;
804
+ readonly accessExpiresAt: F.Datetime<{ readonly required: true }>;
805
+ readonly refreshExpiresAt: F.Datetime<{ readonly required: true }>;
806
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
807
+ readonly rotated: F.Bool<{ readonly required: true; readonly default: true }>;
808
+ };
809
+ readonly methods: OauthTokenMethods;
810
+ }
811
+
812
+ /** Methods of `oauth.token`: declared ones and transitions. */
813
+ export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
814
+ }
815
+
816
+ /** `product.category` (owner: product). */
817
+ export interface ProductCategory {
818
+ readonly name: 'product.category';
819
+ readonly fields: {
820
+ readonly id: F.Id<'product.category'>;
821
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
822
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
823
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
824
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
825
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
826
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
827
+ readonly parent: F.Many2one<'product.category'>;
828
+ };
829
+ readonly methods: ProductCategoryMethods;
830
+ }
831
+
832
+ /** Methods of `product.category`: declared ones and transitions. */
833
+ export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'> {
834
+ }
835
+
836
+ /** `product.product` (owner: product; extended by: stock). */
837
+ export interface ProductProduct {
838
+ readonly name: 'product.product';
839
+ readonly fields: {
840
+ readonly id: F.Id<'product.product'>;
841
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
842
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
843
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
844
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
845
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
846
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
847
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
848
+ readonly code: F.Char<{ readonly readonly: true; readonly sequence: true }>;
849
+ readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
850
+ readonly category: F.Many2one<'product.category'>;
851
+ readonly uom: F.Many2one<'uom.uom'>;
852
+ readonly barcode: F.Char;
853
+ readonly image: F.Many2one<'storage.attachment'>;
854
+ readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
855
+ readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
856
+ readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
857
+ readonly purchaseOk: F.Bool<{ readonly required: true; readonly default: true }>;
858
+ readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
859
+ readonly purchaseTaxes: F.Many2many<'account.tax', { readonly required: true }>;
860
+ readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
861
+ readonly purchaseTax: F.Many2one<'account.tax', { readonly readonly: true }>;
862
+ readonly description: F.Text<{ readonly translate: true }>;
863
+ readonly tracking: F.Selection<'none' | 'lot' | 'serial', { readonly required: true; readonly default: true }>; // stock
864
+ readonly lots: F.One2many<'stock.lot', { readonly required: true }>; // stock
865
+ readonly quants: F.One2many<'stock.quant', { readonly required: true }>; // stock
866
+ readonly qtyOnHand: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>; // stock
867
+ readonly qtyReserved: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>; // stock
868
+ readonly qtyAvailable: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>; // stock
869
+ };
870
+ readonly methods: ProductProductMethods;
871
+ }
872
+
873
+ /** Methods of `product.product`: declared ones and transitions. */
874
+ export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'>, F.Methods<typeof import('../../stock/index.js').stockShutro, 'product.product'> {
875
+ }
876
+
877
+ /** `res.company` (owner: base; extended by: contacts). */
878
+ export interface ResCompany {
879
+ readonly name: 'res.company';
880
+ readonly fields: {
881
+ readonly id: F.Id<'res.company'>;
882
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
883
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
884
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
885
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
886
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
887
+ readonly name: F.Char<{ readonly required: true }>;
888
+ readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
889
+ readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
890
+ readonly accentColor: F.Char;
891
+ readonly street: F.Char;
892
+ readonly city: F.Char;
893
+ readonly zip: F.Char;
894
+ readonly email: F.Char;
895
+ readonly phone: F.Char;
896
+ readonly website: F.Char;
897
+ readonly contactTaxIdRequired: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
898
+ readonly contactUniqueEmail: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
899
+ };
900
+ readonly methods: ResCompanyMethods;
901
+ }
902
+
903
+ /** Methods of `res.company`: declared ones and transitions. */
904
+ export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.company'> {
905
+ }
906
+
907
+ /** `res.currency` (owner: base). */
908
+ export interface ResCurrency {
909
+ readonly name: 'res.currency';
910
+ readonly fields: {
911
+ readonly id: F.Id<'res.currency'>;
912
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
913
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
914
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
915
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
916
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
917
+ readonly name: F.Char<{ readonly required: true }>;
918
+ readonly rounding: F.Decimal<{ readonly required: true; readonly default: true }>;
919
+ readonly decimalPlaces: F.Integer<{ readonly default: true }>;
920
+ };
921
+ readonly methods: ResCurrencyMethods;
922
+ }
923
+
924
+ /** Methods of `res.currency`: declared ones and transitions. */
925
+ export interface ResCurrencyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.currency'> {
926
+ }
927
+
928
+ /** `res.partner` (owner: contacts). */
929
+ export interface ResPartner {
930
+ readonly name: 'res.partner';
931
+ readonly fields: {
932
+ readonly id: F.Id<'res.partner'>;
933
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
934
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
935
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
936
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
937
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
938
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
939
+ readonly company: F.Many2one<'res.company', { readonly default: true }>;
940
+ readonly name: F.Char<{ readonly required: true }>;
941
+ readonly image: F.Many2one<'storage.attachment'>;
942
+ readonly tags: F.Many2many<'res.partner.tag', { readonly required: true }>;
943
+ readonly latitude: F.Decimal;
944
+ readonly longitude: F.Decimal;
945
+ readonly isCompany: F.Bool<{ readonly required: true; readonly default: true }>;
946
+ readonly parent: F.Many2one<'res.partner'>;
947
+ readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
948
+ readonly email: F.Char;
949
+ readonly phone: F.Char;
950
+ readonly mobile: F.Char;
951
+ readonly website: F.Char;
952
+ readonly street: F.Char;
953
+ readonly city: F.Char;
954
+ readonly zip: F.Char;
955
+ readonly country: F.Char;
956
+ readonly state: F.Char;
957
+ readonly taxId: F.Char;
958
+ readonly isCustomer: F.Bool<{ readonly required: true; readonly default: true }>;
959
+ readonly isVendor: F.Bool<{ readonly required: true; readonly default: true }>;
960
+ readonly currency: F.Many2one<'res.currency'>;
961
+ readonly notes: F.Text;
962
+ };
963
+ readonly methods: ResPartnerMethods;
964
+ }
965
+
966
+ /** Methods of `res.partner`: declared ones and transitions. */
967
+ export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'> {
968
+ }
969
+
970
+ /** `res.partner.tag` (owner: contacts). */
971
+ export interface ResPartnerTag {
972
+ readonly name: 'res.partner.tag';
973
+ readonly fields: {
974
+ readonly id: F.Id<'res.partner.tag'>;
975
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
976
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
977
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
978
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
979
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
980
+ readonly name: F.Char<{ readonly required: true }>;
981
+ };
982
+ readonly methods: ResPartnerTagMethods;
983
+ }
984
+
985
+ /** Methods of `res.partner.tag`: declared ones and transitions. */
986
+ export interface ResPartnerTagMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner.tag'> {
987
+ }
988
+
989
+ /** `res.users` (owner: base). */
990
+ export interface ResUsers {
991
+ readonly name: 'res.users';
992
+ readonly fields: {
993
+ readonly id: F.Id<'res.users'>;
994
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
995
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
996
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
997
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
998
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
999
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1000
+ readonly login: F.Char<{ readonly required: true }>;
1001
+ readonly name: F.Char<{ readonly required: true }>;
1002
+ readonly email: F.Char;
1003
+ readonly phone: F.Char;
1004
+ readonly company: F.Many2one<'res.company'>;
1005
+ readonly companies: F.Many2many<'res.company', { readonly required: true }>;
1006
+ readonly lang: F.Char<{ readonly default: true }>;
1007
+ readonly tz: F.Char<{ readonly default: true }>;
1008
+ readonly isService: F.Bool<{ readonly required: true; readonly default: true }>;
1009
+ };
1010
+ readonly methods: ResUsersMethods;
1011
+ }
1012
+
1013
+ /** Methods of `res.users`: declared ones and transitions. */
1014
+ export interface ResUsersMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.users'> {
1015
+ }
1016
+
1017
+ /** `stock.count` (owner: stock). */
1018
+ export interface StockCount {
1019
+ readonly name: 'stock.count';
1020
+ readonly fields: {
1021
+ readonly id: F.Id<'stock.count'>;
1022
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1023
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1024
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1025
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1026
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1027
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1028
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1029
+ readonly location: F.Many2one<'stock.location', { readonly required: true }>;
1030
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
1031
+ readonly user: F.Many2one<'res.users', { readonly default: true }>;
1032
+ readonly lines: F.One2many<'stock.count.line', { readonly required: true }>;
1033
+ readonly adjustments: F.One2many<'stock.picking', { readonly required: true }>;
1034
+ readonly note: F.Text;
1035
+ readonly state: F.State<'draft' | 'counting' | 'done' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
1036
+ };
1037
+ readonly methods: StockCountMethods;
1038
+ }
1039
+
1040
+ /** Methods of `stock.count`: declared ones and transitions. */
1041
+ export interface StockCountMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.count'> {
1042
+ readonly 'apply': () => Promise<void>;
1043
+ readonly 'cancel': () => Promise<void>;
1044
+ readonly 'redraft': () => Promise<void>;
1045
+ readonly 'start': () => Promise<void>;
1046
+ }
1047
+
1048
+ /** `stock.count.line` (owner: stock). */
1049
+ export interface StockCountLine {
1050
+ readonly name: 'stock.count.line';
1051
+ readonly fields: {
1052
+ readonly id: F.Id<'stock.count.line'>;
1053
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1054
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1055
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1056
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1057
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1058
+ readonly count: F.Many2one<'stock.count', { readonly required: true }>;
1059
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1060
+ readonly lot: F.Many2one<'stock.lot'>;
1061
+ readonly expected: F.Decimal;
1062
+ readonly counted: F.Decimal;
1063
+ readonly difference: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1064
+ };
1065
+ readonly methods: StockCountLineMethods;
1066
+ }
1067
+
1068
+ /** Methods of `stock.count.line`: declared ones and transitions. */
1069
+ export interface StockCountLineMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.count.line'> {
1070
+ }
1071
+
1072
+ /** `stock.location` (owner: stock). */
1073
+ export interface StockLocation {
1074
+ readonly name: 'stock.location';
1075
+ readonly fields: {
1076
+ readonly id: F.Id<'stock.location'>;
1077
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1078
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1079
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1080
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1081
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1082
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1083
+ readonly company: F.Many2one<'res.company', { readonly default: true }>;
1084
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1085
+ readonly parent: F.Many2one<'stock.location'>;
1086
+ readonly parentPath: F.Char<{ readonly readonly: true }>;
1087
+ readonly children: F.One2many<'stock.location', { readonly required: true }>;
1088
+ readonly warehouse: F.Many2one<'stock.warehouse'>;
1089
+ readonly usage: F.Selection<'internal' | 'vendor' | 'customer' | 'adjustment' | 'production' | 'transit', { readonly required: true; readonly default: true }>;
1090
+ readonly fullName: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1091
+ };
1092
+ readonly methods: StockLocationMethods;
1093
+ }
1094
+
1095
+ /** Methods of `stock.location`: declared ones and transitions. */
1096
+ export interface StockLocationMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.location'> {
1097
+ }
1098
+
1099
+ /** `stock.lot` (owner: stock). */
1100
+ export interface StockLot {
1101
+ readonly name: 'stock.lot';
1102
+ readonly fields: {
1103
+ readonly id: F.Id<'stock.lot'>;
1104
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1105
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1106
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1107
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1108
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1109
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1110
+ readonly name: F.Char<{ readonly required: true }>;
1111
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1112
+ readonly expiryDate: F.DateOnly;
1113
+ readonly quants: F.One2many<'stock.quant', { readonly required: true }>;
1114
+ readonly qtyOnHand: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1115
+ readonly history: F.One2many<'stock.lot.line', { readonly required: true }>;
1116
+ readonly note: F.Text;
1117
+ };
1118
+ readonly methods: StockLotMethods;
1119
+ }
1120
+
1121
+ /** Methods of `stock.lot`: declared ones and transitions. */
1122
+ export interface StockLotMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.lot'> {
1123
+ }
1124
+
1125
+ /** `stock.lot.line` (owner: stock). */
1126
+ export interface StockLotLine {
1127
+ readonly name: 'stock.lot.line';
1128
+ readonly fields: {
1129
+ readonly id: F.Id<'stock.lot.line'>;
1130
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1131
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1132
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1133
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1134
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1135
+ readonly picking: F.Many2one<'stock.picking', { readonly required: true }>;
1136
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1137
+ readonly lot: F.Many2one<'stock.lot'>;
1138
+ readonly lotName: F.Char;
1139
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1140
+ };
1141
+ readonly methods: StockLotLineMethods;
1142
+ }
1143
+
1144
+ /** Methods of `stock.lot.line`: declared ones and transitions. */
1145
+ export interface StockLotLineMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.lot.line'> {
1146
+ }
1147
+
1148
+ /** `stock.move` (owner: stock). */
1149
+ export interface StockMove {
1150
+ readonly name: 'stock.move';
1151
+ readonly fields: {
1152
+ readonly id: F.Id<'stock.move'>;
1153
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1154
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1155
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1156
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1157
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1158
+ readonly picking: F.Many2one<'stock.picking', { readonly required: true }>;
1159
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1160
+ readonly name: F.Char;
1161
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1162
+ readonly uom: F.Many2one<'uom.uom'>;
1163
+ readonly productQty: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1164
+ readonly quantityDone: F.Decimal;
1165
+ readonly doneQty: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1166
+ readonly restrictLot: F.Many2one<'stock.lot'>;
1167
+ readonly reservations: F.One2many<'stock.reservation', { readonly required: true }>;
1168
+ readonly reserved: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1169
+ };
1170
+ readonly methods: StockMoveMethods;
1171
+ }
1172
+
1173
+ /** Methods of `stock.move`: declared ones and transitions. */
1174
+ export interface StockMoveMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.move'> {
1175
+ }
1176
+
1177
+ /** `stock.picking` (owner: stock). */
1178
+ export interface StockPicking {
1179
+ readonly name: 'stock.picking';
1180
+ readonly fields: {
1181
+ readonly id: F.Id<'stock.picking'>;
1182
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1183
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1184
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1185
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1186
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1187
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1188
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1189
+ readonly kind: F.Selection<'receipt' | 'delivery' | 'internal' | 'adjustment' | 'production', { readonly required: true; readonly default: true }>;
1190
+ readonly partner: F.Many2one<'res.partner'>;
1191
+ readonly warehouse: F.Many2one<'stock.warehouse'>;
1192
+ readonly source: F.Many2one<'stock.location', { readonly required: true }>;
1193
+ readonly destination: F.Many2one<'stock.location', { readonly required: true }>;
1194
+ readonly scheduledDate: F.DateOnly<{ readonly required: true; readonly default: true }>;
1195
+ readonly doneDate: F.DateOnly;
1196
+ readonly origin: F.Char;
1197
+ readonly note: F.Text;
1198
+ readonly moves: F.One2many<'stock.move', { readonly required: true }>;
1199
+ readonly lotLines: F.One2many<'stock.lot.line', { readonly required: true }>;
1200
+ readonly count: F.Many2one<'stock.count'>;
1201
+ readonly backorderOf: F.Many2one<'stock.picking'>;
1202
+ readonly backorders: F.One2many<'stock.picking', { readonly required: true }>;
1203
+ readonly availability: F.Selection<'none' | 'partial' | 'full', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1204
+ readonly status: F.Selection<'draft' | 'waiting' | 'ready' | 'done' | 'cancelled', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1205
+ readonly state: F.State<'draft' | 'confirmed' | 'done' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
1206
+ };
1207
+ readonly methods: StockPickingMethods;
1208
+ }
1209
+
1210
+ /** Methods of `stock.picking`: declared ones and transitions. */
1211
+ export interface StockPickingMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.picking'> {
1212
+ readonly 'cancel': () => Promise<void>;
1213
+ readonly 'confirm': () => Promise<void>;
1214
+ readonly 'redraft': () => Promise<void>;
1215
+ readonly 'reserve': () => Promise<void>;
1216
+ readonly 'unreserve': () => Promise<void>;
1217
+ readonly 'validate': () => Promise<void>;
1218
+ }
1219
+
1220
+ /** `stock.quant` (owner: stock). */
1221
+ export interface StockQuant {
1222
+ readonly name: 'stock.quant';
1223
+ readonly fields: {
1224
+ readonly id: F.Id<'stock.quant'>;
1225
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1226
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1227
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1228
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1229
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1230
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1231
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1232
+ readonly location: F.Many2one<'stock.location', { readonly required: true }>;
1233
+ readonly lot: F.Many2one<'stock.lot'>;
1234
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1235
+ readonly reservations: F.One2many<'stock.reservation', { readonly required: true }>;
1236
+ readonly reserved: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1237
+ readonly available: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1238
+ };
1239
+ readonly methods: StockQuantMethods;
1240
+ }
1241
+
1242
+ /** Methods of `stock.quant`: declared ones and transitions. */
1243
+ export interface StockQuantMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.quant'> {
1244
+ }
1245
+
1246
+ /** `stock.reservation` (owner: stock). */
1247
+ export interface StockReservation {
1248
+ readonly name: 'stock.reservation';
1249
+ readonly fields: {
1250
+ readonly id: F.Id<'stock.reservation'>;
1251
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1252
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1253
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1254
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1255
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1256
+ readonly move: F.Many2one<'stock.move', { readonly required: true }>;
1257
+ readonly quant: F.Many2one<'stock.quant', { readonly required: true }>;
1258
+ readonly quantity: F.Decimal<{ readonly required: true }>;
1259
+ readonly label: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1260
+ };
1261
+ readonly methods: StockReservationMethods;
1262
+ }
1263
+
1264
+ /** Methods of `stock.reservation`: declared ones and transitions. */
1265
+ export interface StockReservationMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.reservation'> {
1266
+ }
1267
+
1268
+ /** `stock.scrap` (owner: stock). */
1269
+ export interface StockScrap {
1270
+ readonly name: 'stock.scrap';
1271
+ readonly fields: {
1272
+ readonly id: F.Id<'stock.scrap'>;
1273
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1274
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1275
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1276
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1277
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1278
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1279
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1280
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1281
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1282
+ readonly location: F.Many2one<'stock.location'>;
1283
+ readonly lot: F.Many2one<'stock.lot'>;
1284
+ readonly reason: F.Selection<'damaged' | 'defect' | 'expired' | 'spill' | 'other', { readonly required: true; readonly default: true }>;
1285
+ readonly note: F.Text;
1286
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
1287
+ readonly picking: F.Many2one<'stock.picking'>;
1288
+ readonly state: F.State<'draft' | 'done' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
1289
+ };
1290
+ readonly methods: StockScrapMethods;
1291
+ }
1292
+
1293
+ /** Methods of `stock.scrap`: declared ones and transitions. */
1294
+ export interface StockScrapMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.scrap'> {
1295
+ readonly 'cancel': () => Promise<void>;
1296
+ readonly 'validate': () => Promise<void>;
1297
+ }
1298
+
1299
+ /** `stock.warehouse` (owner: stock). */
1300
+ export interface StockWarehouse {
1301
+ readonly name: 'stock.warehouse';
1302
+ readonly fields: {
1303
+ readonly id: F.Id<'stock.warehouse'>;
1304
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1305
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1306
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1307
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1308
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1309
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1310
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1311
+ readonly name: F.Char<{ readonly required: true }>;
1312
+ readonly code: F.Char<{ readonly required: true }>;
1313
+ readonly locations: F.One2many<'stock.location', { readonly required: true }>;
1314
+ readonly address: F.Many2one<'res.partner'>;
1315
+ };
1316
+ readonly methods: StockWarehouseMethods;
1317
+ }
1318
+
1319
+ /** Methods of `stock.warehouse`: declared ones and transitions. */
1320
+ export interface StockWarehouseMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.warehouse'> {
1321
+ }
1322
+
1323
+ /** `storage.attachment` (owner: storage). */
1324
+ export interface StorageAttachment {
1325
+ readonly name: 'storage.attachment';
1326
+ readonly fields: {
1327
+ readonly id: F.Id<'storage.attachment'>;
1328
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1329
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1330
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1331
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1332
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1333
+ readonly name: F.Char<{ readonly required: true }>;
1334
+ readonly mime: F.Char<{ readonly required: true }>;
1335
+ readonly size: F.Integer<{ readonly required: true }>;
1336
+ readonly sha256: F.Char<{ readonly required: true }>;
1337
+ readonly key: F.Char<{ readonly required: true }>;
1338
+ readonly resModel: F.Char<{ readonly required: true }>;
1339
+ readonly resId: F.Integer<{ readonly required: true }>;
1340
+ readonly variantOf: F.Many2one<'storage.attachment'>;
1341
+ readonly width: F.Integer;
1342
+ };
1343
+ readonly methods: StorageAttachmentMethods;
1344
+ }
1345
+
1346
+ /** Methods of `storage.attachment`: declared ones and transitions. */
1347
+ export interface StorageAttachmentMethods extends F.Methods<typeof import('../../storage/index.js').storageShutro, 'storage.attachment'> {
1348
+ }
1349
+
1350
+ /** `uom.uom` (owner: product). */
1351
+ export interface UomUom {
1352
+ readonly name: 'uom.uom';
1353
+ readonly fields: {
1354
+ readonly id: F.Id<'uom.uom'>;
1355
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1356
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1357
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1358
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1359
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1360
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1361
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1362
+ readonly category: F.Selection<'unit' | 'time' | 'weight' | 'length' | 'volume', { readonly required: true; readonly default: true }>;
1363
+ readonly ratio: F.Decimal<{ readonly required: true; readonly default: true }>;
1364
+ readonly rounding: F.Decimal<{ readonly required: true; readonly default: true }>;
1365
+ };
1366
+ readonly methods: UomUomMethods;
1367
+ }
1368
+
1369
+ /** Methods of `uom.uom`: declared ones and transitions. */
1370
+ export interface UomUomMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'uom.uom'> {
1371
+ }