shutro-erp 0.3.0 → 0.3.2

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 (137) hide show
  1. package/README.md +58 -58
  2. package/dist/account_portal/.kosh/bindings.js +1 -1
  3. package/dist/account_portal/.kosh/schema.d.ts +31 -1
  4. package/dist/account_portal/index.js +3 -2
  5. package/dist/accounting/.kosh/bindings.js +1 -1
  6. package/dist/accounting/.kosh/schema.d.ts +31 -1
  7. package/dist/accounting/index.js +4 -0
  8. package/dist/assistant/routes.js +1 -1
  9. package/dist/automation/engine.js +1 -1
  10. package/dist/automation/web/messages.js +2 -2
  11. package/dist/cli/apps.d.ts +1 -1
  12. package/dist/cli/apps.js +14 -14
  13. package/dist/cli/bin.js +3 -0
  14. package/dist/cli/index.js +11 -11
  15. package/dist/cli/init.d.ts +1 -1
  16. package/dist/cli/init.js +60 -36
  17. package/dist/cli/launch.js +10 -7
  18. package/dist/cli/project.d.ts +7 -7
  19. package/dist/cli/project.js +25 -25
  20. package/dist/cli/prompt.js +2 -2
  21. package/dist/cli/templates.d.ts +3 -3
  22. package/dist/cli/templates.js +33 -28
  23. package/dist/cli/ui.d.ts +1 -8
  24. package/dist/cli/ui.js +36 -12
  25. package/dist/contacts/.kosh/bindings.js +1 -1
  26. package/dist/contacts/.kosh/schema.d.ts +31 -1
  27. package/dist/integrations/inbound.d.ts +36 -0
  28. package/dist/integrations/inbound.js +171 -0
  29. package/dist/integrations/index.d.ts +18 -0
  30. package/dist/integrations/index.js +400 -0
  31. package/dist/integrations/models.d.ts +6 -0
  32. package/dist/integrations/models.js +119 -0
  33. package/dist/integrations/web/DeliveryTools.d.ts +4 -0
  34. package/dist/integrations/web/DeliveryTools.js +15 -0
  35. package/dist/integrations/web/EndpointTools.d.ts +7 -0
  36. package/dist/integrations/web/EndpointTools.js +25 -0
  37. package/dist/integrations/web/InboundTools.d.ts +4 -0
  38. package/dist/integrations/web/InboundTools.js +15 -0
  39. package/dist/integrations/web/WebhookTools.d.ts +7 -0
  40. package/dist/integrations/web/WebhookTools.js +25 -0
  41. package/dist/integrations/web/index.d.ts +16 -0
  42. package/dist/integrations/web/index.js +27 -0
  43. package/dist/integrations/web/messages.d.ts +2 -0
  44. package/dist/integrations/web/messages.js +53 -0
  45. package/dist/integrations/webhooks.d.ts +63 -0
  46. package/dist/integrations/webhooks.js +217 -0
  47. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  48. package/dist/l10n_bd/.kosh/schema.d.ts +31 -1
  49. package/dist/l10n_in/.kosh/bindings.js +1 -1
  50. package/dist/l10n_in/.kosh/schema.d.ts +31 -1
  51. package/dist/l10n_in/einvoice.js +1 -1
  52. package/dist/l10n_in/web/messages.js +2 -2
  53. package/dist/mail/index.js +2 -2
  54. package/dist/modules-sdk/index.d.ts +1 -1
  55. package/dist/modules-sdk/loader.js +2 -2
  56. package/dist/modules-sdk/manifest.d.ts +48 -0
  57. package/dist/notify/messages.js +3 -3
  58. package/dist/notify/routes.js +1 -1
  59. package/dist/notify/web/messages.js +1 -1
  60. package/dist/payment/.kosh/bindings.d.ts +22 -0
  61. package/dist/payment/.kosh/bindings.js +15 -0
  62. package/dist/payment/.kosh/schema.d.ts +1553 -0
  63. package/dist/payment/index.d.ts +34 -0
  64. package/dist/payment/index.js +375 -0
  65. package/dist/payment/module.d.ts +6853 -0
  66. package/dist/payment/module.js +74 -0
  67. package/dist/payment/providers.d.ts +64 -0
  68. package/dist/payment/providers.js +77 -0
  69. package/dist/payment/settle.d.ts +11 -0
  70. package/dist/payment/settle.js +59 -0
  71. package/dist/payment/sslcommerz.d.ts +12 -0
  72. package/dist/payment/sslcommerz.js +185 -0
  73. package/dist/portal/.kosh/bindings.js +1 -1
  74. package/dist/portal/.kosh/schema.d.ts +31 -1
  75. package/dist/portal/routes-documents.js +5 -0
  76. package/dist/product/.kosh/bindings.js +1 -1
  77. package/dist/product/.kosh/schema.d.ts +31 -1
  78. package/dist/project/.kosh/bindings.js +1 -1
  79. package/dist/project/.kosh/schema.d.ts +31 -1
  80. package/dist/project_portal/.kosh/bindings.js +1 -1
  81. package/dist/project_portal/.kosh/schema.d.ts +31 -1
  82. package/dist/purchase/.kosh/bindings.js +1 -1
  83. package/dist/purchase/.kosh/schema.d.ts +31 -1
  84. package/dist/purchase_account/.kosh/bindings.js +1 -1
  85. package/dist/purchase_account/.kosh/schema.d.ts +31 -1
  86. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  87. package/dist/purchase_portal/.kosh/schema.d.ts +31 -1
  88. package/dist/sale_account/.kosh/bindings.js +1 -1
  89. package/dist/sale_account/.kosh/schema.d.ts +31 -1
  90. package/dist/sale_portal/.kosh/bindings.js +1 -1
  91. package/dist/sale_portal/.kosh/schema.d.ts +31 -1
  92. package/dist/sale_project/.kosh/bindings.js +1 -1
  93. package/dist/sale_project/.kosh/schema.d.ts +31 -1
  94. package/dist/sales/.kosh/bindings.js +1 -1
  95. package/dist/sales/.kosh/schema.d.ts +31 -1
  96. package/dist/sales/index.js +2 -0
  97. package/dist/server/api/client.js +1 -1
  98. package/dist/server/api/openapi.js +17 -1
  99. package/dist/server/api/rest.d.ts +6 -1
  100. package/dist/server/api/rest.js +11 -0
  101. package/dist/server/apps.js +5 -5
  102. package/dist/server/auth/api-keys.d.ts +13 -0
  103. package/dist/server/auth/api-keys.js +65 -0
  104. package/dist/server/auth/base.js +24 -0
  105. package/dist/server/auth/crypto.js +1 -1
  106. package/dist/server/auth/scopes.d.ts +12 -0
  107. package/dist/server/auth/scopes.js +51 -0
  108. package/dist/server/auth/service.d.ts +57 -1
  109. package/dist/server/auth/service.js +229 -5
  110. package/dist/server/demo.d.ts +1 -1
  111. package/dist/server/demo.js +1 -1
  112. package/dist/server/env-names.d.ts +2 -0
  113. package/dist/server/env-names.js +16 -0
  114. package/dist/server/host.js +5 -1
  115. package/dist/server/identity.d.ts +7 -0
  116. package/dist/server/index.d.ts +2 -1
  117. package/dist/server/index.js +2 -1
  118. package/dist/server/registry.js +1 -1
  119. package/dist/server/server.d.ts +5 -0
  120. package/dist/server/server.js +45 -5
  121. package/dist/settings/routes.js +1 -1
  122. package/dist/settings/web/ApiKeysPage.d.ts +8 -0
  123. package/dist/settings/web/ApiKeysPage.js +70 -0
  124. package/dist/settings/web/index.d.ts +1 -0
  125. package/dist/settings/web/index.js +4 -0
  126. package/dist/settings/web/messages.js +62 -0
  127. package/dist/storage/routes.js +1 -1
  128. package/dist/studio/build.js +1 -1
  129. package/dist/studio/generate.js +4 -4
  130. package/dist/studio/module.js +5 -5
  131. package/dist/studio/web/messages.js +2 -2
  132. package/dist/ui/app.js +26 -3
  133. package/dist/ui/i18n/messages.js +2 -2
  134. package/dist/ui/pwa/worker.js +2 -2
  135. package/dist/ui/registry.d.ts +15 -0
  136. package/dist/ui/registry.js +20 -0
  137. package/package.json +15 -3
