evo360-types 1.3.522 → 1.3.530
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 +15 -0
- package/dist/apps/evo-finops/zod-schemas.js +11 -1
- package/dist/apps/evo-finops/zod-schemas.ts +11 -0
- package/dist/apps/evo-med/calendar/zod-schemas.d.ts +3 -0
- package/dist/apps/evo-med/calendar/zod-schemas.js +2 -1
- package/dist/apps/evo-med/calendar/zod-schemas.ts +2 -1
- package/dist/types/evo-finops/common/proposal.d.ts +34 -0
- package/dist/types/evo-finops/common/proposal.ts +36 -0
- package/dist/types/evo-med/calendar/index.d.ts +1 -0
- package/dist/types/evo-med/calendar/index.ts +1 -0
- package/package.json +1 -1
|
@@ -12533,6 +12533,7 @@ export declare const zServiceInvoiceSchema: z.ZodObject<{
|
|
|
12533
12533
|
}, z.ZodTypeAny, "passthrough">>;
|
|
12534
12534
|
export declare const zNexFinopsProposalStatusSchema: z.ZodEnum<["draft", "sent", "viewed", "accepted", "expired", "canceled"]>;
|
|
12535
12535
|
export declare const zNexFinopsProposalPaymentMethodSchema: z.ZodEnum<["boleto", "card_subscription", "payment_link"]>;
|
|
12536
|
+
export declare const zNexFinopsProposalLoyaltyPeriodSchema: z.ZodEnum<["none", "3m", "6m", "1y", "2y"]>;
|
|
12536
12537
|
export declare const zNexFinopsProposalPrefillSchema: z.ZodObject<{
|
|
12537
12538
|
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12538
12539
|
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -12581,6 +12582,9 @@ export declare const zNexFinopsProposalWriteSchema: z.ZodObject<{
|
|
|
12581
12582
|
base_amount: z.ZodOptional<z.ZodNumber>;
|
|
12582
12583
|
due_day: z.ZodOptional<z.ZodNumber>;
|
|
12583
12584
|
accepted_payment_methods: z.ZodOptional<z.ZodArray<z.ZodEnum<["boleto", "card_subscription", "payment_link"]>, "many">>;
|
|
12585
|
+
loyalty_period: z.ZodNullable<z.ZodOptional<z.ZodEnum<["none", "3m", "6m", "1y", "2y"]>>>;
|
|
12586
|
+
/** Chave do modelo, nunca o id do template no provider — id não entra por HTTP. */
|
|
12587
|
+
contract_template_key: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
12584
12588
|
terms: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12585
12589
|
valid_until: z.ZodOptional<z.ZodString>;
|
|
12586
12590
|
notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -12601,6 +12605,8 @@ export declare const zNexFinopsProposalWriteSchema: z.ZodObject<{
|
|
|
12601
12605
|
html_content?: string | undefined;
|
|
12602
12606
|
base_amount?: number | undefined;
|
|
12603
12607
|
terms?: string | null | undefined;
|
|
12608
|
+
loyalty_period?: "none" | "3m" | "6m" | "1y" | "2y" | null | undefined;
|
|
12609
|
+
contract_template_key?: string | null | undefined;
|
|
12604
12610
|
valid_until?: string | undefined;
|
|
12605
12611
|
}, {
|
|
12606
12612
|
name?: string | null | undefined;
|
|
@@ -12619,6 +12625,8 @@ export declare const zNexFinopsProposalWriteSchema: z.ZodObject<{
|
|
|
12619
12625
|
html_content?: string | undefined;
|
|
12620
12626
|
base_amount?: number | undefined;
|
|
12621
12627
|
terms?: string | null | undefined;
|
|
12628
|
+
loyalty_period?: "none" | "3m" | "6m" | "1y" | "2y" | null | undefined;
|
|
12629
|
+
contract_template_key?: string | null | undefined;
|
|
12622
12630
|
valid_until?: string | undefined;
|
|
12623
12631
|
}>;
|
|
12624
12632
|
export declare const zNexFinopsProposalSchema: z.ZodObject<{
|
|
@@ -12646,6 +12654,9 @@ export declare const zNexFinopsProposalSchema: z.ZodObject<{
|
|
|
12646
12654
|
base_amount: z.ZodOptional<z.ZodNumber>;
|
|
12647
12655
|
due_day: z.ZodOptional<z.ZodNumber>;
|
|
12648
12656
|
accepted_payment_methods: z.ZodOptional<z.ZodArray<z.ZodEnum<["boleto", "card_subscription", "payment_link"]>, "many">>;
|
|
12657
|
+
loyalty_period: z.ZodNullable<z.ZodOptional<z.ZodEnum<["none", "3m", "6m", "1y", "2y"]>>>;
|
|
12658
|
+
/** Chave do modelo, nunca o id do template no provider — id não entra por HTTP. */
|
|
12659
|
+
contract_template_key: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
12649
12660
|
terms: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12650
12661
|
valid_until: z.ZodOptional<z.ZodString>;
|
|
12651
12662
|
notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -12673,6 +12684,8 @@ export declare const zNexFinopsProposalSchema: z.ZodObject<{
|
|
|
12673
12684
|
html_content?: string | undefined;
|
|
12674
12685
|
base_amount?: number | undefined;
|
|
12675
12686
|
terms?: string | null | undefined;
|
|
12687
|
+
loyalty_period?: "none" | "3m" | "6m" | "1y" | "2y" | null | undefined;
|
|
12688
|
+
contract_template_key?: string | null | undefined;
|
|
12676
12689
|
valid_until?: string | undefined;
|
|
12677
12690
|
}, {
|
|
12678
12691
|
currency: "BRL";
|
|
@@ -12694,6 +12707,8 @@ export declare const zNexFinopsProposalSchema: z.ZodObject<{
|
|
|
12694
12707
|
html_content?: string | undefined;
|
|
12695
12708
|
base_amount?: number | undefined;
|
|
12696
12709
|
terms?: string | null | undefined;
|
|
12710
|
+
loyalty_period?: "none" | "3m" | "6m" | "1y" | "2y" | null | undefined;
|
|
12711
|
+
contract_template_key?: string | null | undefined;
|
|
12697
12712
|
valid_until?: string | undefined;
|
|
12698
12713
|
}>;
|
|
12699
12714
|
export declare const zNexFinopsPaymentMethodSchema: z.ZodEnum<["pix", "boleto", "payment_link", "card_subscription"]>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.zProviderInvoiceLinksSchema = exports.zServiceTaxInfoSchema = exports.zServiceLineItemSchema = exports.zServiceInvoiceStateSchema = exports.zProviderServiceInvoiceStatusSchema = exports.zExternalLinkSchema = exports.zExternalObjectTypeSchema = exports.zInvoiceSourceRefSchema = exports.zInvoiceSourceTypeSchema = exports.zInvoiceTakerRefSchema = exports.zInvoiceTakerSnapshotSchema = exports.zInvoiceTakerSnapshotAddressSchema = exports.zTakerDocumentSchema = exports.zTakerTaxProfileSchema = exports.zTakerProviderRefsSchema = exports.zTakerAddressSchema = exports.zInvoiceTakerTypeSchema = exports.zServiceSchema = exports.zCustomerServiceTaxInfoSchema = exports.zIssuerTaxProfileSchema = exports.zIssuerNfseConfigSchema = exports.zIssuerMunicipalCredentialsRefSchema = exports.zIssuerTaxRegimeSchema = exports.zIssuerCompanyIdentitySchema = exports.zIssuerCompanyAddressSchema = exports.zTaxProfileSyncStateSchema = exports.zAsaasProviderSchema = exports.zAsaasProviderAsaasBlockSchema = exports.zAsaasProviderCapabilitiesSchema = exports.zAsaasPaymentsCapabilitiesSchema = exports.zAsaasNfseCapabilitiesSchema = exports.zAsaasEnvAuthConfigSchema = exports.zAsaasSubaccountInputSchema = exports.zAsaasAccountScopeSchema = exports.zAsaasWebhookConfigSchema = exports.zRetryPolicySchema = exports.zAsaasWebhookEventSchema = exports.zAsaasAccountScopeModeSchema = exports.zProviderRemoteRefsSchema = exports.zProviderFiscalInfoPayloadSchema = exports.zProviderCredentialsInputSchema = exports.zProviderCredentialsSecretRefsSchema = exports.zProviderMunicipalOptionsSnapshotSchema = exports.zProviderOptionItemSchema = exports.zProviderMunicipalAuthTypeSchema = exports.zFinopsProviderBaseSchema = exports.zProviderStatusSchema = exports.zFinopsActionSchema = exports.zFinopsProviderTypeSchema = exports.zProviderEnvSchema = void 0;
|
|
4
|
-
exports.zNexVendasJourneyPaymentSchema = exports.zNexVendasJourneyPaymentSupersededSchema = exports.zNexVendasJourneyPaymentWebhookEventSchema = exports.zNexVendasJourneyBoletoSchema = exports.zNexVendasJourneyPaymentChooseSchema = exports.zNexVendasJourneyPaymentStateSchema = exports.zNexVendasJourneyPaymentKindSchema = exports.zNexVendasJourneyPaymentMethodSchema = exports.zNexFinopsContractAsaasInfoSchema = exports.zNexFinopsAsaasSubscriptionStatusSchema = exports.zNexFinopsPaymentMethodSchema = exports.zNexFinopsProposalSchema = exports.zNexFinopsProposalWriteSchema = exports.zNexFinopsProposalPrefillSchema = exports.zNexFinopsProposalPaymentMethodSchema = exports.zNexFinopsProposalStatusSchema = exports.zServiceInvoiceSchema = exports.zPaymentLinkSchema = exports.zPaymentLinkDocumentStateSchema = exports.zAsaasPaymentLinkSubscriptionCycleSchema = exports.zAsaasPaymentLinkChargeTypeSchema = exports.zAsaasPaymentLinkBillingTypeSchema = exports.zProviderPayloadSnapshotSchema = exports.zProviderTraceSchema = exports.zProviderInvoiceErrorSchema = exports.zProviderInvoiceIdentifiersSchema = void 0;
|
|
4
|
+
exports.zNexVendasJourneyPaymentSchema = exports.zNexVendasJourneyPaymentSupersededSchema = exports.zNexVendasJourneyPaymentWebhookEventSchema = exports.zNexVendasJourneyBoletoSchema = exports.zNexVendasJourneyPaymentChooseSchema = exports.zNexVendasJourneyPaymentStateSchema = exports.zNexVendasJourneyPaymentKindSchema = exports.zNexVendasJourneyPaymentMethodSchema = exports.zNexFinopsContractAsaasInfoSchema = exports.zNexFinopsAsaasSubscriptionStatusSchema = exports.zNexFinopsPaymentMethodSchema = exports.zNexFinopsProposalSchema = exports.zNexFinopsProposalWriteSchema = exports.zNexFinopsProposalPrefillSchema = exports.zNexFinopsProposalLoyaltyPeriodSchema = exports.zNexFinopsProposalPaymentMethodSchema = exports.zNexFinopsProposalStatusSchema = exports.zServiceInvoiceSchema = exports.zPaymentLinkSchema = exports.zPaymentLinkDocumentStateSchema = exports.zAsaasPaymentLinkSubscriptionCycleSchema = exports.zAsaasPaymentLinkChargeTypeSchema = exports.zAsaasPaymentLinkBillingTypeSchema = exports.zProviderPayloadSnapshotSchema = exports.zProviderTraceSchema = exports.zProviderInvoiceErrorSchema = exports.zProviderInvoiceIdentifiersSchema = void 0;
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const zod_schemas_1 = require("../shared/zod-schemas");
|
|
7
7
|
// ---- Provider enums and base ----
|
|
@@ -693,6 +693,13 @@ exports.zNexFinopsProposalPaymentMethodSchema = zod_1.z.enum([
|
|
|
693
693
|
"card_subscription",
|
|
694
694
|
"payment_link",
|
|
695
695
|
]);
|
|
696
|
+
exports.zNexFinopsProposalLoyaltyPeriodSchema = zod_1.z.enum([
|
|
697
|
+
"none",
|
|
698
|
+
"3m",
|
|
699
|
+
"6m",
|
|
700
|
+
"1y",
|
|
701
|
+
"2y",
|
|
702
|
+
]);
|
|
696
703
|
exports.zNexFinopsProposalPrefillSchema = zod_1.z
|
|
697
704
|
.object({
|
|
698
705
|
name: zod_1.z.string().max(255).nullable().optional(),
|
|
@@ -719,6 +726,9 @@ exports.zNexFinopsProposalWriteSchema = zod_1.z
|
|
|
719
726
|
base_amount: zod_1.z.number().nonnegative().optional(),
|
|
720
727
|
due_day: zod_1.z.number().int().min(1).max(31).optional(),
|
|
721
728
|
accepted_payment_methods: zod_1.z.array(exports.zNexFinopsProposalPaymentMethodSchema).optional(),
|
|
729
|
+
loyalty_period: exports.zNexFinopsProposalLoyaltyPeriodSchema.optional().nullable(),
|
|
730
|
+
/** Chave do modelo, nunca o id do template no provider — id não entra por HTTP. */
|
|
731
|
+
contract_template_key: zod_1.z.string().max(64).optional().nullable(),
|
|
722
732
|
terms: zod_1.z.string().nullable().optional(),
|
|
723
733
|
valid_until: zod_1.z
|
|
724
734
|
.string()
|
|
@@ -757,6 +757,14 @@ export const zNexFinopsProposalPaymentMethodSchema = z.enum([
|
|
|
757
757
|
"payment_link",
|
|
758
758
|
]);
|
|
759
759
|
|
|
760
|
+
export const zNexFinopsProposalLoyaltyPeriodSchema = z.enum([
|
|
761
|
+
"none",
|
|
762
|
+
"3m",
|
|
763
|
+
"6m",
|
|
764
|
+
"1y",
|
|
765
|
+
"2y",
|
|
766
|
+
]);
|
|
767
|
+
|
|
760
768
|
export const zNexFinopsProposalPrefillSchema = z
|
|
761
769
|
.object({
|
|
762
770
|
name: z.string().max(255).nullable().optional(),
|
|
@@ -784,6 +792,9 @@ export const zNexFinopsProposalWriteSchema = z
|
|
|
784
792
|
base_amount: z.number().nonnegative().optional(),
|
|
785
793
|
due_day: z.number().int().min(1).max(31).optional(),
|
|
786
794
|
accepted_payment_methods: z.array(zNexFinopsProposalPaymentMethodSchema).optional(),
|
|
795
|
+
loyalty_period: zNexFinopsProposalLoyaltyPeriodSchema.optional().nullable(),
|
|
796
|
+
/** Chave do modelo, nunca o id do template no provider — id não entra por HTTP. */
|
|
797
|
+
contract_template_key: z.string().max(64).optional().nullable(),
|
|
787
798
|
terms: z.string().nullable().optional(),
|
|
788
799
|
valid_until: z
|
|
789
800
|
.string()
|
|
@@ -694,6 +694,7 @@ export declare const zMedCalendarSchema: z.ZodObject<{
|
|
|
694
694
|
end_time: z.ZodDefault<z.ZodString>;
|
|
695
695
|
interval: z.ZodDefault<z.ZodNumber>;
|
|
696
696
|
view_mode: z.ZodDefault<z.ZodEnum<["day", "week"]>>;
|
|
697
|
+
view_style: z.ZodOptional<z.ZodDefault<z.ZodEnum<["grid", "list"]>>>;
|
|
697
698
|
last_update: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodDate>>>;
|
|
698
699
|
n8n_wf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
699
700
|
order: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
@@ -1710,6 +1711,7 @@ export declare const zMedCalendarSchema: z.ZodObject<{
|
|
|
1710
1711
|
end_time: z.ZodDefault<z.ZodString>;
|
|
1711
1712
|
interval: z.ZodDefault<z.ZodNumber>;
|
|
1712
1713
|
view_mode: z.ZodDefault<z.ZodEnum<["day", "week"]>>;
|
|
1714
|
+
view_style: z.ZodOptional<z.ZodDefault<z.ZodEnum<["grid", "list"]>>>;
|
|
1713
1715
|
last_update: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodDate>>>;
|
|
1714
1716
|
n8n_wf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1715
1717
|
order: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
@@ -2726,6 +2728,7 @@ export declare const zMedCalendarSchema: z.ZodObject<{
|
|
|
2726
2728
|
end_time: z.ZodDefault<z.ZodString>;
|
|
2727
2729
|
interval: z.ZodDefault<z.ZodNumber>;
|
|
2728
2730
|
view_mode: z.ZodDefault<z.ZodEnum<["day", "week"]>>;
|
|
2731
|
+
view_style: z.ZodOptional<z.ZodDefault<z.ZodEnum<["grid", "list"]>>>;
|
|
2729
2732
|
last_update: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodDate>>>;
|
|
2730
2733
|
n8n_wf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2731
2734
|
order: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
@@ -93,7 +93,8 @@ exports.zMedCalendarSchema = zod_schemas_1.zFireDocSchema
|
|
|
93
93
|
start_time: zod_1.z.string().min(1).max(5).default("08:00"),
|
|
94
94
|
end_time: zod_1.z.string().min(1).max(5).default("18:00"),
|
|
95
95
|
interval: zod_1.z.number().min(1).max(1440).default(20),
|
|
96
|
-
view_mode: zod_1.z.enum(["day", "week"]).default("
|
|
96
|
+
view_mode: zod_1.z.enum(["day", "week"]).default("week"),
|
|
97
|
+
view_style: zod_1.z.enum(["grid", "list"]).default("grid").optional(),
|
|
97
98
|
last_update: zod_1.z.coerce.date().nullable().default(null).optional(),
|
|
98
99
|
n8n_wf: zod_1.z.string().min(1).max(500).nullable().optional(),
|
|
99
100
|
order: zod_1.z.number().min(0).max(100).default(0).optional(),
|
|
@@ -97,7 +97,8 @@ export const zMedCalendarSchema = zFireDocSchema
|
|
|
97
97
|
start_time: z.string().min(1).max(5).default("08:00"),
|
|
98
98
|
end_time: z.string().min(1).max(5).default("18:00"),
|
|
99
99
|
interval: z.number().min(1).max(1440).default(20),
|
|
100
|
-
view_mode: z.enum(["day", "week"]).default("
|
|
100
|
+
view_mode: z.enum(["day", "week"]).default("week"),
|
|
101
|
+
view_style: z.enum(["grid", "list"]).default("grid").optional(),
|
|
101
102
|
last_update: z.coerce.date().nullable().default(null).optional(),
|
|
102
103
|
n8n_wf: z.string().min(1).max(500).nullable().optional(),
|
|
103
104
|
order: z.number().min(0).max(100).default(0).optional(),
|
|
@@ -16,6 +16,17 @@ export type NexFinopsProposalOrigem = 'vendas' | 'site-hm' | (string & {});
|
|
|
16
16
|
* não oferece pix avulso; os dois conjuntos divergem de propósito.
|
|
17
17
|
*/
|
|
18
18
|
export type NexFinopsProposalPaymentMethod = 'boleto' | 'card_subscription' | 'payment_link';
|
|
19
|
+
/**
|
|
20
|
+
* Prazo de fidelidade da proposta (cláusula 6.1 do contrato). União fechada, e
|
|
21
|
+
* não número de meses, porque o contrato exige o prazo por extenso ("1 (um)
|
|
22
|
+
* ano", não "12 meses") — o texto é parte da cláusula, então o conjunto de
|
|
23
|
+
* valores aceitos é o conjunto de textos que existem.
|
|
24
|
+
*
|
|
25
|
+
* O rótulo por extenso NÃO mora aqui: quem renderiza é o backend
|
|
26
|
+
* (`LOYALTY_PERIOD_LABELS`, em `@evo/nex-model`), e a projeção pública já entrega
|
|
27
|
+
* o texto pronto em `loyalty_period_label`.
|
|
28
|
+
*/
|
|
29
|
+
export type NexFinopsProposalLoyaltyPeriod = 'none' | '3m' | '6m' | '1y' | '2y';
|
|
19
30
|
/** Dados que o vendedor já conhece e a página pública usa para pré-preencher. */
|
|
20
31
|
export interface INexFinopsProposalPrefill {
|
|
21
32
|
name?: string | null;
|
|
@@ -40,6 +51,20 @@ export interface INexFinopsProposal extends IFireGlobalDoc {
|
|
|
40
51
|
accepted_payment_methods: NexFinopsProposalPaymentMethod[];
|
|
41
52
|
terms?: string | null;
|
|
42
53
|
currency: 'BRL';
|
|
54
|
+
/**
|
|
55
|
+
* Fidelidade contratada. Ausente é lido como `'none'` — propostas anteriores à
|
|
56
|
+
* feat-140 não têm o campo e não têm fidelidade.
|
|
57
|
+
*/
|
|
58
|
+
loyalty_period?: NexFinopsProposalLoyaltyPeriod | null;
|
|
59
|
+
/**
|
|
60
|
+
* Modelo de contrato escolhido pelo vendedor, por CHAVE.
|
|
61
|
+
*
|
|
62
|
+
* Chave e não identificador do provider de assinatura: o identificador é
|
|
63
|
+
* configuração de ambiente (muda entre sandbox e produção) e congelá-lo num
|
|
64
|
+
* documento do Firestore o deixaria apontando para um template que já não
|
|
65
|
+
* existe. Ausente é o legado anterior à feat-140 — envelope no modelo único.
|
|
66
|
+
*/
|
|
67
|
+
contract_template_key?: string | null;
|
|
43
68
|
valid_until: string;
|
|
44
69
|
sent_at?: Date | null;
|
|
45
70
|
viewed_at?: Date | null;
|
|
@@ -56,6 +81,15 @@ export interface INexFinopsProposalPublic {
|
|
|
56
81
|
accepted_payment_methods: NexFinopsProposalPaymentMethod[];
|
|
57
82
|
terms: string | null;
|
|
58
83
|
valid_until: string;
|
|
84
|
+
/**
|
|
85
|
+
* Fidelidade já por extenso ("3 (três) meses"), ou `null` quando não há.
|
|
86
|
+
* Vem pronta de propósito: é condição comercial que o lead precisa ler antes
|
|
87
|
+
* de aceitar, e o mapa de rótulos não deve existir em dois lugares.
|
|
88
|
+
*
|
|
89
|
+
* `contract_template_key` NÃO tem par público: qual modelo de contrato o
|
|
90
|
+
* envelope usa é decisão interna.
|
|
91
|
+
*/
|
|
92
|
+
loyalty_period_label?: string | null;
|
|
59
93
|
/** Só nome de exibição — nunca e-mail, telefone ou documento completos. */
|
|
60
94
|
prefill_masked: {
|
|
61
95
|
name: string | null;
|
|
@@ -28,6 +28,18 @@ export type NexFinopsProposalOrigem = 'vendas' | 'site-hm' | (string & {});
|
|
|
28
28
|
*/
|
|
29
29
|
export type NexFinopsProposalPaymentMethod = 'boleto' | 'card_subscription' | 'payment_link';
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Prazo de fidelidade da proposta (cláusula 6.1 do contrato). União fechada, e
|
|
33
|
+
* não número de meses, porque o contrato exige o prazo por extenso ("1 (um)
|
|
34
|
+
* ano", não "12 meses") — o texto é parte da cláusula, então o conjunto de
|
|
35
|
+
* valores aceitos é o conjunto de textos que existem.
|
|
36
|
+
*
|
|
37
|
+
* O rótulo por extenso NÃO mora aqui: quem renderiza é o backend
|
|
38
|
+
* (`LOYALTY_PERIOD_LABELS`, em `@evo/nex-model`), e a projeção pública já entrega
|
|
39
|
+
* o texto pronto em `loyalty_period_label`.
|
|
40
|
+
*/
|
|
41
|
+
export type NexFinopsProposalLoyaltyPeriod = 'none' | '3m' | '6m' | '1y' | '2y';
|
|
42
|
+
|
|
31
43
|
// ── Prefill do cliente ──
|
|
32
44
|
|
|
33
45
|
/** Dados que o vendedor já conhece e a página pública usa para pré-preencher. */
|
|
@@ -67,6 +79,21 @@ export interface INexFinopsProposal extends IFireGlobalDoc {
|
|
|
67
79
|
terms?: string | null;
|
|
68
80
|
currency: 'BRL';
|
|
69
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Fidelidade contratada. Ausente é lido como `'none'` — propostas anteriores à
|
|
84
|
+
* feat-140 não têm o campo e não têm fidelidade.
|
|
85
|
+
*/
|
|
86
|
+
loyalty_period?: NexFinopsProposalLoyaltyPeriod | null;
|
|
87
|
+
/**
|
|
88
|
+
* Modelo de contrato escolhido pelo vendedor, por CHAVE.
|
|
89
|
+
*
|
|
90
|
+
* Chave e não identificador do provider de assinatura: o identificador é
|
|
91
|
+
* configuração de ambiente (muda entre sandbox e produção) e congelá-lo num
|
|
92
|
+
* documento do Firestore o deixaria apontando para um template que já não
|
|
93
|
+
* existe. Ausente é o legado anterior à feat-140 — envelope no modelo único.
|
|
94
|
+
*/
|
|
95
|
+
contract_template_key?: string | null;
|
|
96
|
+
|
|
70
97
|
// Validade — data ISO `YYYY-MM-DD`, igual a `starts_at`/`ends_at` do contrato
|
|
71
98
|
valid_until: string;
|
|
72
99
|
|
|
@@ -90,6 +117,15 @@ export interface INexFinopsProposalPublic {
|
|
|
90
117
|
accepted_payment_methods: NexFinopsProposalPaymentMethod[];
|
|
91
118
|
terms: string | null;
|
|
92
119
|
valid_until: string;
|
|
120
|
+
/**
|
|
121
|
+
* Fidelidade já por extenso ("3 (três) meses"), ou `null` quando não há.
|
|
122
|
+
* Vem pronta de propósito: é condição comercial que o lead precisa ler antes
|
|
123
|
+
* de aceitar, e o mapa de rótulos não deve existir em dois lugares.
|
|
124
|
+
*
|
|
125
|
+
* `contract_template_key` NÃO tem par público: qual modelo de contrato o
|
|
126
|
+
* envelope usa é decisão interna.
|
|
127
|
+
*/
|
|
128
|
+
loyalty_period_label?: string | null;
|
|
93
129
|
/** Só nome de exibição — nunca e-mail, telefone ou documento completos. */
|
|
94
130
|
prefill_masked: { name: string | null };
|
|
95
131
|
}
|