evo360-types 1.3.639 → 1.3.647
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/apps/evo-finops/zod-schemas.d.ts +1153 -0
- package/dist/apps/evo-finops/zod-schemas.js +85 -2
- package/dist/apps/evo-finops/zod-schemas.ts +91 -0
- package/dist/types/evo-finops/common/billing.d.ts +82 -2
- package/dist/types/evo-finops/common/billing.ts +97 -2
- package/dist/types/evo-finops/common/contract.d.ts +8 -0
- package/dist/types/evo-finops/common/contract.ts +11 -0
- package/dist/types/evo-finops/common/payment-method.d.ts +79 -0
- package/dist/types/evo-finops/common/payment-method.js +10 -0
- package/dist/types/evo-finops/common/payment-method.ts +108 -0
- package/dist/types/evo-finops/fb_collections.d.ts +2 -0
- package/dist/types/evo-finops/fb_collections.js +3 -1
- package/dist/types/evo-finops/fb_collections.ts +2 -0
- package/dist/types/evo-finops/index.d.ts +1 -0
- package/dist/types/evo-finops/index.js +1 -0
- package/dist/types/evo-finops/index.ts +1 -0
- package/dist/types/evo-finops/providers/asaas/asaas_provider.d.ts +23 -0
- package/dist/types/evo-finops/providers/asaas/asaas_provider.ts +25 -0
- package/package.json +1 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { IFireGlobalDoc } from '../../shared';
|
|
2
|
+
import type { NexFinopsAsaasSubscriptionStatus } from './contract';
|
|
3
|
+
|
|
4
|
+
// ── Métodos de pagamento do cliente (feat-253) ──
|
|
5
|
+
//
|
|
6
|
+
// Coleção própria do nex-finops: `core/nexus/apps/nex-finops/payment_methods/{pmId}`.
|
|
7
|
+
// Fica FORA do customer porque o portal devolve o customer inteiro e a regra de
|
|
8
|
+
// `nex-customers/customers` não tem curinga de subcoleção.
|
|
9
|
+
//
|
|
10
|
+
// PCI: o doc só guarda bandeira + últimos 4. Número completo, CCV, dados do
|
|
11
|
+
// portador ou token de cartão NÃO têm campo aqui e não devem ganhar um. O token
|
|
12
|
+
// do caminho B mora em `payment_methods/{pmId}/private/credential`, sem leitura
|
|
13
|
+
// pelo cliente e sem tipo exportado para o front.
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* - `asaas_subscription` (caminho A): cartão capturado na página do Asaas, dentro
|
|
17
|
+
* de uma assinatura. Id do doc: `asub_<subscription_id>`.
|
|
18
|
+
* - `asaas_card_token` (caminho B): token de cartão do Asaas. Id do doc: `atok_<shortid>`.
|
|
19
|
+
*/
|
|
20
|
+
export type NexFinopsPaymentMethodKind = 'asaas_subscription' | 'asaas_card_token';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* - `active`: assinatura `ACTIVE` sem `deleted`, ou token válido.
|
|
24
|
+
* - `failing`: última captura recusada/reprovada; volta a `active` no próximo `PAYMENT_CONFIRMED`.
|
|
25
|
+
* - `inactive`: assinatura `INACTIVE`/`EXPIRED`/`deleted`, ou desativado pelo operador.
|
|
26
|
+
* - `revoked`: token invalidado pelo Asaas. Terminal — o cliente cadastra o cartão de novo.
|
|
27
|
+
*/
|
|
28
|
+
export type NexFinopsPaymentMethodStatus = 'active' | 'failing' | 'inactive' | 'revoked';
|
|
29
|
+
|
|
30
|
+
export type NexFinopsPaymentMethodSource =
|
|
31
|
+
| 'discovery_contract_asaas'
|
|
32
|
+
| 'discovery_payment_link'
|
|
33
|
+
| 'manual_link'
|
|
34
|
+
| 'asaas_capture';
|
|
35
|
+
|
|
36
|
+
export interface INexFinopsPaymentMethodProviderRef {
|
|
37
|
+
provider_id: string;
|
|
38
|
+
provider_type: 'asaas';
|
|
39
|
+
env: 'sandbox' | 'production';
|
|
40
|
+
/** `cus_` dono do cartão/assinatura (Q5) — pode ser ≠ `taker.provider_refs.remote_customer_id`. */
|
|
41
|
+
remote_customer_id: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface INexFinopsPaymentMethodSubscriptionInfo {
|
|
45
|
+
subscription_id: string;
|
|
46
|
+
/** Doc id do nosso payment_link (origem). */
|
|
47
|
+
payment_link_id?: string | null;
|
|
48
|
+
/** Checkout de vendas (`contract.asaas.checkout_id`). */
|
|
49
|
+
checkout_id?: string | null;
|
|
50
|
+
subscription_status?: NexFinopsAsaasSubscriptionStatus | null;
|
|
51
|
+
deleted?: boolean | null;
|
|
52
|
+
cycle?: string | null;
|
|
53
|
+
/** Valor BASE da assinatura. */
|
|
54
|
+
value?: number | null;
|
|
55
|
+
/** Data civil `YYYY-MM-DD`. */
|
|
56
|
+
next_due_date?: string | null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** PCI: só bandeira e últimos 4. */
|
|
60
|
+
export interface INexFinopsPaymentMethodCard {
|
|
61
|
+
brand: string | null;
|
|
62
|
+
last4: string | null;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface INexFinopsPaymentMethodSourceInfo {
|
|
66
|
+
kind: NexFinopsPaymentMethodSource;
|
|
67
|
+
contract_id?: string | null;
|
|
68
|
+
payment_link_id?: string | null;
|
|
69
|
+
journey_ref?: string | null;
|
|
70
|
+
/** Pagamento que originou o método (caminho B). */
|
|
71
|
+
asaas_payment_id?: string | null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface INexFinopsPaymentMethodLastCharge {
|
|
75
|
+
asaas_payment_id: string;
|
|
76
|
+
status: string;
|
|
77
|
+
at: string;
|
|
78
|
+
error?: string | null;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface INexFinopsCustomerPaymentMethod extends IFireGlobalDoc {
|
|
82
|
+
customer_id: string;
|
|
83
|
+
kind: NexFinopsPaymentMethodKind;
|
|
84
|
+
status: NexFinopsPaymentMethodStatus;
|
|
85
|
+
label?: string | null;
|
|
86
|
+
/** PCI: só isto. Nunca número completo, CCV ou token. */
|
|
87
|
+
card: INexFinopsPaymentMethodCard;
|
|
88
|
+
provider: INexFinopsPaymentMethodProviderRef;
|
|
89
|
+
/** Só no kind `asaas_subscription`. */
|
|
90
|
+
asaas_subscription?: INexFinopsPaymentMethodSubscriptionInfo | null;
|
|
91
|
+
/** Kind `asaas_card_token`: existe `private/credential`. Único reflexo do token. */
|
|
92
|
+
has_credential?: boolean | null;
|
|
93
|
+
source: INexFinopsPaymentMethodSourceInfo;
|
|
94
|
+
last_synced_at?: string | null;
|
|
95
|
+
last_used_at?: string | null;
|
|
96
|
+
last_charge?: INexFinopsPaymentMethodLastCharge | null;
|
|
97
|
+
/** feat-253 F2b: `asub_` migrado aponta para o `atok_` que o substituiu. */
|
|
98
|
+
replaced_by_payment_method_id?: string | null;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** Prefixos determinísticos dos ids (idempotência da descoberta). */
|
|
102
|
+
export const NEX_FINOPS_PAYMENT_METHOD_ID_PREFIX: Record<NexFinopsPaymentMethodKind, string> = {
|
|
103
|
+
asaas_subscription: 'asub_',
|
|
104
|
+
asaas_card_token: 'atok_',
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/** Status em que o método pode ser herdado por uma cobrança. */
|
|
108
|
+
export const NEX_FINOPS_PAYMENT_METHOD_USABLE_STATUSES: readonly NexFinopsPaymentMethodStatus[] = ['active', 'failing'];
|
|
@@ -12,3 +12,5 @@ export declare const FINOPS_SERVICES_COLLECTION = "services";
|
|
|
12
12
|
export declare const FINOPS_TAKERS_COLLECTION = "takers";
|
|
13
13
|
export declare const FINOPS_INVOICES_COLLECTION = "invoices";
|
|
14
14
|
export declare const FINOPS_PAYMENT_LINKS_COLLECTION = "payment_links";
|
|
15
|
+
/** feat-253 — métodos de pagamento do cliente (path: core/nexus/apps/nex-finops/payment_methods). */
|
|
16
|
+
export declare const FINOPS_PAYMENT_METHODS_COLLECTION = "payment_methods";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FINOPS_PAYMENT_LINKS_COLLECTION = exports.FINOPS_INVOICES_COLLECTION = exports.FINOPS_TAKERS_COLLECTION = exports.FINOPS_SERVICES_COLLECTION = exports.FINOPS_DICS_SERVICES_ID = exports.FINOPS_ISSUER_PROFILES_COLLECTION = exports.FINOPS_DICS_ISSUERS_ID = exports.FINOPS_PROVIDERS_COLLECTION = exports.FINOPS_DICS_COLLECTION = exports.EVO_FINOPS_APP = void 0;
|
|
3
|
+
exports.FINOPS_PAYMENT_METHODS_COLLECTION = exports.FINOPS_PAYMENT_LINKS_COLLECTION = exports.FINOPS_INVOICES_COLLECTION = exports.FINOPS_TAKERS_COLLECTION = exports.FINOPS_SERVICES_COLLECTION = exports.FINOPS_DICS_SERVICES_ID = exports.FINOPS_ISSUER_PROFILES_COLLECTION = exports.FINOPS_DICS_ISSUERS_ID = exports.FINOPS_PROVIDERS_COLLECTION = exports.FINOPS_DICS_COLLECTION = exports.EVO_FINOPS_APP = void 0;
|
|
4
4
|
// evo-finops app identifier for Firestore paths
|
|
5
5
|
exports.EVO_FINOPS_APP = "evo-finops";
|
|
6
6
|
// Collection names for evo-finops
|
|
@@ -17,3 +17,5 @@ exports.FINOPS_SERVICES_COLLECTION = "services";
|
|
|
17
17
|
exports.FINOPS_TAKERS_COLLECTION = "takers";
|
|
18
18
|
exports.FINOPS_INVOICES_COLLECTION = "invoices";
|
|
19
19
|
exports.FINOPS_PAYMENT_LINKS_COLLECTION = "payment_links";
|
|
20
|
+
/** feat-253 — métodos de pagamento do cliente (path: core/nexus/apps/nex-finops/payment_methods). */
|
|
21
|
+
exports.FINOPS_PAYMENT_METHODS_COLLECTION = "payment_methods";
|
|
@@ -16,3 +16,5 @@ export const FINOPS_TAKERS_COLLECTION = "takers";
|
|
|
16
16
|
export const FINOPS_INVOICES_COLLECTION = "invoices";
|
|
17
17
|
export const FINOPS_PAYMENT_LINKS_COLLECTION = "payment_links";
|
|
18
18
|
|
|
19
|
+
/** feat-253 — métodos de pagamento do cliente (path: core/nexus/apps/nex-finops/payment_methods). */
|
|
20
|
+
export const FINOPS_PAYMENT_METHODS_COLLECTION = "payment_methods";
|
|
@@ -4,6 +4,7 @@ export * from "./common/taker";
|
|
|
4
4
|
export * from "./common/contract";
|
|
5
5
|
export * from "./common/proposal";
|
|
6
6
|
export * from "./common/billing";
|
|
7
|
+
export * from "./common/payment-method";
|
|
7
8
|
export * from "./providers";
|
|
8
9
|
export * from "./providers/provider_fiscal_types";
|
|
9
10
|
export * from "./providers/asaas/asaas_provider";
|
|
@@ -21,6 +21,7 @@ __exportStar(require("./common/taker"), exports);
|
|
|
21
21
|
__exportStar(require("./common/contract"), exports);
|
|
22
22
|
__exportStar(require("./common/proposal"), exports);
|
|
23
23
|
__exportStar(require("./common/billing"), exports);
|
|
24
|
+
__exportStar(require("./common/payment-method"), exports);
|
|
24
25
|
__exportStar(require("./providers"), exports);
|
|
25
26
|
__exportStar(require("./providers/provider_fiscal_types"), exports);
|
|
26
27
|
__exportStar(require("./providers/asaas/asaas_provider"), exports);
|
|
@@ -6,6 +6,7 @@ export * from "./common/taker";
|
|
|
6
6
|
export * from "./common/contract";
|
|
7
7
|
export * from "./common/proposal";
|
|
8
8
|
export * from "./common/billing";
|
|
9
|
+
export * from "./common/payment-method";
|
|
9
10
|
export * from "./providers";
|
|
10
11
|
export * from "./providers/provider_fiscal_types";
|
|
11
12
|
export * from "./providers/asaas/asaas_provider";
|
|
@@ -156,6 +156,13 @@ export interface IAsaasEnvAuthConfig {
|
|
|
156
156
|
operational?: {
|
|
157
157
|
rate_limit_max_per_minute?: number;
|
|
158
158
|
};
|
|
159
|
+
/**
|
|
160
|
+
* feat-253 (caminho B) — cobrança com `creditCardToken`. `remote_ip` é o IP enviado ao Asaas
|
|
161
|
+
* quando a credencial não guardou o IP do pagador. Ausente nos dois → a cobrança falha fechada.
|
|
162
|
+
*/
|
|
163
|
+
card_token?: {
|
|
164
|
+
remote_ip?: string | null;
|
|
165
|
+
};
|
|
159
166
|
}
|
|
160
167
|
export interface IAsaasNfseCapabilities {
|
|
161
168
|
enabled: boolean;
|
|
@@ -163,8 +170,24 @@ export interface IAsaasNfseCapabilities {
|
|
|
163
170
|
allow_avulsa: boolean;
|
|
164
171
|
allow_linked_to_payment: boolean;
|
|
165
172
|
}
|
|
173
|
+
/** Liga/desliga por ambiente. Ausente = desligado. */
|
|
174
|
+
export interface IAsaasEnvFlag {
|
|
175
|
+
sandbox?: boolean;
|
|
176
|
+
production?: boolean;
|
|
177
|
+
}
|
|
166
178
|
export interface IAsaasPaymentsCapabilities {
|
|
167
179
|
enabled: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* feat-253 — kill-switch do caminho A (ajuste do valor da cobrança pendente da assinatura).
|
|
182
|
+
* @deprecated O caminho A saiu do modelo (o Asaas trava valor/vencimento após a 1ª fatura paga). Não usar.
|
|
183
|
+
*/
|
|
184
|
+
card_subscription_adjust?: IAsaasEnvFlag;
|
|
185
|
+
/** feat-253 — flag do caminho B (captura do token + cobrança com `creditCardToken`). Desligado até o Asaas habilitar. */
|
|
186
|
+
card_token?: IAsaasEnvFlag;
|
|
187
|
+
/** feat-253 — fatura hospedada do Asaas gerada pelo Nexus para a cobrança (contingência C e entrada da captura). */
|
|
188
|
+
hosted_invoice?: IAsaasEnvFlag;
|
|
189
|
+
/** feat-253 — job diário que cobra no cartão salvo no vencimento (fatia 8). */
|
|
190
|
+
card_token_auto?: IAsaasEnvFlag;
|
|
168
191
|
}
|
|
169
192
|
export interface IAsaasProviderCapabilities {
|
|
170
193
|
nfse: IAsaasNfseCapabilities;
|
|
@@ -225,6 +225,14 @@ export interface IAsaasEnvAuthConfig {
|
|
|
225
225
|
operational?: {
|
|
226
226
|
rate_limit_max_per_minute?: number;
|
|
227
227
|
};
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* feat-253 (caminho B) — cobrança com `creditCardToken`. `remote_ip` é o IP enviado ao Asaas
|
|
231
|
+
* quando a credencial não guardou o IP do pagador. Ausente nos dois → a cobrança falha fechada.
|
|
232
|
+
*/
|
|
233
|
+
card_token?: {
|
|
234
|
+
remote_ip?: string | null;
|
|
235
|
+
};
|
|
228
236
|
}
|
|
229
237
|
|
|
230
238
|
export interface IAsaasNfseCapabilities {
|
|
@@ -237,8 +245,25 @@ export interface IAsaasNfseCapabilities {
|
|
|
237
245
|
allow_linked_to_payment: boolean; // future
|
|
238
246
|
}
|
|
239
247
|
|
|
248
|
+
/** Liga/desliga por ambiente. Ausente = desligado. */
|
|
249
|
+
export interface IAsaasEnvFlag {
|
|
250
|
+
sandbox?: boolean;
|
|
251
|
+
production?: boolean;
|
|
252
|
+
}
|
|
253
|
+
|
|
240
254
|
export interface IAsaasPaymentsCapabilities {
|
|
241
255
|
enabled: boolean; // false for now, future for payment links/subscriptions
|
|
256
|
+
/**
|
|
257
|
+
* feat-253 — kill-switch do caminho A (ajuste do valor da cobrança pendente da assinatura).
|
|
258
|
+
* @deprecated O caminho A saiu do modelo (o Asaas trava valor/vencimento após a 1ª fatura paga). Não usar.
|
|
259
|
+
*/
|
|
260
|
+
card_subscription_adjust?: IAsaasEnvFlag;
|
|
261
|
+
/** feat-253 — flag do caminho B (captura do token + cobrança com `creditCardToken`). Desligado até o Asaas habilitar. */
|
|
262
|
+
card_token?: IAsaasEnvFlag;
|
|
263
|
+
/** feat-253 — fatura hospedada do Asaas gerada pelo Nexus para a cobrança (contingência C e entrada da captura). */
|
|
264
|
+
hosted_invoice?: IAsaasEnvFlag;
|
|
265
|
+
/** feat-253 — job diário que cobra no cartão salvo no vencimento (fatia 8). */
|
|
266
|
+
card_token_auto?: IAsaasEnvFlag;
|
|
242
267
|
}
|
|
243
268
|
|
|
244
269
|
export interface IAsaasProviderCapabilities {
|