@pimia/sdk 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.d.ts +851 -13
- package/dist/client.d.ts +230 -0
- package/dist/client.js +52 -0
- package/dist/index.d.ts +9 -1
- package/dist/index.js +8 -0
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -192,6 +192,22 @@ export interface paths {
|
|
|
192
192
|
patch?: never;
|
|
193
193
|
trace?: never;
|
|
194
194
|
};
|
|
195
|
+
"/contracts/{contract}/activate": {
|
|
196
|
+
parameters: {
|
|
197
|
+
query?: never;
|
|
198
|
+
header?: never;
|
|
199
|
+
path?: never;
|
|
200
|
+
cookie?: never;
|
|
201
|
+
};
|
|
202
|
+
get?: never;
|
|
203
|
+
put?: never;
|
|
204
|
+
post: operations["contract.activateContract"];
|
|
205
|
+
delete?: never;
|
|
206
|
+
options?: never;
|
|
207
|
+
head?: never;
|
|
208
|
+
patch?: never;
|
|
209
|
+
trace?: never;
|
|
210
|
+
};
|
|
195
211
|
"/app/version": {
|
|
196
212
|
parameters: {
|
|
197
213
|
query?: never;
|
|
@@ -454,6 +470,22 @@ export interface paths {
|
|
|
454
470
|
patch?: never;
|
|
455
471
|
trace?: never;
|
|
456
472
|
};
|
|
473
|
+
"/contracts/{contract}/cancel": {
|
|
474
|
+
parameters: {
|
|
475
|
+
query?: never;
|
|
476
|
+
header?: never;
|
|
477
|
+
path?: never;
|
|
478
|
+
cookie?: never;
|
|
479
|
+
};
|
|
480
|
+
get?: never;
|
|
481
|
+
put?: never;
|
|
482
|
+
post: operations["contract.cancelContract"];
|
|
483
|
+
delete?: never;
|
|
484
|
+
options?: never;
|
|
485
|
+
head?: never;
|
|
486
|
+
patch?: never;
|
|
487
|
+
trace?: never;
|
|
488
|
+
};
|
|
457
489
|
"/estimates/{estimate}/status": {
|
|
458
490
|
parameters: {
|
|
459
491
|
query?: never;
|
|
@@ -808,6 +840,79 @@ export interface paths {
|
|
|
808
840
|
patch?: never;
|
|
809
841
|
trace?: never;
|
|
810
842
|
};
|
|
843
|
+
"/contracts/{contract}/document": {
|
|
844
|
+
parameters: {
|
|
845
|
+
query?: never;
|
|
846
|
+
header?: never;
|
|
847
|
+
path?: never;
|
|
848
|
+
cookie?: never;
|
|
849
|
+
};
|
|
850
|
+
get?: never;
|
|
851
|
+
put?: never;
|
|
852
|
+
post: operations["contractDocument.upload"];
|
|
853
|
+
delete: operations["contractDocument.destroy"];
|
|
854
|
+
options?: never;
|
|
855
|
+
head?: never;
|
|
856
|
+
patch?: never;
|
|
857
|
+
trace?: never;
|
|
858
|
+
};
|
|
859
|
+
"/contracts/delete": {
|
|
860
|
+
parameters: {
|
|
861
|
+
query?: never;
|
|
862
|
+
header?: never;
|
|
863
|
+
path?: never;
|
|
864
|
+
cookie?: never;
|
|
865
|
+
};
|
|
866
|
+
get?: never;
|
|
867
|
+
put?: never;
|
|
868
|
+
/**
|
|
869
|
+
* Borrado en lote (`POST /contracts/delete`). Fail-loud: un id no
|
|
870
|
+
* borrable aborta el lote entero antes de borrar nada
|
|
871
|
+
*/
|
|
872
|
+
post: operations["contracts.delete"];
|
|
873
|
+
delete?: never;
|
|
874
|
+
options?: never;
|
|
875
|
+
head?: never;
|
|
876
|
+
patch?: never;
|
|
877
|
+
trace?: never;
|
|
878
|
+
};
|
|
879
|
+
"/contracts": {
|
|
880
|
+
parameters: {
|
|
881
|
+
query?: never;
|
|
882
|
+
header?: never;
|
|
883
|
+
path?: never;
|
|
884
|
+
cookie?: never;
|
|
885
|
+
};
|
|
886
|
+
get: operations["contracts.index"];
|
|
887
|
+
put?: never;
|
|
888
|
+
post: operations["contracts.store"];
|
|
889
|
+
delete?: never;
|
|
890
|
+
options?: never;
|
|
891
|
+
head?: never;
|
|
892
|
+
patch?: never;
|
|
893
|
+
trace?: never;
|
|
894
|
+
};
|
|
895
|
+
"/contracts/{contract}": {
|
|
896
|
+
parameters: {
|
|
897
|
+
query?: never;
|
|
898
|
+
header?: never;
|
|
899
|
+
path?: never;
|
|
900
|
+
cookie?: never;
|
|
901
|
+
};
|
|
902
|
+
get: operations["contracts.show"];
|
|
903
|
+
put: operations["contracts.update"];
|
|
904
|
+
post?: never;
|
|
905
|
+
/**
|
|
906
|
+
* Borra UN contrato, el de la ruta. Solo en borrador: lo activo se
|
|
907
|
+
* cancela, no se borra (decisión 8) — y eso es un 422 con el porqué, no
|
|
908
|
+
* un 500 ni un borrado a medias
|
|
909
|
+
*/
|
|
910
|
+
delete: operations["contracts.destroy"];
|
|
911
|
+
options?: never;
|
|
912
|
+
head?: never;
|
|
913
|
+
patch?: never;
|
|
914
|
+
trace?: never;
|
|
915
|
+
};
|
|
811
916
|
"/estimates/{estimate}/convert-to-invoice": {
|
|
812
917
|
parameters: {
|
|
813
918
|
query?: never;
|
|
@@ -2676,7 +2781,12 @@ export interface paths {
|
|
|
2676
2781
|
path?: never;
|
|
2677
2782
|
cookie?: never;
|
|
2678
2783
|
};
|
|
2679
|
-
/**
|
|
2784
|
+
/**
|
|
2785
|
+
* Retrieve a list of existing Items
|
|
2786
|
+
* @description El `@return` de JsonResponse se retira como en el índice de facturas:
|
|
2787
|
+
* nunca fue el tipo real y, con dos returns, dejaba la respuesta sin forma
|
|
2788
|
+
* en el spec.
|
|
2789
|
+
*/
|
|
2680
2790
|
get: operations["items.index"];
|
|
2681
2791
|
put?: never;
|
|
2682
2792
|
/** Create Item */
|
|
@@ -3940,6 +4050,22 @@ export interface paths {
|
|
|
3940
4050
|
patch?: never;
|
|
3941
4051
|
trace?: never;
|
|
3942
4052
|
};
|
|
4053
|
+
"/contracts/{contract}/renew": {
|
|
4054
|
+
parameters: {
|
|
4055
|
+
query?: never;
|
|
4056
|
+
header?: never;
|
|
4057
|
+
path?: never;
|
|
4058
|
+
cookie?: never;
|
|
4059
|
+
};
|
|
4060
|
+
get?: never;
|
|
4061
|
+
put?: never;
|
|
4062
|
+
post: operations["contract.renewContract"];
|
|
4063
|
+
delete?: never;
|
|
4064
|
+
options?: never;
|
|
4065
|
+
head?: never;
|
|
4066
|
+
patch?: never;
|
|
4067
|
+
trace?: never;
|
|
4068
|
+
};
|
|
3943
4069
|
"/roles/{role}/abilities": {
|
|
3944
4070
|
parameters: {
|
|
3945
4071
|
query?: never;
|
|
@@ -4277,6 +4403,54 @@ export interface paths {
|
|
|
4277
4403
|
patch?: never;
|
|
4278
4404
|
trace?: never;
|
|
4279
4405
|
};
|
|
4406
|
+
"/invoices/{invoice}/shared-link": {
|
|
4407
|
+
parameters: {
|
|
4408
|
+
query?: never;
|
|
4409
|
+
header?: never;
|
|
4410
|
+
path?: never;
|
|
4411
|
+
cookie?: never;
|
|
4412
|
+
};
|
|
4413
|
+
get: operations["invoice.sharedLink"];
|
|
4414
|
+
put?: never;
|
|
4415
|
+
post?: never;
|
|
4416
|
+
delete?: never;
|
|
4417
|
+
options?: never;
|
|
4418
|
+
head?: never;
|
|
4419
|
+
patch?: never;
|
|
4420
|
+
trace?: never;
|
|
4421
|
+
};
|
|
4422
|
+
"/contracts/{contract}/shared-link": {
|
|
4423
|
+
parameters: {
|
|
4424
|
+
query?: never;
|
|
4425
|
+
header?: never;
|
|
4426
|
+
path?: never;
|
|
4427
|
+
cookie?: never;
|
|
4428
|
+
};
|
|
4429
|
+
get: operations["contract.sharedLink"];
|
|
4430
|
+
put?: never;
|
|
4431
|
+
post?: never;
|
|
4432
|
+
delete?: never;
|
|
4433
|
+
options?: never;
|
|
4434
|
+
head?: never;
|
|
4435
|
+
patch?: never;
|
|
4436
|
+
trace?: never;
|
|
4437
|
+
};
|
|
4438
|
+
"/estimates/{estimate}/shared-link": {
|
|
4439
|
+
parameters: {
|
|
4440
|
+
query?: never;
|
|
4441
|
+
header?: never;
|
|
4442
|
+
path?: never;
|
|
4443
|
+
cookie?: never;
|
|
4444
|
+
};
|
|
4445
|
+
get: operations["estimate.sharedLink"];
|
|
4446
|
+
put?: never;
|
|
4447
|
+
post?: never;
|
|
4448
|
+
delete?: never;
|
|
4449
|
+
options?: never;
|
|
4450
|
+
head?: never;
|
|
4451
|
+
patch?: never;
|
|
4452
|
+
trace?: never;
|
|
4453
|
+
};
|
|
4280
4454
|
"/expenses/{expense}/show/receipt": {
|
|
4281
4455
|
parameters: {
|
|
4282
4456
|
query?: never;
|
|
@@ -5710,6 +5884,23 @@ export interface components {
|
|
|
5710
5884
|
name: string;
|
|
5711
5885
|
} | null;
|
|
5712
5886
|
};
|
|
5887
|
+
/**
|
|
5888
|
+
* ActivateContractRequest
|
|
5889
|
+
* @description Activación de un contrato (`POST /contracts/{contract}/activate`).
|
|
5890
|
+
*
|
|
5891
|
+
* Sin cuerpo, el contrato CREA su recurrente gobernada; con
|
|
5892
|
+
* `recurring_invoice_id`, ADOPTA esa — heredándole los límites del periodo
|
|
5893
|
+
* pero sin pisar su frecuencia, sus líneas ni sus impuestos, que son
|
|
5894
|
+
* configuración humana (Contract::activate()).
|
|
5895
|
+
*
|
|
5896
|
+
* El `exists` va acotado por empresa por la misma lección de siempre (#395):
|
|
5897
|
+
* dentro de una instancia conviven varias empresas, y el id a secas casaría
|
|
5898
|
+
* la recurrente de otra. El modelo lo re-comprueba (empresa Y cliente), pero
|
|
5899
|
+
* el 422 de aquí llega antes y dice qué falla.
|
|
5900
|
+
*/
|
|
5901
|
+
ActivateContractRequest: {
|
|
5902
|
+
recurring_invoice_id?: number | null;
|
|
5903
|
+
};
|
|
5713
5904
|
/** AddressResource */
|
|
5714
5905
|
AddressResource: {
|
|
5715
5906
|
id: number;
|
|
@@ -5955,6 +6146,102 @@ export interface components {
|
|
|
5955
6146
|
/** Format: date-time */
|
|
5956
6147
|
updated_at: string | null;
|
|
5957
6148
|
};
|
|
6149
|
+
/**
|
|
6150
|
+
* ContractRequest
|
|
6151
|
+
* @description Alta y edición de un contrato (`POST /contracts`, `PUT /contracts/{id}`).
|
|
6152
|
+
*
|
|
6153
|
+
* Dos decisiones que no son costumbre sino contrato (#583):
|
|
6154
|
+
*
|
|
6155
|
+
* - **`status` NO se acepta aquí.** El ciclo de vida va por sus acciones
|
|
6156
|
+
* (`activate`/`cancel`/`renew`), que son las que gobiernan las recurrentes;
|
|
6157
|
+
* aceptar `status` en el PUT sería un contrato ACTIVE sin recurrente o
|
|
6158
|
+
* CANCELLED sin pausar nada — el estado mentiría. La lista blanca del
|
|
6159
|
+
* payload son estas reglas (ContractFields), así que no declararlo ya es
|
|
6160
|
+
* excluirlo.
|
|
6161
|
+
* - **Los cerrados llevan `Rule::in`**, y no solo por validar: el generador
|
|
6162
|
+
* del spec deduce el enum de la regla, y el estudio dejó medido lo que pasa
|
|
6163
|
+
* cuando no se hace — `frequency`/`status`/`limit_by` de la recurrente son
|
|
6164
|
+
* `string` sin enum en el contrato público y el SDK hereda esa opacidad.
|
|
6165
|
+
*/
|
|
6166
|
+
ContractRequest: {
|
|
6167
|
+
title: string;
|
|
6168
|
+
description?: string | null;
|
|
6169
|
+
contract_number?: string | null;
|
|
6170
|
+
customer_id: number;
|
|
6171
|
+
/** Format: date-time */
|
|
6172
|
+
starts_at: string;
|
|
6173
|
+
/**
|
|
6174
|
+
* Format: date-time
|
|
6175
|
+
* @description Nullable = contrato indefinido: la recurrente gobernada hereda
|
|
6176
|
+
* `limit_by = NONE`.
|
|
6177
|
+
*/
|
|
6178
|
+
ends_at?: string | null;
|
|
6179
|
+
/**
|
|
6180
|
+
* @description Céntimos, enteros — la convención monetaria de la casa. El tope
|
|
6181
|
+
* es el mismo que el de `total` en documentos.
|
|
6182
|
+
*/
|
|
6183
|
+
amount: number;
|
|
6184
|
+
currency_id?: number | null;
|
|
6185
|
+
/** @enum {string} */
|
|
6186
|
+
billing_every: "MONTHLY" | "QUARTERLY" | "SEMIANNUAL" | "ANNUAL";
|
|
6187
|
+
/**
|
|
6188
|
+
* @description 1..31 y no 1..28: el 29-31 es entrada legítima («factúrame a fin
|
|
6189
|
+
* de mes») que la compilación fija al 28 — rechazarla aquí obligaría
|
|
6190
|
+
* al cliente a conocer una limitación de cron que es nuestra.
|
|
6191
|
+
*/
|
|
6192
|
+
billing_anchor_day?: number | null;
|
|
6193
|
+
/** @enum {string|null} */
|
|
6194
|
+
renewal_mode?: "NONE" | "MANUAL" | "TACIT" | null;
|
|
6195
|
+
/**
|
|
6196
|
+
* @description Nullable = «usa el default del catálogo regional» (#584). El tope
|
|
6197
|
+
* corta los disparates sin opinar sobre ninguna legislación.
|
|
6198
|
+
*/
|
|
6199
|
+
notice_days?: number | null;
|
|
6200
|
+
/**
|
|
6201
|
+
* @description El presupuesto de origen, acotado por empresa — la lección del
|
|
6202
|
+
* `item_id` de las recurrentes (#395): sin el `where`, un contrato
|
|
6203
|
+
* podía quedar apuntando al presupuesto de OTRA empresa del tenant.
|
|
6204
|
+
*/
|
|
6205
|
+
estimate_id?: number | null;
|
|
6206
|
+
};
|
|
6207
|
+
/** ContractResource */
|
|
6208
|
+
ContractResource: {
|
|
6209
|
+
id: number;
|
|
6210
|
+
title: string;
|
|
6211
|
+
description: string | null;
|
|
6212
|
+
contract_number: string | null;
|
|
6213
|
+
customer_id: number | null;
|
|
6214
|
+
company_id: number | null;
|
|
6215
|
+
creator_id: number | null;
|
|
6216
|
+
currency_id: number | null;
|
|
6217
|
+
status: string;
|
|
6218
|
+
ha_vencido: boolean;
|
|
6219
|
+
starts_at: string | null;
|
|
6220
|
+
ends_at: string | null;
|
|
6221
|
+
amount: number | null;
|
|
6222
|
+
billing_every: string;
|
|
6223
|
+
billing_anchor_day: number | null;
|
|
6224
|
+
renewal_mode: string;
|
|
6225
|
+
notice_days: number | null;
|
|
6226
|
+
/**
|
|
6227
|
+
* @description El efectivo: el del contrato o el default del catálogo regional
|
|
6228
|
+
* (config/contracts.php). La pantalla enseña este, no el crudo.
|
|
6229
|
+
*/
|
|
6230
|
+
notice_days_effective: number;
|
|
6231
|
+
/**
|
|
6232
|
+
* @description ¿Hay firmado adjunto? El fichero se sube por su POST multiparte
|
|
6233
|
+
* dedicado (#584) y se pisa al resubir.
|
|
6234
|
+
*/
|
|
6235
|
+
has_document: boolean;
|
|
6236
|
+
estimate_id: number | null;
|
|
6237
|
+
/** Format: date-time */
|
|
6238
|
+
cancelled_at: string | null;
|
|
6239
|
+
fields?: components["schemas"]["CustomFieldValueResource"][];
|
|
6240
|
+
customer?: components["schemas"]["CustomerResource"] | null;
|
|
6241
|
+
estimate?: components["schemas"]["EstimateResource"] | null;
|
|
6242
|
+
recurring_invoices?: components["schemas"]["RecurringInvoiceResource"][];
|
|
6243
|
+
invoices?: components["schemas"]["InvoiceResource"][];
|
|
6244
|
+
};
|
|
5958
6245
|
/**
|
|
5959
6246
|
* ConvertEstimateRequest
|
|
5960
6247
|
* @description Cuerpo —opcional— de la conversión de un presupuesto en factura.
|
|
@@ -6297,6 +6584,19 @@ export interface components {
|
|
|
6297
6584
|
*/
|
|
6298
6585
|
external_ref: string | null;
|
|
6299
6586
|
};
|
|
6587
|
+
/**
|
|
6588
|
+
* DeleteContractsRequest
|
|
6589
|
+
* @description Borrado múltiple de contratos (`POST /contracts/delete`). Mismo patrón que
|
|
6590
|
+
* DeleteRecurringInvoicesRequest: el `exists` convierte el id inexistente en
|
|
6591
|
+
* un 422 que dice cuál falla, en vez del 500 de iterar sobre un `find()` nulo.
|
|
6592
|
+
*
|
|
6593
|
+
* Lo que NO valida esto: que cada contrato esté en borrador. Esa es la regla
|
|
6594
|
+
* de negocio (decisión 8: lo activo se cancela, no se borra) y vive en
|
|
6595
|
+
* `Contract::deleteContracts()`, que aborta el lote entero en voz alta.
|
|
6596
|
+
*/
|
|
6597
|
+
DeleteContractsRequest: {
|
|
6598
|
+
ids: number[];
|
|
6599
|
+
};
|
|
6300
6600
|
/** DeleteCustomersRequest */
|
|
6301
6601
|
DeleteCustomersRequest: {
|
|
6302
6602
|
ids: number[];
|
|
@@ -7082,6 +7382,7 @@ export interface components {
|
|
|
7082
7382
|
sent_at: string | null;
|
|
7083
7383
|
/** Format: date-time */
|
|
7084
7384
|
viewed_at: string | null;
|
|
7385
|
+
contract_id: number | null;
|
|
7085
7386
|
};
|
|
7086
7387
|
/** InvoiceItem */
|
|
7087
7388
|
InvoiceItem: {
|
|
@@ -7620,6 +7921,54 @@ export interface components {
|
|
|
7620
7921
|
taxes?: components["schemas"]["TaxResource"][];
|
|
7621
7922
|
currency?: components["schemas"]["CurrencyResource"] | null;
|
|
7622
7923
|
};
|
|
7924
|
+
/** ItemSummaryResource */
|
|
7925
|
+
ItemSummaryResource: {
|
|
7926
|
+
id: number;
|
|
7927
|
+
name: string;
|
|
7928
|
+
item_type: string;
|
|
7929
|
+
sku: string | null;
|
|
7930
|
+
supplier_reference: string | null;
|
|
7931
|
+
description: string | null;
|
|
7932
|
+
price: number;
|
|
7933
|
+
purchase_price: number | null;
|
|
7934
|
+
default_discount: number;
|
|
7935
|
+
category_id: number | null;
|
|
7936
|
+
category?: {
|
|
7937
|
+
id: number;
|
|
7938
|
+
name: string;
|
|
7939
|
+
};
|
|
7940
|
+
unit_id: number | null;
|
|
7941
|
+
/**
|
|
7942
|
+
* @description Del `leftJoin` del índice, no de la relación: es el único dato de
|
|
7943
|
+
* la unidad que los listados pintan.
|
|
7944
|
+
*/
|
|
7945
|
+
unit_name: string | null;
|
|
7946
|
+
company_id: number | null;
|
|
7947
|
+
currency_id: number | null;
|
|
7948
|
+
tax_per_item: string;
|
|
7949
|
+
purchase_tax_type_id: number | null;
|
|
7950
|
+
is_active: boolean;
|
|
7951
|
+
is_time_trackable: boolean;
|
|
7952
|
+
opening_stock: number;
|
|
7953
|
+
stock_alert_qty: number | null;
|
|
7954
|
+
allow_sale_without_stock: boolean;
|
|
7955
|
+
/** Format: date-time */
|
|
7956
|
+
created_at: string | null;
|
|
7957
|
+
/** Format: date-time */
|
|
7958
|
+
updated_at: string | null;
|
|
7959
|
+
taxes?: {
|
|
7960
|
+
id: number;
|
|
7961
|
+
tax_type_id: number | null;
|
|
7962
|
+
item_id: number | null;
|
|
7963
|
+
company_id: number | null;
|
|
7964
|
+
name: string;
|
|
7965
|
+
amount: number;
|
|
7966
|
+
percent: number;
|
|
7967
|
+
base_amount: number;
|
|
7968
|
+
currency_id: number | null;
|
|
7969
|
+
type: string | null;
|
|
7970
|
+
}[];
|
|
7971
|
+
};
|
|
7623
7972
|
/** ItemsRequest */
|
|
7624
7973
|
ItemsRequest: {
|
|
7625
7974
|
name: string;
|
|
@@ -8350,6 +8699,18 @@ export interface components {
|
|
|
8350
8699
|
creator?: components["schemas"]["UserResource"] | null;
|
|
8351
8700
|
currency?: components["schemas"]["CurrencyResource"] | null;
|
|
8352
8701
|
};
|
|
8702
|
+
/**
|
|
8703
|
+
* RenewContractRequest
|
|
8704
|
+
* @description Renovación manual de un contrato (`POST /contracts/{contract}/renew`).
|
|
8705
|
+
*
|
|
8706
|
+
* Solo la fecha nueva: que sea POSTERIOR al fin actual —renovar es extender—
|
|
8707
|
+
* lo comprueba `Contract::renew()`, porque depende del estado del contrato y
|
|
8708
|
+
* no del cuerpo. La renovación tácita no pasa por aquí: es el job de fase 2.
|
|
8709
|
+
*/
|
|
8710
|
+
RenewContractRequest: {
|
|
8711
|
+
/** Format: date-time */
|
|
8712
|
+
ends_at: string;
|
|
8713
|
+
};
|
|
8353
8714
|
/** Role */
|
|
8354
8715
|
Role: {
|
|
8355
8716
|
id: number;
|
|
@@ -8390,7 +8751,7 @@ export interface components {
|
|
|
8390
8751
|
* ningún permiso es una operación legítima, y `required` la
|
|
8391
8752
|
* prohibiría (un array vacío no pasa `required`).
|
|
8392
8753
|
*/
|
|
8393
|
-
abilities: ("dashboard" | "view-customer" | "create-customer" | "edit-customer" | "delete-customer" | "view-estimate" | "create-estimate" | "edit-estimate" | "delete-estimate" | "send-estimate" | "view-invoice" | "create-invoice" | "edit-invoice" | "delete-invoice" | "send-invoice" | "view-recurring-invoice" | "create-recurring-invoice" | "edit-recurring-invoice" | "delete-recurring-invoice" | "view-payment" | "create-payment" | "edit-payment" | "delete-payment" | "send-payment" | "view-expense" | "create-expense" | "edit-expense" | "delete-expense" | "view-delivery-note" | "create-delivery-note" | "edit-delivery-note" | "delete-delivery-note" | "view-item" | "create-item" | "edit-item" | "delete-item" | "view-lead" | "create-lead" | "edit-lead" | "delete-lead" | "convert-lead" | "view-contact" | "create-contact" | "edit-contact" | "delete-contact" | "view-project" | "create-project" | "edit-project" | "delete-project" | "view-task" | "create-task" | "edit-task" | "delete-task" | "view-own-task" | "edit-own-task" | "view-time-entry" | "create-time-entry" | "edit-time-entry" | "delete-time-entry" | "view-own-time-entry" | "create-own-time-entry" | "edit-own-time-entry" | "delete-own-time-entry" | "view-tax-type" | "create-tax-type" | "edit-tax-type" | "delete-tax-type" | "view-custom-field" | "create-custom-field" | "edit-custom-field" | "delete-custom-field" | "view-role" | "create-role" | "edit-role" | "delete-role" | "view-financial-reports" | "view-all-notes" | "manage-all-notes" | "time_clock.punch" | "time_clock.view_own" | "time_clock.view_team" | "time_clock.correct" | "absence.request" | "absence.approve" | "report.download_legal" | "view-employee" | "create-employee" | "edit-employee" | "delete-employee" | "view-work-schedule" | "manage-work-schedule" | "view-work-calendar" | "manage-work-calendar" | "pos.operate" | "pos.supervise" | "pos.void" | "pos.discount_high" | "pos.cash_movement" | "pos.return" | "pos.admin" | "pos.report" | "view-appointment" | "create-appointment" | "edit-appointment" | "delete-appointment")[];
|
|
8754
|
+
abilities: ("dashboard" | "view-customer" | "create-customer" | "edit-customer" | "delete-customer" | "view-estimate" | "create-estimate" | "edit-estimate" | "delete-estimate" | "send-estimate" | "view-invoice" | "create-invoice" | "edit-invoice" | "delete-invoice" | "send-invoice" | "view-recurring-invoice" | "create-recurring-invoice" | "edit-recurring-invoice" | "delete-recurring-invoice" | "view-payment" | "create-payment" | "edit-payment" | "delete-payment" | "send-payment" | "view-expense" | "create-expense" | "edit-expense" | "delete-expense" | "view-delivery-note" | "create-delivery-note" | "edit-delivery-note" | "delete-delivery-note" | "view-item" | "create-item" | "edit-item" | "delete-item" | "view-lead" | "create-lead" | "edit-lead" | "delete-lead" | "convert-lead" | "view-contact" | "create-contact" | "edit-contact" | "delete-contact" | "view-project" | "create-project" | "edit-project" | "delete-project" | "view-task" | "create-task" | "edit-task" | "delete-task" | "view-own-task" | "edit-own-task" | "view-time-entry" | "create-time-entry" | "edit-time-entry" | "delete-time-entry" | "view-own-time-entry" | "create-own-time-entry" | "edit-own-time-entry" | "delete-own-time-entry" | "view-tax-type" | "create-tax-type" | "edit-tax-type" | "delete-tax-type" | "view-custom-field" | "create-custom-field" | "edit-custom-field" | "delete-custom-field" | "view-role" | "create-role" | "edit-role" | "delete-role" | "view-financial-reports" | "view-all-notes" | "manage-all-notes" | "time_clock.punch" | "time_clock.view_own" | "time_clock.view_team" | "time_clock.correct" | "absence.request" | "absence.approve" | "report.download_legal" | "view-employee" | "create-employee" | "edit-employee" | "delete-employee" | "view-work-schedule" | "manage-work-schedule" | "view-work-calendar" | "manage-work-calendar" | "pos.operate" | "pos.supervise" | "pos.void" | "pos.discount_high" | "pos.cash_movement" | "pos.return" | "pos.admin" | "pos.report" | "view-appointment" | "create-appointment" | "edit-appointment" | "delete-appointment" | "view-contract" | "create-contract" | "edit-contract" | "delete-contract")[];
|
|
8394
8755
|
};
|
|
8395
8756
|
/**
|
|
8396
8757
|
* RoleRequest
|
|
@@ -8415,7 +8776,7 @@ export interface components {
|
|
|
8415
8776
|
name: string;
|
|
8416
8777
|
abilities?: {
|
|
8417
8778
|
/** @enum {string} */
|
|
8418
|
-
ability: "dashboard" | "view-customer" | "create-customer" | "edit-customer" | "delete-customer" | "view-estimate" | "create-estimate" | "edit-estimate" | "delete-estimate" | "send-estimate" | "view-invoice" | "create-invoice" | "edit-invoice" | "delete-invoice" | "send-invoice" | "view-recurring-invoice" | "create-recurring-invoice" | "edit-recurring-invoice" | "delete-recurring-invoice" | "view-payment" | "create-payment" | "edit-payment" | "delete-payment" | "send-payment" | "view-expense" | "create-expense" | "edit-expense" | "delete-expense" | "view-delivery-note" | "create-delivery-note" | "edit-delivery-note" | "delete-delivery-note" | "view-item" | "create-item" | "edit-item" | "delete-item" | "view-lead" | "create-lead" | "edit-lead" | "delete-lead" | "convert-lead" | "view-contact" | "create-contact" | "edit-contact" | "delete-contact" | "view-project" | "create-project" | "edit-project" | "delete-project" | "view-task" | "create-task" | "edit-task" | "delete-task" | "view-own-task" | "edit-own-task" | "view-time-entry" | "create-time-entry" | "edit-time-entry" | "delete-time-entry" | "view-own-time-entry" | "create-own-time-entry" | "edit-own-time-entry" | "delete-own-time-entry" | "view-tax-type" | "create-tax-type" | "edit-tax-type" | "delete-tax-type" | "view-custom-field" | "create-custom-field" | "edit-custom-field" | "delete-custom-field" | "view-role" | "create-role" | "edit-role" | "delete-role" | "view-financial-reports" | "view-all-notes" | "manage-all-notes" | "time_clock.punch" | "time_clock.view_own" | "time_clock.view_team" | "time_clock.correct" | "absence.request" | "absence.approve" | "report.download_legal" | "view-employee" | "create-employee" | "edit-employee" | "delete-employee" | "view-work-schedule" | "manage-work-schedule" | "view-work-calendar" | "manage-work-calendar" | "pos.operate" | "pos.supervise" | "pos.void" | "pos.discount_high" | "pos.cash_movement" | "pos.return" | "pos.admin" | "pos.report" | "view-appointment" | "create-appointment" | "edit-appointment" | "delete-appointment";
|
|
8779
|
+
ability: "dashboard" | "view-customer" | "create-customer" | "edit-customer" | "delete-customer" | "view-estimate" | "create-estimate" | "edit-estimate" | "delete-estimate" | "send-estimate" | "view-invoice" | "create-invoice" | "edit-invoice" | "delete-invoice" | "send-invoice" | "view-recurring-invoice" | "create-recurring-invoice" | "edit-recurring-invoice" | "delete-recurring-invoice" | "view-payment" | "create-payment" | "edit-payment" | "delete-payment" | "send-payment" | "view-expense" | "create-expense" | "edit-expense" | "delete-expense" | "view-delivery-note" | "create-delivery-note" | "edit-delivery-note" | "delete-delivery-note" | "view-item" | "create-item" | "edit-item" | "delete-item" | "view-lead" | "create-lead" | "edit-lead" | "delete-lead" | "convert-lead" | "view-contact" | "create-contact" | "edit-contact" | "delete-contact" | "view-project" | "create-project" | "edit-project" | "delete-project" | "view-task" | "create-task" | "edit-task" | "delete-task" | "view-own-task" | "edit-own-task" | "view-time-entry" | "create-time-entry" | "edit-time-entry" | "delete-time-entry" | "view-own-time-entry" | "create-own-time-entry" | "edit-own-time-entry" | "delete-own-time-entry" | "view-tax-type" | "create-tax-type" | "edit-tax-type" | "delete-tax-type" | "view-custom-field" | "create-custom-field" | "edit-custom-field" | "delete-custom-field" | "view-role" | "create-role" | "edit-role" | "delete-role" | "view-financial-reports" | "view-all-notes" | "manage-all-notes" | "time_clock.punch" | "time_clock.view_own" | "time_clock.view_team" | "time_clock.correct" | "absence.request" | "absence.approve" | "report.download_legal" | "view-employee" | "create-employee" | "edit-employee" | "delete-employee" | "view-work-schedule" | "manage-work-schedule" | "view-work-calendar" | "manage-work-calendar" | "pos.operate" | "pos.supervise" | "pos.void" | "pos.discount_high" | "pos.cash_movement" | "pos.return" | "pos.admin" | "pos.report" | "view-appointment" | "create-appointment" | "edit-appointment" | "delete-appointment" | "view-contract" | "create-contract" | "edit-contract" | "delete-contract";
|
|
8419
8780
|
}[] | null;
|
|
8420
8781
|
};
|
|
8421
8782
|
/** RoleResource */
|
|
@@ -9475,30 +9836,39 @@ export interface operations {
|
|
|
9475
9836
|
422: components["responses"]["ValidationException"];
|
|
9476
9837
|
};
|
|
9477
9838
|
};
|
|
9478
|
-
|
|
9839
|
+
"contract.activateContract": {
|
|
9479
9840
|
parameters: {
|
|
9480
9841
|
query?: never;
|
|
9481
9842
|
header?: never;
|
|
9482
|
-
path
|
|
9843
|
+
path: {
|
|
9844
|
+
/** @description The contract ID */
|
|
9845
|
+
contract: number;
|
|
9846
|
+
};
|
|
9483
9847
|
cookie?: never;
|
|
9484
9848
|
};
|
|
9485
|
-
requestBody?:
|
|
9849
|
+
requestBody?: {
|
|
9850
|
+
content: {
|
|
9851
|
+
"application/json": components["schemas"]["ActivateContractRequest"];
|
|
9852
|
+
};
|
|
9853
|
+
};
|
|
9486
9854
|
responses: {
|
|
9855
|
+
/** @description `ContractResource` */
|
|
9487
9856
|
200: {
|
|
9488
9857
|
headers: {
|
|
9489
9858
|
[name: string]: unknown;
|
|
9490
9859
|
};
|
|
9491
9860
|
content: {
|
|
9492
9861
|
"application/json": {
|
|
9493
|
-
|
|
9494
|
-
/** @constant */
|
|
9495
|
-
channel: "stable";
|
|
9862
|
+
data: components["schemas"]["ContractResource"];
|
|
9496
9863
|
};
|
|
9497
9864
|
};
|
|
9498
9865
|
};
|
|
9866
|
+
403: components["responses"]["AuthorizationException"];
|
|
9867
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
9868
|
+
422: components["responses"]["ValidationException"];
|
|
9499
9869
|
};
|
|
9500
9870
|
};
|
|
9501
|
-
|
|
9871
|
+
appVersion: {
|
|
9502
9872
|
parameters: {
|
|
9503
9873
|
query?: never;
|
|
9504
9874
|
header?: never;
|
|
@@ -9513,7 +9883,30 @@ export interface operations {
|
|
|
9513
9883
|
};
|
|
9514
9884
|
content: {
|
|
9515
9885
|
"application/json": {
|
|
9516
|
-
|
|
9886
|
+
version: string | null;
|
|
9887
|
+
/** @constant */
|
|
9888
|
+
channel: "stable";
|
|
9889
|
+
};
|
|
9890
|
+
};
|
|
9891
|
+
};
|
|
9892
|
+
};
|
|
9893
|
+
};
|
|
9894
|
+
"appointment.index": {
|
|
9895
|
+
parameters: {
|
|
9896
|
+
query?: never;
|
|
9897
|
+
header?: never;
|
|
9898
|
+
path?: never;
|
|
9899
|
+
cookie?: never;
|
|
9900
|
+
};
|
|
9901
|
+
requestBody?: never;
|
|
9902
|
+
responses: {
|
|
9903
|
+
200: {
|
|
9904
|
+
headers: {
|
|
9905
|
+
[name: string]: unknown;
|
|
9906
|
+
};
|
|
9907
|
+
content: {
|
|
9908
|
+
"application/json": {
|
|
9909
|
+
appointments: components["schemas"]["Appointment"][];
|
|
9517
9910
|
};
|
|
9518
9911
|
};
|
|
9519
9912
|
};
|
|
@@ -10123,6 +10516,44 @@ export interface operations {
|
|
|
10123
10516
|
422: components["responses"]["ValidationException"];
|
|
10124
10517
|
};
|
|
10125
10518
|
};
|
|
10519
|
+
"contract.cancelContract": {
|
|
10520
|
+
parameters: {
|
|
10521
|
+
query?: never;
|
|
10522
|
+
header?: never;
|
|
10523
|
+
path: {
|
|
10524
|
+
/** @description The contract ID */
|
|
10525
|
+
contract: number;
|
|
10526
|
+
};
|
|
10527
|
+
cookie?: never;
|
|
10528
|
+
};
|
|
10529
|
+
requestBody?: never;
|
|
10530
|
+
responses: {
|
|
10531
|
+
/** @description `ContractResource` */
|
|
10532
|
+
200: {
|
|
10533
|
+
headers: {
|
|
10534
|
+
[name: string]: unknown;
|
|
10535
|
+
};
|
|
10536
|
+
content: {
|
|
10537
|
+
"application/json": {
|
|
10538
|
+
data: components["schemas"]["ContractResource"];
|
|
10539
|
+
};
|
|
10540
|
+
};
|
|
10541
|
+
};
|
|
10542
|
+
403: components["responses"]["AuthorizationException"];
|
|
10543
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
10544
|
+
422: {
|
|
10545
|
+
headers: {
|
|
10546
|
+
[name: string]: unknown;
|
|
10547
|
+
};
|
|
10548
|
+
content: {
|
|
10549
|
+
"application/json": {
|
|
10550
|
+
success: boolean;
|
|
10551
|
+
message: string;
|
|
10552
|
+
};
|
|
10553
|
+
};
|
|
10554
|
+
};
|
|
10555
|
+
};
|
|
10556
|
+
};
|
|
10126
10557
|
"estimate.changeEstimateStatus": {
|
|
10127
10558
|
parameters: {
|
|
10128
10559
|
query?: never;
|
|
@@ -10681,6 +11112,248 @@ export interface operations {
|
|
|
10681
11112
|
404: components["responses"]["ModelNotFoundException"];
|
|
10682
11113
|
};
|
|
10683
11114
|
};
|
|
11115
|
+
"contractDocument.upload": {
|
|
11116
|
+
parameters: {
|
|
11117
|
+
query?: never;
|
|
11118
|
+
header?: never;
|
|
11119
|
+
path: {
|
|
11120
|
+
/** @description The contract ID */
|
|
11121
|
+
contract: number;
|
|
11122
|
+
};
|
|
11123
|
+
cookie?: never;
|
|
11124
|
+
};
|
|
11125
|
+
requestBody: {
|
|
11126
|
+
content: {
|
|
11127
|
+
"multipart/form-data": {
|
|
11128
|
+
/**
|
|
11129
|
+
* Format: binary
|
|
11130
|
+
* @description Maximum file size: 10240 kilobytes.
|
|
11131
|
+
*/
|
|
11132
|
+
document: Blob;
|
|
11133
|
+
};
|
|
11134
|
+
};
|
|
11135
|
+
};
|
|
11136
|
+
responses: {
|
|
11137
|
+
/** @description `ContractResource` */
|
|
11138
|
+
200: {
|
|
11139
|
+
headers: {
|
|
11140
|
+
[name: string]: unknown;
|
|
11141
|
+
};
|
|
11142
|
+
content: {
|
|
11143
|
+
"application/json": {
|
|
11144
|
+
data: components["schemas"]["ContractResource"];
|
|
11145
|
+
};
|
|
11146
|
+
};
|
|
11147
|
+
};
|
|
11148
|
+
403: components["responses"]["AuthorizationException"];
|
|
11149
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
11150
|
+
422: components["responses"]["ValidationException"];
|
|
11151
|
+
};
|
|
11152
|
+
};
|
|
11153
|
+
"contractDocument.destroy": {
|
|
11154
|
+
parameters: {
|
|
11155
|
+
query?: never;
|
|
11156
|
+
header?: never;
|
|
11157
|
+
path: {
|
|
11158
|
+
/** @description The contract ID */
|
|
11159
|
+
contract: number;
|
|
11160
|
+
};
|
|
11161
|
+
cookie?: never;
|
|
11162
|
+
};
|
|
11163
|
+
requestBody?: never;
|
|
11164
|
+
responses: {
|
|
11165
|
+
/** @description `ContractResource` */
|
|
11166
|
+
200: {
|
|
11167
|
+
headers: {
|
|
11168
|
+
[name: string]: unknown;
|
|
11169
|
+
};
|
|
11170
|
+
content: {
|
|
11171
|
+
"application/json": {
|
|
11172
|
+
data: components["schemas"]["ContractResource"];
|
|
11173
|
+
};
|
|
11174
|
+
};
|
|
11175
|
+
};
|
|
11176
|
+
403: components["responses"]["AuthorizationException"];
|
|
11177
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
11178
|
+
};
|
|
11179
|
+
};
|
|
11180
|
+
"contracts.delete": {
|
|
11181
|
+
parameters: {
|
|
11182
|
+
query?: never;
|
|
11183
|
+
header?: never;
|
|
11184
|
+
path?: never;
|
|
11185
|
+
cookie?: never;
|
|
11186
|
+
};
|
|
11187
|
+
requestBody: {
|
|
11188
|
+
content: {
|
|
11189
|
+
"application/json": components["schemas"]["DeleteContractsRequest"];
|
|
11190
|
+
};
|
|
11191
|
+
};
|
|
11192
|
+
responses: {
|
|
11193
|
+
200: {
|
|
11194
|
+
headers: {
|
|
11195
|
+
[name: string]: unknown;
|
|
11196
|
+
};
|
|
11197
|
+
content: {
|
|
11198
|
+
"application/json": {
|
|
11199
|
+
success: boolean;
|
|
11200
|
+
};
|
|
11201
|
+
};
|
|
11202
|
+
};
|
|
11203
|
+
403: components["responses"]["AuthorizationException"];
|
|
11204
|
+
422: components["responses"]["ValidationException"];
|
|
11205
|
+
};
|
|
11206
|
+
};
|
|
11207
|
+
"contracts.index": {
|
|
11208
|
+
parameters: {
|
|
11209
|
+
query?: never;
|
|
11210
|
+
header?: never;
|
|
11211
|
+
path?: never;
|
|
11212
|
+
cookie?: never;
|
|
11213
|
+
};
|
|
11214
|
+
requestBody?: never;
|
|
11215
|
+
responses: {
|
|
11216
|
+
/** @description Array of `ContractResource` */
|
|
11217
|
+
200: {
|
|
11218
|
+
headers: {
|
|
11219
|
+
[name: string]: unknown;
|
|
11220
|
+
};
|
|
11221
|
+
content: {
|
|
11222
|
+
"application/json": {
|
|
11223
|
+
data: components["schemas"]["ContractResource"][];
|
|
11224
|
+
meta: {
|
|
11225
|
+
contract_total_count: number;
|
|
11226
|
+
};
|
|
11227
|
+
};
|
|
11228
|
+
};
|
|
11229
|
+
};
|
|
11230
|
+
403: components["responses"]["AuthorizationException"];
|
|
11231
|
+
};
|
|
11232
|
+
};
|
|
11233
|
+
"contracts.store": {
|
|
11234
|
+
parameters: {
|
|
11235
|
+
query?: never;
|
|
11236
|
+
header?: never;
|
|
11237
|
+
path?: never;
|
|
11238
|
+
cookie?: never;
|
|
11239
|
+
};
|
|
11240
|
+
requestBody: {
|
|
11241
|
+
content: {
|
|
11242
|
+
"application/json": components["schemas"]["ContractRequest"];
|
|
11243
|
+
};
|
|
11244
|
+
};
|
|
11245
|
+
responses: {
|
|
11246
|
+
/** @description `ContractResource` */
|
|
11247
|
+
201: {
|
|
11248
|
+
headers: {
|
|
11249
|
+
[name: string]: unknown;
|
|
11250
|
+
};
|
|
11251
|
+
content: {
|
|
11252
|
+
"application/json": {
|
|
11253
|
+
data: components["schemas"]["ContractResource"];
|
|
11254
|
+
};
|
|
11255
|
+
};
|
|
11256
|
+
};
|
|
11257
|
+
403: components["responses"]["AuthorizationException"];
|
|
11258
|
+
422: components["responses"]["ValidationException"];
|
|
11259
|
+
};
|
|
11260
|
+
};
|
|
11261
|
+
"contracts.show": {
|
|
11262
|
+
parameters: {
|
|
11263
|
+
query?: never;
|
|
11264
|
+
header?: never;
|
|
11265
|
+
path: {
|
|
11266
|
+
/** @description The contract ID */
|
|
11267
|
+
contract: number;
|
|
11268
|
+
};
|
|
11269
|
+
cookie?: never;
|
|
11270
|
+
};
|
|
11271
|
+
requestBody?: never;
|
|
11272
|
+
responses: {
|
|
11273
|
+
/** @description `ContractResource` */
|
|
11274
|
+
200: {
|
|
11275
|
+
headers: {
|
|
11276
|
+
[name: string]: unknown;
|
|
11277
|
+
};
|
|
11278
|
+
content: {
|
|
11279
|
+
"application/json": {
|
|
11280
|
+
data: components["schemas"]["ContractResource"];
|
|
11281
|
+
};
|
|
11282
|
+
};
|
|
11283
|
+
};
|
|
11284
|
+
403: components["responses"]["AuthorizationException"];
|
|
11285
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
11286
|
+
};
|
|
11287
|
+
};
|
|
11288
|
+
"contracts.update": {
|
|
11289
|
+
parameters: {
|
|
11290
|
+
query?: never;
|
|
11291
|
+
header?: never;
|
|
11292
|
+
path: {
|
|
11293
|
+
/** @description The contract ID */
|
|
11294
|
+
contract: number;
|
|
11295
|
+
};
|
|
11296
|
+
cookie?: never;
|
|
11297
|
+
};
|
|
11298
|
+
requestBody: {
|
|
11299
|
+
content: {
|
|
11300
|
+
"application/json": components["schemas"]["ContractRequest"];
|
|
11301
|
+
};
|
|
11302
|
+
};
|
|
11303
|
+
responses: {
|
|
11304
|
+
/** @description `ContractResource` */
|
|
11305
|
+
200: {
|
|
11306
|
+
headers: {
|
|
11307
|
+
[name: string]: unknown;
|
|
11308
|
+
};
|
|
11309
|
+
content: {
|
|
11310
|
+
"application/json": {
|
|
11311
|
+
data: components["schemas"]["ContractResource"];
|
|
11312
|
+
};
|
|
11313
|
+
};
|
|
11314
|
+
};
|
|
11315
|
+
403: components["responses"]["AuthorizationException"];
|
|
11316
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
11317
|
+
422: components["responses"]["ValidationException"];
|
|
11318
|
+
};
|
|
11319
|
+
};
|
|
11320
|
+
"contracts.destroy": {
|
|
11321
|
+
parameters: {
|
|
11322
|
+
query?: never;
|
|
11323
|
+
header?: never;
|
|
11324
|
+
path: {
|
|
11325
|
+
/** @description The contract ID */
|
|
11326
|
+
contract: number;
|
|
11327
|
+
};
|
|
11328
|
+
cookie?: never;
|
|
11329
|
+
};
|
|
11330
|
+
requestBody?: never;
|
|
11331
|
+
responses: {
|
|
11332
|
+
200: {
|
|
11333
|
+
headers: {
|
|
11334
|
+
[name: string]: unknown;
|
|
11335
|
+
};
|
|
11336
|
+
content: {
|
|
11337
|
+
"application/json": {
|
|
11338
|
+
success: boolean;
|
|
11339
|
+
};
|
|
11340
|
+
};
|
|
11341
|
+
};
|
|
11342
|
+
403: components["responses"]["AuthorizationException"];
|
|
11343
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
11344
|
+
422: {
|
|
11345
|
+
headers: {
|
|
11346
|
+
[name: string]: unknown;
|
|
11347
|
+
};
|
|
11348
|
+
content: {
|
|
11349
|
+
"application/json": {
|
|
11350
|
+
success: boolean;
|
|
11351
|
+
message: string;
|
|
11352
|
+
};
|
|
11353
|
+
};
|
|
11354
|
+
};
|
|
11355
|
+
};
|
|
11356
|
+
};
|
|
10684
11357
|
"estimate.convertEstimate": {
|
|
10685
11358
|
parameters: {
|
|
10686
11359
|
query?: never;
|
|
@@ -14843,14 +15516,21 @@ export interface operations {
|
|
|
14843
15516
|
};
|
|
14844
15517
|
"items.index": {
|
|
14845
15518
|
parameters: {
|
|
14846
|
-
query?:
|
|
15519
|
+
query?: {
|
|
15520
|
+
/** @description Con `summary`, cada fila trae solo lo que los listados leen: identidad, precios y banderas, la categoría reducida a `{id, name}`, el nombre de la unidad y los impuestos del artículo (enteros, con la misma forma que la vista completa). Sin empresa, sin moneda y sin la unidad como objeto — el recurso completo arrastra la empresa entera por fila, roles incluidos, y contra un catálogo de 200 artículos eso son ~4 s y ~900 KB de los que el 86 % es ese lastre. El artículo completo sigue en el detalle y en el índice sin este parámetro. */
|
|
15521
|
+
view?: "summary";
|
|
15522
|
+
};
|
|
14847
15523
|
header?: never;
|
|
14848
15524
|
path?: never;
|
|
14849
15525
|
cookie?: never;
|
|
14850
15526
|
};
|
|
14851
15527
|
requestBody?: never;
|
|
14852
15528
|
responses: {
|
|
14853
|
-
/**
|
|
15529
|
+
/**
|
|
15530
|
+
* @description Array of `ItemResource`
|
|
15531
|
+
*
|
|
15532
|
+
* Array of `ItemSummaryResource`
|
|
15533
|
+
*/
|
|
14854
15534
|
200: {
|
|
14855
15535
|
headers: {
|
|
14856
15536
|
[name: string]: unknown;
|
|
@@ -14862,6 +15542,12 @@ export interface operations {
|
|
|
14862
15542
|
tax_types: components["schemas"]["TaxType"][];
|
|
14863
15543
|
item_total_count: number;
|
|
14864
15544
|
};
|
|
15545
|
+
} | {
|
|
15546
|
+
data: (components["schemas"]["ItemSummaryResource"] & Record<string, never>)[];
|
|
15547
|
+
meta: {
|
|
15548
|
+
tax_types: components["schemas"]["TaxType"][];
|
|
15549
|
+
item_total_count: number;
|
|
15550
|
+
};
|
|
14865
15551
|
};
|
|
14866
15552
|
};
|
|
14867
15553
|
};
|
|
@@ -17475,6 +18161,38 @@ export interface operations {
|
|
|
17475
18161
|
422: components["responses"]["ValidationException"];
|
|
17476
18162
|
};
|
|
17477
18163
|
};
|
|
18164
|
+
"contract.renewContract": {
|
|
18165
|
+
parameters: {
|
|
18166
|
+
query?: never;
|
|
18167
|
+
header?: never;
|
|
18168
|
+
path: {
|
|
18169
|
+
/** @description The contract ID */
|
|
18170
|
+
contract: number;
|
|
18171
|
+
};
|
|
18172
|
+
cookie?: never;
|
|
18173
|
+
};
|
|
18174
|
+
requestBody: {
|
|
18175
|
+
content: {
|
|
18176
|
+
"application/json": components["schemas"]["RenewContractRequest"];
|
|
18177
|
+
};
|
|
18178
|
+
};
|
|
18179
|
+
responses: {
|
|
18180
|
+
/** @description `ContractResource` */
|
|
18181
|
+
200: {
|
|
18182
|
+
headers: {
|
|
18183
|
+
[name: string]: unknown;
|
|
18184
|
+
};
|
|
18185
|
+
content: {
|
|
18186
|
+
"application/json": {
|
|
18187
|
+
data: components["schemas"]["ContractResource"];
|
|
18188
|
+
};
|
|
18189
|
+
};
|
|
18190
|
+
};
|
|
18191
|
+
403: components["responses"]["AuthorizationException"];
|
|
18192
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
18193
|
+
422: components["responses"]["ValidationException"];
|
|
18194
|
+
};
|
|
18195
|
+
};
|
|
17478
18196
|
"roles.getAbilities": {
|
|
17479
18197
|
parameters: {
|
|
17480
18198
|
query?: never;
|
|
@@ -18111,6 +18829,126 @@ export interface operations {
|
|
|
18111
18829
|
};
|
|
18112
18830
|
};
|
|
18113
18831
|
};
|
|
18832
|
+
"invoice.sharedLink": {
|
|
18833
|
+
parameters: {
|
|
18834
|
+
query?: never;
|
|
18835
|
+
header?: never;
|
|
18836
|
+
path: {
|
|
18837
|
+
/** @description The invoice ID */
|
|
18838
|
+
invoice: number;
|
|
18839
|
+
};
|
|
18840
|
+
cookie?: never;
|
|
18841
|
+
};
|
|
18842
|
+
requestBody?: never;
|
|
18843
|
+
responses: {
|
|
18844
|
+
200: {
|
|
18845
|
+
headers: {
|
|
18846
|
+
[name: string]: unknown;
|
|
18847
|
+
};
|
|
18848
|
+
content: {
|
|
18849
|
+
"application/json": {
|
|
18850
|
+
data: {
|
|
18851
|
+
url: string;
|
|
18852
|
+
expires_at: string;
|
|
18853
|
+
};
|
|
18854
|
+
};
|
|
18855
|
+
};
|
|
18856
|
+
};
|
|
18857
|
+
403: components["responses"]["AuthorizationException"];
|
|
18858
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
18859
|
+
422: {
|
|
18860
|
+
headers: {
|
|
18861
|
+
[name: string]: unknown;
|
|
18862
|
+
};
|
|
18863
|
+
content: {
|
|
18864
|
+
"application/json": {
|
|
18865
|
+
/** @constant */
|
|
18866
|
+
message: "Un borrador no tiene enlace: publica la factura primero.";
|
|
18867
|
+
};
|
|
18868
|
+
};
|
|
18869
|
+
};
|
|
18870
|
+
};
|
|
18871
|
+
};
|
|
18872
|
+
"contract.sharedLink": {
|
|
18873
|
+
parameters: {
|
|
18874
|
+
query?: never;
|
|
18875
|
+
header?: never;
|
|
18876
|
+
path: {
|
|
18877
|
+
/** @description The contract ID */
|
|
18878
|
+
contract: number;
|
|
18879
|
+
};
|
|
18880
|
+
cookie?: never;
|
|
18881
|
+
};
|
|
18882
|
+
requestBody?: never;
|
|
18883
|
+
responses: {
|
|
18884
|
+
200: {
|
|
18885
|
+
headers: {
|
|
18886
|
+
[name: string]: unknown;
|
|
18887
|
+
};
|
|
18888
|
+
content: {
|
|
18889
|
+
"application/json": {
|
|
18890
|
+
data: {
|
|
18891
|
+
url: string;
|
|
18892
|
+
expires_at: string;
|
|
18893
|
+
};
|
|
18894
|
+
};
|
|
18895
|
+
};
|
|
18896
|
+
};
|
|
18897
|
+
403: components["responses"]["AuthorizationException"];
|
|
18898
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
18899
|
+
422: {
|
|
18900
|
+
headers: {
|
|
18901
|
+
[name: string]: unknown;
|
|
18902
|
+
};
|
|
18903
|
+
content: {
|
|
18904
|
+
"application/json": {
|
|
18905
|
+
/** @constant */
|
|
18906
|
+
message: "Un contrato sin activar no tiene enlace todavía.";
|
|
18907
|
+
};
|
|
18908
|
+
};
|
|
18909
|
+
};
|
|
18910
|
+
};
|
|
18911
|
+
};
|
|
18912
|
+
"estimate.sharedLink": {
|
|
18913
|
+
parameters: {
|
|
18914
|
+
query?: never;
|
|
18915
|
+
header?: never;
|
|
18916
|
+
path: {
|
|
18917
|
+
/** @description The estimate ID */
|
|
18918
|
+
estimate: number;
|
|
18919
|
+
};
|
|
18920
|
+
cookie?: never;
|
|
18921
|
+
};
|
|
18922
|
+
requestBody?: never;
|
|
18923
|
+
responses: {
|
|
18924
|
+
200: {
|
|
18925
|
+
headers: {
|
|
18926
|
+
[name: string]: unknown;
|
|
18927
|
+
};
|
|
18928
|
+
content: {
|
|
18929
|
+
"application/json": {
|
|
18930
|
+
data: {
|
|
18931
|
+
url: string;
|
|
18932
|
+
expires_at: string;
|
|
18933
|
+
};
|
|
18934
|
+
};
|
|
18935
|
+
};
|
|
18936
|
+
};
|
|
18937
|
+
403: components["responses"]["AuthorizationException"];
|
|
18938
|
+
404: components["responses"]["ModelNotFoundException"];
|
|
18939
|
+
422: {
|
|
18940
|
+
headers: {
|
|
18941
|
+
[name: string]: unknown;
|
|
18942
|
+
};
|
|
18943
|
+
content: {
|
|
18944
|
+
"application/json": {
|
|
18945
|
+
/** @constant */
|
|
18946
|
+
message: "Un presupuesto sin número no tiene enlace todavía.";
|
|
18947
|
+
};
|
|
18948
|
+
};
|
|
18949
|
+
};
|
|
18950
|
+
};
|
|
18951
|
+
};
|
|
18114
18952
|
"expense.showReceipt": {
|
|
18115
18953
|
parameters: {
|
|
18116
18954
|
query?: never;
|