@@ -0,0 +1,1553 @@
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 51b637962c6e5497
2
+ // Schema view of module `payment` (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.account': AccountAccount;
8
+ readonly 'account.fiscal.year': AccountFiscalYear;
9
+ readonly 'account.full.reconcile': AccountFullReconcile;
10
+ readonly 'account.journal': AccountJournal;
11
+ readonly 'account.move': AccountMove;
12
+ readonly 'account.move.line': AccountMoveLine;
13
+ readonly 'account.partial.reconcile': AccountPartialReconcile;
14
+ readonly 'account.payment': AccountPayment;
15
+ readonly 'account.payment.term': AccountPaymentTerm;
16
+ readonly 'account.payment.term.line': AccountPaymentTermLine;
17
+ readonly 'account.payment.withholding': AccountPaymentWithholding;
18
+ readonly 'account.tax': AccountTax;
19
+ readonly 'account.tax.component': AccountTaxComponent;
20
+ readonly 'account.withholding': AccountWithholding;
21
+ readonly 'approval.level': ApprovalLevel;
22
+ readonly 'approval.policy': ApprovalPolicy;
23
+ readonly 'approval.request': ApprovalRequest;
24
+ readonly 'audit.event': AuditEvent;
25
+ readonly 'auth.api_key': AuthApiKey;
26
+ readonly 'auth.credential': AuthCredential;
27
+ readonly 'auth.session': AuthSession;
28
+ readonly 'auth.user_grant': AuthUserGrant;
29
+ readonly 'auth.user_group': AuthUserGroup;
30
+ readonly 'kosh.saved_view': KoshSavedView;
31
+ readonly 'mail.activity': MailActivity;
32
+ readonly 'mail.activity.type': MailActivityType;
33
+ readonly 'mail.channel': MailChannel;
34
+ readonly 'mail.channel.member': MailChannelMember;
35
+ readonly 'mail.follower': MailFollower;
36
+ readonly 'mail.message': MailMessage;
37
+ readonly 'mail.message.reaction': MailMessageReaction;
38
+ readonly 'payment.provider': PaymentProvider;
39
+ readonly 'payment.transaction': PaymentTransaction;
40
+ readonly 'portal.announcement': PortalAnnouncement;
41
+ readonly 'portal.invitation': PortalInvitation;
42
+ readonly 'portal.signature': PortalSignature;
43
+ readonly 'product.category': ProductCategory;
44
+ readonly 'product.product': ProductProduct;
45
+ readonly 'report.dashboard': ReportDashboard;
46
+ readonly 'report.output': ReportOutput;
47
+ readonly 'report.schedule': ReportSchedule;
48
+ readonly 'report.spreadsheet': ReportSpreadsheet;
49
+ readonly 'report.template': ReportTemplate;
50
+ readonly 'res.bank.account': ResBankAccount;
51
+ readonly 'res.company': ResCompany;
52
+ readonly 'res.currency': ResCurrency;
53
+ readonly 'res.currency.rate': ResCurrencyRate;
54
+ readonly 'res.partner': ResPartner;
55
+ readonly 'res.users': ResUsers;
56
+ readonly 'storage.attachment': StorageAttachment;
57
+ readonly 'uom.uom': UomUom;
58
+ readonly 'webhook.delivery': WebhookDelivery;
59
+ readonly 'webhook.endpoint': WebhookEndpoint;
60
+ readonly 'webhook.inbound': WebhookInbound;
61
+ readonly 'webhook.subscription': WebhookSubscription;
62
+ }
63
+
64
+ /** `account.account` (owner: accounting). */
65
+ export interface AccountAccount {
66
+ readonly name: 'account.account';
67
+ readonly fields: {
68
+ readonly id: F.Id<'account.account'>;
69
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
70
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
71
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
72
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
73
+ readonly displayName: F.Char<{ readonly readonly: true; readonly compute: true }>;
74
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
75
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
76
+ readonly code: F.Char<{ readonly required: true }>;
77
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
78
+ readonly type: F.Selection<'asset_receivable' | 'asset_cash' | 'asset_current' | 'asset_prepayments' | 'asset_fixed' | 'asset_non_current' | 'liability_payable' | 'liability_current' | 'liability_non_current' | 'equity' | 'equity_unaffected' | 'income' | 'income_other' | 'expense' | 'expense_direct_cost' | 'expense_depreciation' | 'off_balance', { readonly required: true }>;
79
+ readonly reconcile: F.Bool<{ readonly required: true; readonly default: true }>;
80
+ readonly currency: F.Many2one<'res.currency'>;
81
+ readonly note: F.Text;
82
+ };
83
+ readonly methods: AccountAccountMethods;
84
+ }
85
+
86
+ /** Methods of `account.account`: declared ones and transitions. */
87
+ export interface AccountAccountMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.account'> {
88
+ }
89
+
90
+ /** `account.fiscal.year` (owner: accounting). */
91
+ export interface AccountFiscalYear {
92
+ readonly name: 'account.fiscal.year';
93
+ readonly fields: {
94
+ readonly id: F.Id<'account.fiscal.year'>;
95
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
96
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
97
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
98
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
99
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
100
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
101
+ readonly name: F.Char<{ readonly required: true }>;
102
+ readonly dateFrom: F.DateOnly<{ readonly required: true }>;
103
+ readonly dateTo: F.DateOnly<{ readonly required: true }>;
104
+ readonly state: F.Selection<'open' | 'closed', { readonly required: true; readonly default: true }>;
105
+ readonly lockDate: F.DateOnly;
106
+ readonly closingMove: F.Many2one<'account.move'>;
107
+ readonly reopenReason: F.Char;
108
+ };
109
+ readonly methods: AccountFiscalYearMethods;
110
+ }
111
+
112
+ /** Methods of `account.fiscal.year`: declared ones and transitions. */
113
+ export interface AccountFiscalYearMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.year'> {
114
+ }
115
+
116
+ /** `account.full.reconcile` (owner: accounting). */
117
+ export interface AccountFullReconcile {
118
+ readonly name: 'account.full.reconcile';
119
+ readonly fields: {
120
+ readonly id: F.Id<'account.full.reconcile'>;
121
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
122
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
123
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
124
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
125
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
126
+ readonly name: F.Char<{ readonly required: true }>;
127
+ readonly lines: F.One2many<'account.move.line', { readonly required: true }>;
128
+ readonly partials: F.One2many<'account.partial.reconcile', { readonly required: true }>;
129
+ };
130
+ readonly methods: AccountFullReconcileMethods;
131
+ }
132
+
133
+ /** Methods of `account.full.reconcile`: declared ones and transitions. */
134
+ export interface AccountFullReconcileMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.full.reconcile'> {
135
+ }
136
+
137
+ /** `account.journal` (owner: accounting). */
138
+ export interface AccountJournal {
139
+ readonly name: 'account.journal';
140
+ readonly fields: {
141
+ readonly id: F.Id<'account.journal'>;
142
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
143
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
144
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
145
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
146
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
147
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
148
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
149
+ readonly code: F.Char<{ readonly required: true }>;
150
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
151
+ readonly type: F.Selection<'sale' | 'purchase' | 'cash' | 'bank' | 'general', { readonly required: true; readonly default: true }>;
152
+ readonly defaultAccount: F.Many2one<'account.account'>;
153
+ };
154
+ readonly methods: AccountJournalMethods;
155
+ }
156
+
157
+ /** Methods of `account.journal`: declared ones and transitions. */
158
+ export interface AccountJournalMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.journal'> {
159
+ }
160
+
161
+ /** `account.move` (owner: accounting; extended by: account_portal). */
162
+ export interface AccountMove {
163
+ readonly name: 'account.move';
164
+ readonly fields: {
165
+ readonly id: F.Id<'account.move'>;
166
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
167
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
168
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
169
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
170
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
171
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
172
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true; readonly store: true }>;
173
+ readonly numberSale: F.Char<{ readonly readonly: true; readonly sequence: true }>;
174
+ readonly numberPurchase: F.Char<{ readonly readonly: true; readonly sequence: true }>;
175
+ readonly numberCash: F.Char<{ readonly readonly: true; readonly sequence: true }>;
176
+ readonly numberBank: F.Char<{ readonly readonly: true; readonly sequence: true }>;
177
+ readonly numberGeneral: F.Char<{ readonly readonly: true; readonly sequence: true }>;
178
+ readonly journal: F.Many2one<'account.journal', { readonly required: true }>;
179
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
180
+ readonly kind: F.Selection<'entry' | 'out_invoice' | 'out_refund' | 'in_invoice' | 'in_refund' | 'out_debit' | 'in_debit', { readonly required: true; readonly default: true }>;
181
+ readonly partner: F.Many2one<'res.partner'>;
182
+ readonly ref: F.Char;
183
+ readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
184
+ readonly rate: F.Decimal;
185
+ readonly companyCurrency: F.Many2one<'res.currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
186
+ readonly narration: F.Text;
187
+ readonly lines: F.One2many<'account.move.line', { readonly required: true }>;
188
+ readonly invoiceLines: F.One2many<'account.move.line', { readonly required: true }>;
189
+ readonly amountDebit: F.Monetary<'companyCurrency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
190
+ readonly amountCredit: F.Monetary<'companyCurrency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
191
+ readonly dateDue: F.DateOnly;
192
+ readonly paymentDetails: F.Text<{ readonly readonly: true; readonly compute: true }>;
193
+ readonly paymentTerm: F.Many2one<'account.payment.term'>;
194
+ readonly invoiceOrigin: F.Char;
195
+ readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
196
+ readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
197
+ readonly amountTotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
198
+ readonly amountResidual: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
199
+ readonly paymentState: F.Selection<'not_applicable' | 'not_paid' | 'partial' | 'paid', { readonly readonly: true; readonly compute: true; readonly store: true }>;
200
+ readonly payments: F.Many2many<'account.payment', { readonly required: true }>;
201
+ readonly state: F.State<'draft' | 'to_approve' | 'posted' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
202
+ readonly postedAt: F.Datetime;
203
+ readonly postedTx: F.Char;
204
+ readonly reversalOf: F.Many2one<'account.move'>;
205
+ readonly debitOf: F.Many2one<'account.move'>;
206
+ readonly placeOfSupply: F.Char;
207
+ readonly reversedBy: F.Many2one<'account.move'>;
208
+ };
209
+ readonly methods: AccountMoveMethods;
210
+ }
211
+
212
+ /** Methods of `account.move`: declared ones and transitions. */
213
+ export interface AccountMoveMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.move'>, F.Methods<typeof import('../../account_portal/index.js').accountPortalShutro, 'account.move'> {
214
+ readonly 'cancel': () => Promise<void>;
215
+ readonly 'post': () => Promise<void>;
216
+ readonly 'redraft': () => Promise<void>;
217
+ readonly 'reject': () => Promise<void>;
218
+ readonly 'submit': () => Promise<void>;
219
+ }
220
+
221
+ /** `account.move.line` (owner: accounting). */
222
+ export interface AccountMoveLine {
223
+ readonly name: 'account.move.line';
224
+ readonly fields: {
225
+ readonly id: F.Id<'account.move.line'>;
226
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
227
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
228
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
229
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
230
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
231
+ readonly move: F.Many2one<'account.move', { readonly required: true }>;
232
+ readonly account: F.Many2one<'account.account'>;
233
+ readonly partner: F.Many2one<'res.partner'>;
234
+ readonly name: F.Char;
235
+ readonly date: F.DateOnly<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
236
+ readonly dateMaturity: F.DateOnly;
237
+ readonly companyCurrency: F.Many2one<'res.currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
238
+ readonly currency: F.Many2one<'res.currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
239
+ readonly debit: F.Monetary<'companyCurrency', { readonly required: true; readonly default: true }>;
240
+ readonly credit: F.Monetary<'companyCurrency', { readonly required: true; readonly default: true }>;
241
+ readonly amountCurrency: F.Monetary<'currency'>;
242
+ readonly lineKind: F.Selection<'entry' | 'product' | 'tax' | 'counterpart', { readonly required: true; readonly default: true }>;
243
+ readonly invoice: F.Many2one<'account.move', { readonly readonly: true; readonly compute: true; readonly store: true }>;
244
+ readonly product: F.Many2one<'product.product'>;
245
+ readonly quantity: F.Decimal<{ readonly default: true }>;
246
+ readonly priceUnit: F.Decimal<{ readonly default: true }>;
247
+ readonly discount: F.Decimal<{ readonly default: true }>;
248
+ readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
249
+ readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
250
+ readonly subtotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
251
+ readonly taxAmount: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
252
+ readonly taxLineOf: F.Many2one<'account.tax'>;
253
+ readonly taxComponent: F.Many2one<'account.tax.component'>;
254
+ readonly taxReverseCharge: F.Bool<{ readonly required: true; readonly default: true }>;
255
+ readonly taxBase: F.Monetary<'currency'>;
256
+ readonly balance: F.Monetary<'companyCurrency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
257
+ readonly posted: F.Bool<{ readonly required: true; readonly readonly: true; readonly default: true; readonly compute: true; readonly store: true }>;
258
+ readonly accountType: F.Selection<'asset_receivable' | 'asset_cash' | 'asset_current' | 'asset_prepayments' | 'asset_fixed' | 'asset_non_current' | 'liability_payable' | 'liability_current' | 'liability_non_current' | 'equity' | 'equity_unaffected' | 'income' | 'income_other' | 'expense' | 'expense_direct_cost' | 'expense_depreciation' | 'off_balance', { readonly readonly: true; readonly compute: true; readonly store: true }>;
259
+ readonly taxReport: F.Many2one<'account.tax', { readonly readonly: true; readonly compute: true; readonly store: true }>;
260
+ readonly partialsAsDebit: F.One2many<'account.partial.reconcile', { readonly required: true }>;
261
+ readonly partialsAsCredit: F.One2many<'account.partial.reconcile', { readonly required: true }>;
262
+ readonly fullReconcile: F.Many2one<'account.full.reconcile'>;
263
+ readonly amountResidual: F.Monetary<'companyCurrency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
264
+ readonly amountResidualCurrency: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
265
+ readonly reconciled: F.Bool<{ readonly required: true; readonly readonly: true; readonly default: true; readonly compute: true; readonly store: true }>;
266
+ };
267
+ readonly methods: AccountMoveLineMethods;
268
+ }
269
+
270
+ /** Methods of `account.move.line`: declared ones and transitions. */
271
+ export interface AccountMoveLineMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.move.line'> {
272
+ }
273
+
274
+ /** `account.partial.reconcile` (owner: accounting). */
275
+ export interface AccountPartialReconcile {
276
+ readonly name: 'account.partial.reconcile';
277
+ readonly fields: {
278
+ readonly id: F.Id<'account.partial.reconcile'>;
279
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
280
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
281
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
282
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
283
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
284
+ readonly debitLine: F.Many2one<'account.move.line', { readonly required: true }>;
285
+ readonly creditLine: F.Many2one<'account.move.line', { readonly required: true }>;
286
+ readonly amount: F.Decimal<{ readonly required: true }>;
287
+ readonly amountCurrency: F.Decimal;
288
+ readonly currency: F.Many2one<'res.currency'>;
289
+ readonly exchangeMove: F.Many2one<'account.move'>;
290
+ readonly fullReconcile: F.Many2one<'account.full.reconcile'>;
291
+ };
292
+ readonly methods: AccountPartialReconcileMethods;
293
+ }
294
+
295
+ /** Methods of `account.partial.reconcile`: declared ones and transitions. */
296
+ export interface AccountPartialReconcileMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.partial.reconcile'> {
297
+ }
298
+
299
+ /** `account.payment` (owner: accounting). */
300
+ export interface AccountPayment {
301
+ readonly name: 'account.payment';
302
+ readonly fields: {
303
+ readonly id: F.Id<'account.payment'>;
304
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
305
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
306
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
307
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
308
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
309
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
310
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true; readonly store: true }>;
311
+ readonly kind: F.Selection<'inbound' | 'outbound', { readonly required: true; readonly default: true }>;
312
+ readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
313
+ readonly journal: F.Many2one<'account.journal', { readonly required: true }>;
314
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
315
+ readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
316
+ readonly amount: F.Monetary<'currency', { readonly required: true }>;
317
+ readonly memo: F.Char;
318
+ readonly documents: F.Many2many<'account.move', { readonly required: true }>;
319
+ readonly withholdings: F.One2many<'account.payment.withholding', { readonly required: true }>;
320
+ readonly amountWithheld: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
321
+ readonly move: F.Many2one<'account.move'>;
322
+ readonly state: F.State<'draft' | 'posted' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
323
+ };
324
+ readonly methods: AccountPaymentMethods;
325
+ }
326
+
327
+ /** Methods of `account.payment`: declared ones and transitions. */
328
+ export interface AccountPaymentMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.payment'> {
329
+ readonly 'cancel': () => Promise<void>;
330
+ readonly 'post': () => Promise<void>;
331
+ readonly 'redraft': () => Promise<void>;
332
+ }
333
+
334
+ /** `account.payment.term` (owner: accounting). */
335
+ export interface AccountPaymentTerm {
336
+ readonly name: 'account.payment.term';
337
+ readonly fields: {
338
+ readonly id: F.Id<'account.payment.term'>;
339
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
340
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
341
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
342
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
343
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
344
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
345
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
346
+ readonly note: F.Text;
347
+ readonly lines: F.One2many<'account.payment.term.line', { readonly required: true }>;
348
+ };
349
+ readonly methods: AccountPaymentTermMethods;
350
+ }
351
+
352
+ /** Methods of `account.payment.term`: declared ones and transitions. */
353
+ export interface AccountPaymentTermMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.payment.term'> {
354
+ }
355
+
356
+ /** `account.payment.term.line` (owner: accounting). */
357
+ export interface AccountPaymentTermLine {
358
+ readonly name: 'account.payment.term.line';
359
+ readonly fields: {
360
+ readonly id: F.Id<'account.payment.term.line'>;
361
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
362
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
363
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
364
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
365
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
366
+ readonly term: F.Many2one<'account.payment.term', { readonly required: true }>;
367
+ readonly days: F.Integer<{ readonly required: true; readonly default: true }>;
368
+ readonly percent: F.Decimal<{ readonly required: true; readonly default: true }>;
369
+ };
370
+ readonly methods: AccountPaymentTermLineMethods;
371
+ }
372
+
373
+ /** Methods of `account.payment.term.line`: declared ones and transitions. */
374
+ export interface AccountPaymentTermLineMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.payment.term.line'> {
375
+ }
376
+
377
+ /** `account.payment.withholding` (owner: accounting). */
378
+ export interface AccountPaymentWithholding {
379
+ readonly name: 'account.payment.withholding';
380
+ readonly fields: {
381
+ readonly id: F.Id<'account.payment.withholding'>;
382
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
383
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
384
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
385
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
386
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
387
+ readonly payment: F.Many2one<'account.payment', { readonly required: true }>;
388
+ readonly withholding: F.Many2one<'account.withholding', { readonly required: true }>;
389
+ readonly currency: F.Many2one<'res.currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
390
+ readonly base: F.Monetary<'currency'>;
391
+ readonly amount: F.Monetary<'currency', { readonly required: true }>;
392
+ };
393
+ readonly methods: AccountPaymentWithholdingMethods;
394
+ }
395
+
396
+ /** Methods of `account.payment.withholding`: declared ones and transitions. */
397
+ export interface AccountPaymentWithholdingMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.payment.withholding'> {
398
+ }
399
+
400
+ /** `account.tax` (owner: product; extended by: accounting). */
401
+ export interface AccountTax {
402
+ readonly name: 'account.tax';
403
+ readonly fields: {
404
+ readonly id: F.Id<'account.tax'>;
405
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
406
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
407
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
408
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
409
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
410
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
411
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
412
+ readonly use: F.Selection<'sale' | 'purchase', { readonly required: true; readonly default: true }>;
413
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
414
+ readonly amountType: F.Selection<'percent' | 'fixed', { readonly required: true; readonly default: true }>;
415
+ readonly rate: F.Decimal<{ readonly required: true; readonly default: true }>;
416
+ readonly fixedAmount: F.Decimal<{ readonly required: true; readonly default: true }>;
417
+ readonly affectsBase: F.Bool<{ readonly required: true; readonly default: true }>;
418
+ readonly priceIncluded: F.Bool<{ readonly required: true; readonly default: true }>;
419
+ readonly reverseCharge: F.Bool<{ readonly required: true; readonly default: true }>;
420
+ readonly account: F.Many2one<'account.account'>; // accounting
421
+ readonly refundAccount: F.Many2one<'account.account'>; // accounting
422
+ readonly reverseChargeAccount: F.Many2one<'account.account'>; // accounting
423
+ readonly components: F.One2many<'account.tax.component', { readonly required: true }>; // accounting
424
+ };
425
+ readonly methods: AccountTaxMethods;
426
+ }
427
+
428
+ /** Methods of `account.tax`: declared ones and transitions. */
429
+ export interface AccountTaxMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'account.tax'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.tax'> {
430
+ }
431
+
432
+ /** `account.tax.component` (owner: accounting). */
433
+ export interface AccountTaxComponent {
434
+ readonly name: 'account.tax.component';
435
+ readonly fields: {
436
+ readonly id: F.Id<'account.tax.component'>;
437
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
438
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
439
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
440
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
441
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
442
+ readonly tax: F.Many2one<'account.tax', { readonly required: true }>;
443
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
444
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
445
+ readonly share: F.Decimal<{ readonly required: true; readonly default: true }>;
446
+ readonly scope: F.Selection<'always' | 'intra' | 'inter', { readonly required: true; readonly default: true }>;
447
+ readonly code: F.Char;
448
+ readonly account: F.Many2one<'account.account'>;
449
+ readonly refundAccount: F.Many2one<'account.account'>;
450
+ readonly reverseChargeAccount: F.Many2one<'account.account'>;
451
+ };
452
+ readonly methods: AccountTaxComponentMethods;
453
+ }
454
+
455
+ /** Methods of `account.tax.component`: declared ones and transitions. */
456
+ export interface AccountTaxComponentMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.tax.component'> {
457
+ }
458
+
459
+ /** `account.withholding` (owner: accounting). */
460
+ export interface AccountWithholding {
461
+ readonly name: 'account.withholding';
462
+ readonly fields: {
463
+ readonly id: F.Id<'account.withholding'>;
464
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
465
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
466
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
467
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
468
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
469
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
470
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
471
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
472
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
473
+ readonly direction: F.Selection<'vendor' | 'customer', { readonly required: true; readonly default: true }>;
474
+ readonly base: F.Selection<'untaxed' | 'tax' | 'total', { readonly required: true; readonly default: true }>;
475
+ readonly rate: F.Decimal<{ readonly required: true; readonly default: true }>;
476
+ readonly threshold: F.Decimal<{ readonly required: true; readonly default: true }>;
477
+ readonly account: F.Many2one<'account.account', { readonly required: true }>;
478
+ };
479
+ readonly methods: AccountWithholdingMethods;
480
+ }
481
+
482
+ /** Methods of `account.withholding`: declared ones and transitions. */
483
+ export interface AccountWithholdingMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.withholding'> {
484
+ }
485
+
486
+ /** `approval.level` (owner: permissions). */
487
+ export interface ApprovalLevel {
488
+ readonly name: 'approval.level';
489
+ readonly fields: {
490
+ readonly id: F.Id<'approval.level'>;
491
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
492
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
493
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
494
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
495
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
496
+ readonly policy: F.Many2one<'approval.policy', { readonly required: true }>;
497
+ readonly sequence: F.Integer<{ readonly default: true }>;
498
+ readonly name: F.Char<{ readonly required: true }>;
499
+ readonly condition: F.Json;
500
+ readonly approverRole: F.Char<{ readonly required: true }>;
501
+ };
502
+ readonly methods: ApprovalLevelMethods;
503
+ }
504
+
505
+ /** Methods of `approval.level`: declared ones and transitions. */
506
+ export interface ApprovalLevelMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.level'> {
507
+ }
508
+
509
+ /** `approval.policy` (owner: permissions). */
510
+ export interface ApprovalPolicy {
511
+ readonly name: 'approval.policy';
512
+ readonly fields: {
513
+ readonly id: F.Id<'approval.policy'>;
514
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
515
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
516
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
517
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
518
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
519
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
520
+ readonly name: F.Char<{ readonly required: true }>;
521
+ readonly targetModel: F.Char<{ readonly required: true }>;
522
+ readonly sequence: F.Integer<{ readonly default: true }>;
523
+ readonly company: F.Many2one<'res.company'>;
524
+ readonly onApproved: F.Char;
525
+ readonly onRejected: F.Char;
526
+ readonly levels: F.One2many<'approval.level', { readonly required: true }>;
527
+ };
528
+ readonly methods: ApprovalPolicyMethods;
529
+ }
530
+
531
+ /** Methods of `approval.policy`: declared ones and transitions. */
532
+ export interface ApprovalPolicyMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.policy'> {
533
+ }
534
+
535
+ /** `approval.request` (owner: permissions). */
536
+ export interface ApprovalRequest {
537
+ readonly name: 'approval.request';
538
+ readonly fields: {
539
+ readonly id: F.Id<'approval.request'>;
540
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
541
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
542
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
543
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
544
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
545
+ readonly policy: F.Many2one<'approval.policy'>;
546
+ readonly level: F.Many2one<'approval.level'>;
547
+ readonly levelName: F.Char<{ readonly required: true }>;
548
+ readonly sequence: F.Integer<{ readonly required: true }>;
549
+ readonly targetModel: F.Char<{ readonly required: true }>;
550
+ readonly targetId: F.Integer<{ readonly required: true }>;
551
+ readonly company: F.Many2one<'res.company'>;
552
+ readonly approverRole: F.Char<{ readonly required: true }>;
553
+ readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'cancelled', { readonly required: true; readonly default: true }>;
554
+ readonly requestedBy: F.Many2one<'res.users'>;
555
+ readonly decidedBy: F.Many2one<'res.users'>;
556
+ readonly decidedAt: F.Datetime;
557
+ readonly comment: F.Text;
558
+ };
559
+ readonly methods: ApprovalRequestMethods;
560
+ }
561
+
562
+ /** Methods of `approval.request`: declared ones and transitions. */
563
+ export interface ApprovalRequestMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.request'> {
564
+ }
565
+
566
+ /** `audit.event` (owner: base). */
567
+ export interface AuditEvent {
568
+ readonly name: 'audit.event';
569
+ readonly fields: {
570
+ readonly id: F.Id<'audit.event'>;
571
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
572
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
573
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
574
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
575
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
576
+ readonly kind: F.Char<{ readonly required: true }>;
577
+ readonly actor: F.Many2one<'res.users'>;
578
+ readonly company: F.Many2one<'res.company'>;
579
+ readonly targetModel: F.Char;
580
+ readonly targetId: F.Integer;
581
+ readonly summary: F.Char<{ readonly required: true }>;
582
+ readonly details: F.Json;
583
+ readonly ip: F.Char;
584
+ };
585
+ readonly methods: AuditEventMethods;
586
+ }
587
+
588
+ /** Methods of `audit.event`: declared ones and transitions. */
589
+ export interface AuditEventMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'audit.event'> {
590
+ }
591
+
592
+ /** `auth.api_key` (owner: base). */
593
+ export interface AuthApiKey {
594
+ readonly name: 'auth.api_key';
595
+ readonly fields: {
596
+ readonly id: F.Id<'auth.api_key'>;
597
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
598
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
599
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
600
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
601
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
602
+ readonly name: F.Char<{ readonly required: true }>;
603
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
604
+ readonly tokenHash: F.Char<{ readonly required: true }>;
605
+ readonly prefix: F.Char<{ readonly required: true }>;
606
+ readonly scopes: F.Text<{ readonly required: true }>;
607
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
608
+ readonly lastUsedAt: F.Datetime;
609
+ readonly lastUsedIp: F.Char;
610
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
611
+ readonly issuedBy: F.Many2one<'res.users'>;
612
+ };
613
+ readonly methods: AuthApiKeyMethods;
614
+ }
615
+
616
+ /** Methods of `auth.api_key`: declared ones and transitions. */
617
+ export interface AuthApiKeyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.api_key'> {
618
+ }
619
+
620
+ /** `auth.credential` (owner: base). */
621
+ export interface AuthCredential {
622
+ readonly name: 'auth.credential';
623
+ readonly fields: {
624
+ readonly id: F.Id<'auth.credential'>;
625
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
626
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
627
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
628
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
629
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
630
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
631
+ readonly passwordHash: F.Char;
632
+ readonly totpSecret: F.Char;
633
+ readonly totpEnabled: F.Bool<{ readonly required: true; readonly default: true }>;
634
+ readonly recoveryCodes: F.Json;
635
+ };
636
+ readonly methods: AuthCredentialMethods;
637
+ }
638
+
639
+ /** Methods of `auth.credential`: declared ones and transitions. */
640
+ export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
641
+ }
642
+
643
+ /** `auth.session` (owner: base). */
644
+ export interface AuthSession {
645
+ readonly name: 'auth.session';
646
+ readonly fields: {
647
+ readonly id: F.Id<'auth.session'>;
648
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
649
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
650
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
651
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
652
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
653
+ readonly tokenHash: F.Char<{ readonly required: true }>;
654
+ readonly csrfHash: F.Char<{ readonly required: true }>;
655
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
656
+ readonly twoFactorVerified: F.Bool<{ readonly required: true; readonly default: true }>;
657
+ readonly secondFactor: F.Bool<{ readonly required: true; readonly default: true }>;
658
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
659
+ readonly lastSeenAt: F.Datetime<{ readonly required: true }>;
660
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
661
+ readonly ip: F.Char;
662
+ readonly userAgent: F.Char;
663
+ };
664
+ readonly methods: AuthSessionMethods;
665
+ }
666
+
667
+ /** Methods of `auth.session`: declared ones and transitions. */
668
+ export interface AuthSessionMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.session'> {
669
+ }
670
+
671
+ /** `auth.user_grant` (owner: base). */
672
+ export interface AuthUserGrant {
673
+ readonly name: 'auth.user_grant';
674
+ readonly fields: {
675
+ readonly id: F.Id<'auth.user_grant'>;
676
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
677
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
678
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
679
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
680
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
681
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
682
+ readonly company: F.Many2one<'res.company'>;
683
+ readonly grant: F.Char<{ readonly required: true }>;
684
+ readonly expiresAt: F.Datetime;
685
+ readonly reason: F.Char<{ readonly required: true }>;
686
+ };
687
+ readonly methods: AuthUserGrantMethods;
688
+ }
689
+
690
+ /** Methods of `auth.user_grant`: declared ones and transitions. */
691
+ export interface AuthUserGrantMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_grant'> {
692
+ }
693
+
694
+ /** `auth.user_group` (owner: base). */
695
+ export interface AuthUserGroup {
696
+ readonly name: 'auth.user_group';
697
+ readonly fields: {
698
+ readonly id: F.Id<'auth.user_group'>;
699
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
700
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
701
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
702
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
703
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
704
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
705
+ readonly company: F.Many2one<'res.company'>;
706
+ readonly group: F.Char<{ readonly required: true }>;
707
+ };
708
+ readonly methods: AuthUserGroupMethods;
709
+ }
710
+
711
+ /** Methods of `auth.user_group`: declared ones and transitions. */
712
+ export interface AuthUserGroupMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_group'> {
713
+ }
714
+
715
+ /** `kosh.saved_view` (owner: base). */
716
+ export interface KoshSavedView {
717
+ readonly name: 'kosh.saved_view';
718
+ readonly fields: {
719
+ readonly id: F.Id<'kosh.saved_view'>;
720
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
721
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
722
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
723
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
724
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
725
+ readonly name: F.Char<{ readonly required: true }>;
726
+ readonly targetModel: F.Char<{ readonly required: true }>;
727
+ readonly viewType: F.Char<{ readonly required: true; readonly default: true }>;
728
+ readonly state: F.Json<unknown, { readonly required: true }>;
729
+ readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
730
+ readonly isDefault: F.Bool<{ readonly required: true; readonly default: true }>;
731
+ };
732
+ readonly methods: KoshSavedViewMethods;
733
+ }
734
+
735
+ /** Methods of `kosh.saved_view`: declared ones and transitions. */
736
+ export interface KoshSavedViewMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.saved_view'> {
737
+ }
738
+
739
+ /** `mail.activity` (owner: messaging). */
740
+ export interface MailActivity {
741
+ readonly name: 'mail.activity';
742
+ readonly fields: {
743
+ readonly id: F.Id<'mail.activity'>;
744
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
745
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
746
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
747
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
748
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
749
+ readonly resModel: F.Char<{ readonly required: true }>;
750
+ readonly resId: F.Integer<{ readonly required: true }>;
751
+ readonly type: F.Many2one<'mail.activity.type', { readonly required: true }>;
752
+ readonly summary: F.Char;
753
+ readonly note: F.Text;
754
+ readonly deadline: F.DateOnly<{ readonly required: true }>;
755
+ readonly assignee: F.Many2one<'res.users', { readonly required: true }>;
756
+ readonly done: F.Bool<{ readonly required: true; readonly default: true }>;
757
+ readonly doneAt: F.Datetime;
758
+ readonly feedback: F.Text;
759
+ };
760
+ readonly methods: MailActivityMethods;
761
+ }
762
+
763
+ /** Methods of `mail.activity`: declared ones and transitions. */
764
+ export interface MailActivityMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.activity'> {
765
+ }
766
+
767
+ /** `mail.activity.type` (owner: messaging). */
768
+ export interface MailActivityType {
769
+ readonly name: 'mail.activity.type';
770
+ readonly fields: {
771
+ readonly id: F.Id<'mail.activity.type'>;
772
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
773
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
774
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
775
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
776
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
777
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
778
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
779
+ readonly key: F.Char;
780
+ readonly icon: F.Char<{ readonly default: true }>;
781
+ readonly days: F.Integer<{ readonly default: true }>;
782
+ readonly sequence: F.Integer<{ readonly default: true }>;
783
+ };
784
+ readonly methods: MailActivityTypeMethods;
785
+ }
786
+
787
+ /** Methods of `mail.activity.type`: declared ones and transitions. */
788
+ export interface MailActivityTypeMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.activity.type'> {
789
+ }
790
+
791
+ /** `mail.channel` (owner: messaging). */
792
+ export interface MailChannel {
793
+ readonly name: 'mail.channel';
794
+ readonly fields: {
795
+ readonly id: F.Id<'mail.channel'>;
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 active: F.Bool<{ readonly required: true; readonly default: true }>;
802
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
803
+ readonly name: F.Char<{ readonly required: true }>;
804
+ readonly kind: F.Selection<'channel' | 'group' | 'direct', { readonly required: true; readonly default: true }>;
805
+ readonly description: F.Char;
806
+ readonly public: F.Bool<{ readonly required: true; readonly default: true }>;
807
+ readonly members: F.One2many<'mail.channel.member', { readonly required: true }>;
808
+ readonly pairKey: F.Char;
809
+ readonly lastMessageAt: F.Datetime;
810
+ };
811
+ readonly methods: MailChannelMethods;
812
+ }
813
+
814
+ /** Methods of `mail.channel`: declared ones and transitions. */
815
+ export interface MailChannelMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.channel'> {
816
+ }
817
+
818
+ /** `mail.channel.member` (owner: messaging). */
819
+ export interface MailChannelMember {
820
+ readonly name: 'mail.channel.member';
821
+ readonly fields: {
822
+ readonly id: F.Id<'mail.channel.member'>;
823
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
824
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
825
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
826
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
827
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
828
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
829
+ readonly channel: F.Many2one<'mail.channel', { readonly required: true }>;
830
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
831
+ readonly lastReadMessage: F.Many2one<'mail.message'>;
832
+ readonly muted: F.Bool<{ readonly required: true; readonly default: true }>;
833
+ readonly pinned: F.Bool<{ readonly required: true; readonly default: true }>;
834
+ };
835
+ readonly methods: MailChannelMemberMethods;
836
+ }
837
+
838
+ /** Methods of `mail.channel.member`: declared ones and transitions. */
839
+ export interface MailChannelMemberMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.channel.member'> {
840
+ }
841
+
842
+ /** `mail.follower` (owner: messaging). */
843
+ export interface MailFollower {
844
+ readonly name: 'mail.follower';
845
+ readonly fields: {
846
+ readonly id: F.Id<'mail.follower'>;
847
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
848
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
849
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
850
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
851
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
852
+ readonly resModel: F.Char<{ readonly required: true }>;
853
+ readonly resId: F.Integer<{ readonly required: true }>;
854
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
855
+ };
856
+ readonly methods: MailFollowerMethods;
857
+ }
858
+
859
+ /** Methods of `mail.follower`: declared ones and transitions. */
860
+ export interface MailFollowerMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.follower'> {
861
+ }
862
+
863
+ /** `mail.message` (owner: messaging). */
864
+ export interface MailMessage {
865
+ readonly name: 'mail.message';
866
+ readonly fields: {
867
+ readonly id: F.Id<'mail.message'>;
868
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
869
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
870
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
871
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
872
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
873
+ readonly resModel: F.Char<{ readonly required: true }>;
874
+ readonly resId: F.Integer<{ readonly required: true }>;
875
+ readonly kind: F.Selection<'comment' | 'note' | 'activity' | 'system', { readonly required: true; readonly default: true }>;
876
+ readonly author: F.Many2one<'res.users'>;
877
+ readonly authorEmail: F.Char;
878
+ readonly authorName: F.Char;
879
+ readonly text: F.Text<{ readonly required: true }>;
880
+ readonly body: F.Text<{ readonly required: true }>;
881
+ readonly mentions: F.Many2many<'res.users', { readonly required: true }>;
882
+ readonly attachments: F.Many2many<'storage.attachment', { readonly required: true }>;
883
+ readonly editedAt: F.Datetime;
884
+ readonly parent: F.Many2one<'mail.message'>;
885
+ readonly replyCount: F.Integer<{ readonly required: true; readonly default: true }>;
886
+ readonly reactions: F.One2many<'mail.message.reaction', { readonly required: true }>;
887
+ readonly deletedAt: F.Datetime;
888
+ };
889
+ readonly methods: MailMessageMethods;
890
+ }
891
+
892
+ /** Methods of `mail.message`: declared ones and transitions. */
893
+ export interface MailMessageMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message'> {
894
+ }
895
+
896
+ /** `mail.message.reaction` (owner: messaging). */
897
+ export interface MailMessageReaction {
898
+ readonly name: 'mail.message.reaction';
899
+ readonly fields: {
900
+ readonly id: F.Id<'mail.message.reaction'>;
901
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
902
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
903
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
904
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
905
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
906
+ readonly message: F.Many2one<'mail.message', { readonly required: true }>;
907
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
908
+ readonly emoji: F.Char<{ readonly required: true }>;
909
+ };
910
+ readonly methods: MailMessageReactionMethods;
911
+ }
912
+
913
+ /** Methods of `mail.message.reaction`: declared ones and transitions. */
914
+ export interface MailMessageReactionMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message.reaction'> {
915
+ }
916
+
917
+ /** `payment.provider` (owner: payment). */
918
+ export interface PaymentProvider {
919
+ readonly name: 'payment.provider';
920
+ readonly fields: {
921
+ readonly id: F.Id<'payment.provider'>;
922
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
923
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
924
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
925
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
926
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
927
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
928
+ readonly name: F.Char<{ readonly required: true }>;
929
+ readonly code: F.Selection<'fake' | 'sslcommerz', { readonly required: true; readonly default: true }>;
930
+ readonly state: F.Selection<'disabled' | 'test' | 'live', { readonly required: true; readonly default: true }>;
931
+ readonly journal: F.Many2one<'account.journal', { readonly required: true }>;
932
+ readonly endpoint: F.Many2one<'webhook.endpoint'>;
933
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
934
+ };
935
+ readonly methods: PaymentProviderMethods;
936
+ }
937
+
938
+ /** Methods of `payment.provider`: declared ones and transitions. */
939
+ export interface PaymentProviderMethods extends F.Methods<typeof import('../module.js').paymentShutro, 'payment.provider'> {
940
+ }
941
+
942
+ /** `payment.transaction` (owner: payment). */
943
+ export interface PaymentTransaction {
944
+ readonly name: 'payment.transaction';
945
+ readonly fields: {
946
+ readonly id: F.Id<'payment.transaction'>;
947
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
948
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
949
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
950
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
951
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
952
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
953
+ readonly reference: F.Char<{ readonly required: true; readonly default: true }>;
954
+ readonly provider: F.Many2one<'payment.provider', { readonly required: true }>;
955
+ readonly move: F.Many2one<'account.move', { readonly required: true }>;
956
+ readonly partner: F.Many2one<'res.partner'>;
957
+ readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
958
+ readonly amount: F.Monetary<'currency', { readonly required: true }>;
959
+ readonly state: F.Selection<'pending' | 'done' | 'failed' | 'cancelled', { readonly required: true; readonly default: true }>;
960
+ readonly providerReference: F.Char;
961
+ readonly payment: F.Many2one<'account.payment'>;
962
+ readonly error: F.Text;
963
+ readonly doneAt: F.Datetime;
964
+ };
965
+ readonly methods: PaymentTransactionMethods;
966
+ }
967
+
968
+ /** Methods of `payment.transaction`: declared ones and transitions. */
969
+ export interface PaymentTransactionMethods extends F.Methods<typeof import('../module.js').paymentShutro, 'payment.transaction'> {
970
+ }
971
+
972
+ /** `portal.announcement` (owner: portal). */
973
+ export interface PortalAnnouncement {
974
+ readonly name: 'portal.announcement';
975
+ readonly fields: {
976
+ readonly id: F.Id<'portal.announcement'>;
977
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
978
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
979
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
980
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
981
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
982
+ readonly resModel: F.Char<{ readonly required: true }>;
983
+ readonly resId: F.Integer<{ readonly required: true }>;
984
+ readonly document: F.Char<{ readonly required: true }>;
985
+ readonly recipients: F.Integer<{ readonly required: true; readonly default: true }>;
986
+ };
987
+ readonly methods: PortalAnnouncementMethods;
988
+ }
989
+
990
+ /** Methods of `portal.announcement`: declared ones and transitions. */
991
+ export interface PortalAnnouncementMethods extends F.Methods<typeof import('../../portal/index.js').portalShutro, 'portal.announcement'> {
992
+ }
993
+
994
+ /** `portal.invitation` (owner: portal). */
995
+ export interface PortalInvitation {
996
+ readonly name: 'portal.invitation';
997
+ readonly fields: {
998
+ readonly id: F.Id<'portal.invitation'>;
999
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1000
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1001
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1002
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1003
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1004
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
1005
+ readonly tokenHash: F.Char<{ readonly required: true }>;
1006
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
1007
+ readonly usedAt: F.Datetime;
1008
+ readonly invitedBy: F.Many2one<'res.users'>;
1009
+ };
1010
+ readonly methods: PortalInvitationMethods;
1011
+ }
1012
+
1013
+ /** Methods of `portal.invitation`: declared ones and transitions. */
1014
+ export interface PortalInvitationMethods extends F.Methods<typeof import('../../portal/index.js').portalShutro, 'portal.invitation'> {
1015
+ }
1016
+
1017
+ /** `portal.signature` (owner: portal). */
1018
+ export interface PortalSignature {
1019
+ readonly name: 'portal.signature';
1020
+ readonly fields: {
1021
+ readonly id: F.Id<'portal.signature'>;
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 resModel: F.Char<{ readonly required: true }>;
1029
+ readonly resId: F.Integer<{ readonly required: true }>;
1030
+ readonly action: F.Char<{ readonly required: true }>;
1031
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
1032
+ readonly signedName: F.Char<{ readonly required: true }>;
1033
+ readonly image: F.Binary;
1034
+ readonly documentHash: F.Char<{ readonly required: true }>;
1035
+ readonly ip: F.Char;
1036
+ };
1037
+ readonly methods: PortalSignatureMethods;
1038
+ }
1039
+
1040
+ /** Methods of `portal.signature`: declared ones and transitions. */
1041
+ export interface PortalSignatureMethods extends F.Methods<typeof import('../../portal/index.js').portalShutro, 'portal.signature'> {
1042
+ }
1043
+
1044
+ /** `product.category` (owner: product). */
1045
+ export interface ProductCategory {
1046
+ readonly name: 'product.category';
1047
+ readonly fields: {
1048
+ readonly id: F.Id<'product.category'>;
1049
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1050
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1051
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1052
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1053
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1054
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1055
+ readonly parent: F.Many2one<'product.category'>;
1056
+ };
1057
+ readonly methods: ProductCategoryMethods;
1058
+ }
1059
+
1060
+ /** Methods of `product.category`: declared ones and transitions. */
1061
+ export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'> {
1062
+ }
1063
+
1064
+ /** `product.product` (owner: product). */
1065
+ export interface ProductProduct {
1066
+ readonly name: 'product.product';
1067
+ readonly fields: {
1068
+ readonly id: F.Id<'product.product'>;
1069
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1070
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1071
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1072
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1073
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1074
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1075
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1076
+ readonly code: F.Char<{ readonly readonly: true; readonly sequence: true }>;
1077
+ readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
1078
+ readonly category: F.Many2one<'product.category'>;
1079
+ readonly uom: F.Many2one<'uom.uom'>;
1080
+ readonly barcode: F.Char;
1081
+ readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1082
+ readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1083
+ readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
1084
+ readonly purchaseOk: F.Bool<{ readonly required: true; readonly default: true }>;
1085
+ readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
1086
+ readonly purchaseTaxes: F.Many2many<'account.tax', { readonly required: true }>;
1087
+ readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
1088
+ readonly purchaseTax: F.Many2one<'account.tax', { readonly readonly: true }>;
1089
+ readonly description: F.Text<{ readonly translate: true }>;
1090
+ };
1091
+ readonly methods: ProductProductMethods;
1092
+ }
1093
+
1094
+ /** Methods of `product.product`: declared ones and transitions. */
1095
+ export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'> {
1096
+ }
1097
+
1098
+ /** `report.dashboard` (owner: reporting). */
1099
+ export interface ReportDashboard {
1100
+ readonly name: 'report.dashboard';
1101
+ readonly fields: {
1102
+ readonly id: F.Id<'report.dashboard'>;
1103
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1104
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1105
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1106
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1107
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1108
+ readonly name: F.Char<{ readonly required: true }>;
1109
+ readonly items: F.Json<unknown, { readonly required: true; readonly default: true }>;
1110
+ readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
1111
+ };
1112
+ readonly methods: ReportDashboardMethods;
1113
+ }
1114
+
1115
+ /** Methods of `report.dashboard`: declared ones and transitions. */
1116
+ export interface ReportDashboardMethods extends F.Methods<typeof import('../../reporting/index.js').reportingShutro, 'report.dashboard'> {
1117
+ }
1118
+
1119
+ /** `report.output` (owner: reporting). */
1120
+ export interface ReportOutput {
1121
+ readonly name: 'report.output';
1122
+ readonly fields: {
1123
+ readonly id: F.Id<'report.output'>;
1124
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1125
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1126
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1127
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1128
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1129
+ readonly schedule: F.Many2one<'report.schedule'>;
1130
+ readonly name: F.Char<{ readonly required: true }>;
1131
+ readonly filename: F.Char<{ readonly required: true }>;
1132
+ readonly mime: F.Char<{ readonly required: true }>;
1133
+ readonly size: F.Integer<{ readonly required: true }>;
1134
+ readonly content: F.Binary<{ readonly required: true }>;
1135
+ readonly recipients: F.Many2many<'res.users', { readonly required: true }>;
1136
+ };
1137
+ readonly methods: ReportOutputMethods;
1138
+ }
1139
+
1140
+ /** Methods of `report.output`: declared ones and transitions. */
1141
+ export interface ReportOutputMethods extends F.Methods<typeof import('../../reporting/index.js').reportingShutro, 'report.output'> {
1142
+ }
1143
+
1144
+ /** `report.schedule` (owner: reporting). */
1145
+ export interface ReportSchedule {
1146
+ readonly name: 'report.schedule';
1147
+ readonly fields: {
1148
+ readonly id: F.Id<'report.schedule'>;
1149
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1150
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1151
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1152
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1153
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1154
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1155
+ readonly name: F.Char<{ readonly required: true }>;
1156
+ readonly targetModel: F.Char<{ readonly required: true }>;
1157
+ readonly kind: F.Selection<'pivot' | 'list' | 'document', { readonly required: true; readonly default: true }>;
1158
+ readonly query: F.Json<unknown, { readonly required: true; readonly default: true }>;
1159
+ readonly template: F.Many2one<'report.template'>;
1160
+ readonly format: F.Selection<'xlsx' | 'csv' | 'pdf', { readonly required: true; readonly default: true }>;
1161
+ readonly frequency: F.Selection<'daily' | 'weekly' | 'monthly', { readonly required: true; readonly default: true }>;
1162
+ readonly hour: F.Integer<{ readonly default: true }>;
1163
+ readonly day: F.Integer<{ readonly default: true }>;
1164
+ readonly tz: F.Char<{ readonly default: true }>;
1165
+ readonly recipients: F.Many2many<'res.users', { readonly required: true }>;
1166
+ readonly nextRunAt: F.Datetime;
1167
+ readonly lastRunAt: F.Datetime;
1168
+ readonly lastError: F.Char;
1169
+ readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
1170
+ };
1171
+ readonly methods: ReportScheduleMethods;
1172
+ }
1173
+
1174
+ /** Methods of `report.schedule`: declared ones and transitions. */
1175
+ export interface ReportScheduleMethods extends F.Methods<typeof import('../../reporting/index.js').reportingShutro, 'report.schedule'> {
1176
+ }
1177
+
1178
+ /** `report.spreadsheet` (owner: reporting). */
1179
+ export interface ReportSpreadsheet {
1180
+ readonly name: 'report.spreadsheet';
1181
+ readonly fields: {
1182
+ readonly id: F.Id<'report.spreadsheet'>;
1183
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1184
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1185
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1186
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1187
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1188
+ readonly name: F.Char<{ readonly required: true }>;
1189
+ readonly cells: F.Json<unknown, { readonly required: true; readonly default: true }>;
1190
+ readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
1191
+ };
1192
+ readonly methods: ReportSpreadsheetMethods;
1193
+ }
1194
+
1195
+ /** Methods of `report.spreadsheet`: declared ones and transitions. */
1196
+ export interface ReportSpreadsheetMethods extends F.Methods<typeof import('../../reporting/index.js').reportingShutro, 'report.spreadsheet'> {
1197
+ }
1198
+
1199
+ /** `report.template` (owner: reporting). */
1200
+ export interface ReportTemplate {
1201
+ readonly name: 'report.template';
1202
+ readonly fields: {
1203
+ readonly id: F.Id<'report.template'>;
1204
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1205
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1206
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1207
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1208
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1209
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1210
+ readonly name: F.Char<{ readonly required: true }>;
1211
+ readonly targetModel: F.Char<{ readonly required: true }>;
1212
+ readonly key: F.Char;
1213
+ readonly layout: F.Json<unknown, { readonly required: true }>;
1214
+ readonly scope: F.Selection<'record' | 'list', { readonly required: true; readonly default: true }>;
1215
+ };
1216
+ readonly methods: ReportTemplateMethods;
1217
+ }
1218
+
1219
+ /** Methods of `report.template`: declared ones and transitions. */
1220
+ export interface ReportTemplateMethods extends F.Methods<typeof import('../../reporting/index.js').reportingShutro, 'report.template'> {
1221
+ }
1222
+
1223
+ /** `res.bank.account` (owner: accounting). */
1224
+ export interface ResBankAccount {
1225
+ readonly name: 'res.bank.account';
1226
+ readonly fields: {
1227
+ readonly id: F.Id<'res.bank.account'>;
1228
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1229
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1230
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1231
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1232
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1233
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1234
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1235
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1236
+ readonly bank: F.Char<{ readonly required: true }>;
1237
+ readonly branch: F.Char;
1238
+ readonly number: F.Char<{ readonly required: true }>;
1239
+ readonly holder: F.Char;
1240
+ readonly routing: F.Char;
1241
+ readonly swift: F.Char;
1242
+ readonly currency: F.Many2one<'res.currency'>;
1243
+ };
1244
+ readonly methods: ResBankAccountMethods;
1245
+ }
1246
+
1247
+ /** Methods of `res.bank.account`: declared ones and transitions. */
1248
+ export interface ResBankAccountMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.bank.account'> {
1249
+ }
1250
+
1251
+ /** `res.company` (owner: base; extended by: accounting). */
1252
+ export interface ResCompany {
1253
+ readonly name: 'res.company';
1254
+ readonly fields: {
1255
+ readonly id: F.Id<'res.company'>;
1256
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1257
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1258
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1259
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1260
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1261
+ readonly name: F.Char<{ readonly required: true }>;
1262
+ readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1263
+ readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
1264
+ readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1265
+ readonly chartTemplate: F.Char; // accounting
1266
+ readonly country: F.Char; // accounting
1267
+ readonly state: F.Char; // accounting
1268
+ readonly lockDate: F.DateOnly; // accounting
1269
+ readonly taxLockDate: F.DateOnly; // accounting
1270
+ readonly accountReceivable: F.Many2one<'account.account'>; // accounting
1271
+ readonly accountPayable: F.Many2one<'account.account'>; // accounting
1272
+ readonly accountExchangeGain: F.Many2one<'account.account'>; // accounting
1273
+ readonly accountExchangeLoss: F.Many2one<'account.account'>; // accounting
1274
+ readonly accountRetainedEarnings: F.Many2one<'account.account'>; // accounting
1275
+ };
1276
+ readonly methods: ResCompanyMethods;
1277
+ }
1278
+
1279
+ /** Methods of `res.company`: declared ones and transitions. */
1280
+ export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.company'> {
1281
+ }
1282
+
1283
+ /** `res.currency` (owner: base). */
1284
+ export interface ResCurrency {
1285
+ readonly name: 'res.currency';
1286
+ readonly fields: {
1287
+ readonly id: F.Id<'res.currency'>;
1288
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1289
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1290
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1291
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1292
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1293
+ readonly name: F.Char<{ readonly required: true }>;
1294
+ readonly rounding: F.Decimal<{ readonly required: true; readonly default: true }>;
1295
+ readonly decimalPlaces: F.Integer<{ readonly default: true }>;
1296
+ };
1297
+ readonly methods: ResCurrencyMethods;
1298
+ }
1299
+
1300
+ /** Methods of `res.currency`: declared ones and transitions. */
1301
+ export interface ResCurrencyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.currency'> {
1302
+ }
1303
+
1304
+ /** `res.currency.rate` (owner: accounting). */
1305
+ export interface ResCurrencyRate {
1306
+ readonly name: 'res.currency.rate';
1307
+ readonly fields: {
1308
+ readonly id: F.Id<'res.currency.rate'>;
1309
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1310
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1311
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1312
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1313
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1314
+ readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1315
+ readonly company: F.Many2one<'res.company'>;
1316
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
1317
+ readonly rate: F.Decimal<{ readonly required: true }>;
1318
+ };
1319
+ readonly methods: ResCurrencyRateMethods;
1320
+ }
1321
+
1322
+ /** Methods of `res.currency.rate`: declared ones and transitions. */
1323
+ export interface ResCurrencyRateMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.currency.rate'> {
1324
+ }
1325
+
1326
+ /** `res.partner` (owner: contacts; extended by: portal, accounting). */
1327
+ export interface ResPartner {
1328
+ readonly name: 'res.partner';
1329
+ readonly fields: {
1330
+ readonly id: F.Id<'res.partner'>;
1331
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1332
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1333
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1334
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1335
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1336
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1337
+ readonly company: F.Many2one<'res.company', { readonly default: true }>;
1338
+ readonly name: F.Char<{ readonly required: true }>;
1339
+ readonly isCompany: F.Bool<{ readonly required: true; readonly default: true }>;
1340
+ readonly parent: F.Many2one<'res.partner'>;
1341
+ readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
1342
+ readonly email: F.Char;
1343
+ readonly phone: F.Char;
1344
+ readonly mobile: F.Char;
1345
+ readonly website: F.Char;
1346
+ readonly street: F.Char;
1347
+ readonly city: F.Char;
1348
+ readonly zip: F.Char;
1349
+ readonly country: F.Char;
1350
+ readonly state: F.Char;
1351
+ readonly taxId: F.Char;
1352
+ readonly isCustomer: F.Bool<{ readonly required: true; readonly default: true }>;
1353
+ readonly isVendor: F.Bool<{ readonly required: true; readonly default: true }>;
1354
+ readonly currency: F.Many2one<'res.currency'>;
1355
+ readonly notes: F.Text;
1356
+ readonly portalUsers: F.One2many<'res.users', { readonly required: true }>; // portal
1357
+ readonly withholdings: F.Many2many<'account.withholding', { readonly required: true }>; // accounting
1358
+ };
1359
+ readonly methods: ResPartnerMethods;
1360
+ }
1361
+
1362
+ /** Methods of `res.partner`: declared ones and transitions. */
1363
+ export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../../portal/index.js').portalShutro, 'res.partner'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.partner'> {
1364
+ }
1365
+
1366
+ /** `res.users` (owner: base; extended by: portal). */
1367
+ export interface ResUsers {
1368
+ readonly name: 'res.users';
1369
+ readonly fields: {
1370
+ readonly id: F.Id<'res.users'>;
1371
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1372
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1373
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1374
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1375
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1376
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1377
+ readonly login: F.Char<{ readonly required: true }>;
1378
+ readonly name: F.Char<{ readonly required: true }>;
1379
+ readonly email: F.Char;
1380
+ readonly phone: F.Char;
1381
+ readonly company: F.Many2one<'res.company'>;
1382
+ readonly companies: F.Many2many<'res.company', { readonly required: true }>;
1383
+ readonly lang: F.Char<{ readonly default: true }>;
1384
+ readonly tz: F.Char<{ readonly default: true }>;
1385
+ readonly isService: F.Bool<{ readonly required: true; readonly default: true }>;
1386
+ readonly portalPartner: F.Many2one<'res.partner'>; // portal
1387
+ };
1388
+ readonly methods: ResUsersMethods;
1389
+ }
1390
+
1391
+ /** Methods of `res.users`: declared ones and transitions. */
1392
+ export interface ResUsersMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.users'>, F.Methods<typeof import('../../portal/index.js').portalShutro, 'res.users'> {
1393
+ }
1394
+
1395
+ /** `storage.attachment` (owner: storage). */
1396
+ export interface StorageAttachment {
1397
+ readonly name: 'storage.attachment';
1398
+ readonly fields: {
1399
+ readonly id: F.Id<'storage.attachment'>;
1400
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1401
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1402
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1403
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1404
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1405
+ readonly name: F.Char<{ readonly required: true }>;
1406
+ readonly mime: F.Char<{ readonly required: true }>;
1407
+ readonly size: F.Integer<{ readonly required: true }>;
1408
+ readonly sha256: F.Char<{ readonly required: true }>;
1409
+ readonly key: F.Char<{ readonly required: true }>;
1410
+ readonly resModel: F.Char<{ readonly required: true }>;
1411
+ readonly resId: F.Integer<{ readonly required: true }>;
1412
+ };
1413
+ readonly methods: StorageAttachmentMethods;
1414
+ }
1415
+
1416
+ /** Methods of `storage.attachment`: declared ones and transitions. */
1417
+ export interface StorageAttachmentMethods extends F.Methods<typeof import('../../storage/index.js').storageShutro, 'storage.attachment'> {
1418
+ }
1419
+
1420
+ /** `uom.uom` (owner: product). */
1421
+ export interface UomUom {
1422
+ readonly name: 'uom.uom';
1423
+ readonly fields: {
1424
+ readonly id: F.Id<'uom.uom'>;
1425
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1426
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1427
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1428
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1429
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1430
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1431
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1432
+ readonly category: F.Selection<'unit' | 'time' | 'weight' | 'length' | 'volume', { readonly required: true; readonly default: true }>;
1433
+ readonly ratio: F.Decimal<{ readonly required: true; readonly default: true }>;
1434
+ readonly rounding: F.Decimal<{ readonly required: true; readonly default: true }>;
1435
+ };
1436
+ readonly methods: UomUomMethods;
1437
+ }
1438
+
1439
+ /** Methods of `uom.uom`: declared ones and transitions. */
1440
+ export interface UomUomMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'uom.uom'> {
1441
+ }
1442
+
1443
+ /** `webhook.delivery` (owner: integrations). */
1444
+ export interface WebhookDelivery {
1445
+ readonly name: 'webhook.delivery';
1446
+ readonly fields: {
1447
+ readonly id: F.Id<'webhook.delivery'>;
1448
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1449
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1450
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1451
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1452
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1453
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1454
+ readonly subscription: F.Many2one<'webhook.subscription', { readonly required: true }>;
1455
+ readonly event: F.Char<{ readonly required: true }>;
1456
+ readonly payload: F.Json<unknown, { readonly required: true }>;
1457
+ readonly state: F.Selection<'pending' | 'done' | 'failed', { readonly required: true; readonly default: true }>;
1458
+ readonly attempts: F.Integer<{ readonly required: true; readonly default: true }>;
1459
+ readonly responseStatus: F.Integer;
1460
+ readonly responseBody: F.Text;
1461
+ readonly durationMs: F.Integer;
1462
+ readonly error: F.Text;
1463
+ readonly deliveredAt: F.Datetime;
1464
+ readonly replayOf: F.Many2one<'webhook.delivery'>;
1465
+ };
1466
+ readonly methods: WebhookDeliveryMethods;
1467
+ }
1468
+
1469
+ /** Methods of `webhook.delivery`: declared ones and transitions. */
1470
+ export interface WebhookDeliveryMethods extends F.Methods<typeof import('../../integrations/index.js').integrationsShutro, 'webhook.delivery'> {
1471
+ }
1472
+
1473
+ /** `webhook.endpoint` (owner: integrations). */
1474
+ export interface WebhookEndpoint {
1475
+ readonly name: 'webhook.endpoint';
1476
+ readonly fields: {
1477
+ readonly id: F.Id<'webhook.endpoint'>;
1478
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1479
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1480
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1481
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1482
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1483
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1484
+ readonly name: F.Char<{ readonly required: true }>;
1485
+ readonly hook: F.Char<{ readonly required: true }>;
1486
+ readonly token: F.Char<{ readonly required: true; readonly default: true }>;
1487
+ readonly secret: F.Char<{ readonly required: true; readonly default: true }>;
1488
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1489
+ readonly calls: F.One2many<'webhook.inbound', { readonly required: true }>;
1490
+ };
1491
+ readonly methods: WebhookEndpointMethods;
1492
+ }
1493
+
1494
+ /** Methods of `webhook.endpoint`: declared ones and transitions. */
1495
+ export interface WebhookEndpointMethods extends F.Methods<typeof import('../../integrations/index.js').integrationsShutro, 'webhook.endpoint'> {
1496
+ }
1497
+
1498
+ /** `webhook.inbound` (owner: integrations). */
1499
+ export interface WebhookInbound {
1500
+ readonly name: 'webhook.inbound';
1501
+ readonly fields: {
1502
+ readonly id: F.Id<'webhook.inbound'>;
1503
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1504
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1505
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1506
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1507
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1508
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1509
+ readonly endpoint: F.Many2one<'webhook.endpoint', { readonly required: true }>;
1510
+ readonly eventId: F.Char;
1511
+ readonly headers: F.Json<unknown, { readonly required: true }>;
1512
+ readonly body: F.Text<{ readonly required: true }>;
1513
+ readonly verified: F.Bool<{ readonly required: true; readonly default: true }>;
1514
+ readonly state: F.Selection<'refused' | 'received' | 'done' | 'failed', { readonly required: true; readonly default: true }>;
1515
+ readonly attempts: F.Integer<{ readonly required: true; readonly default: true }>;
1516
+ readonly result: F.Text;
1517
+ readonly error: F.Text;
1518
+ readonly handledAt: F.Datetime;
1519
+ };
1520
+ readonly methods: WebhookInboundMethods;
1521
+ }
1522
+
1523
+ /** Methods of `webhook.inbound`: declared ones and transitions. */
1524
+ export interface WebhookInboundMethods extends F.Methods<typeof import('../../integrations/index.js').integrationsShutro, 'webhook.inbound'> {
1525
+ }
1526
+
1527
+ /** `webhook.subscription` (owner: integrations). */
1528
+ export interface WebhookSubscription {
1529
+ readonly name: 'webhook.subscription';
1530
+ readonly fields: {
1531
+ readonly id: F.Id<'webhook.subscription'>;
1532
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1533
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1534
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1535
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1536
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1537
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1538
+ readonly name: F.Char<{ readonly required: true }>;
1539
+ readonly url: F.Char<{ readonly required: true }>;
1540
+ readonly events: F.Text<{ readonly required: true }>;
1541
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1542
+ readonly secret: F.Char<{ readonly required: true; readonly default: true }>;
1543
+ readonly runAs: F.Many2one<'res.users'>;
1544
+ readonly failures: F.Integer<{ readonly required: true; readonly default: true }>;
1545
+ readonly lastDeliveryAt: F.Datetime;
1546
+ readonly deliveries: F.One2many<'webhook.delivery', { readonly required: true }>;
1547
+ };
1548
+ readonly methods: WebhookSubscriptionMethods;
1549
+ }
1550
+
1551
+ /** Methods of `webhook.subscription`: declared ones and transitions. */
1552
+ export interface WebhookSubscriptionMethods extends F.Methods<typeof import('../../integrations/index.js').integrationsShutro, 'webhook.subscription'> {
1553
+ }