godeep-types 1.0.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.
Files changed (74) hide show
  1. package/README.md +84 -0
  2. package/dist/module.d.mts +8 -0
  3. package/dist/module.json +9 -0
  4. package/dist/module.mjs +16 -0
  5. package/dist/runtime/plugin.d.ts +2 -0
  6. package/dist/runtime/plugin.js +4 -0
  7. package/dist/runtime/server/tsconfig.json +3 -0
  8. package/dist/runtime/translate/avaliacoes.d.ts +4 -0
  9. package/dist/runtime/translate/avaliacoes.js +26 -0
  10. package/dist/runtime/translate/banner.d.ts +6 -0
  11. package/dist/runtime/translate/banner.js +69 -0
  12. package/dist/runtime/translate/basket.d.ts +5 -0
  13. package/dist/runtime/translate/basket.js +40 -0
  14. package/dist/runtime/translate/busca.d.ts +8 -0
  15. package/dist/runtime/translate/busca.js +18 -0
  16. package/dist/runtime/translate/campos-cadastro.d.ts +4 -0
  17. package/dist/runtime/translate/campos-cadastro.js +95 -0
  18. package/dist/runtime/translate/carrinho.d.ts +6 -0
  19. package/dist/runtime/translate/carrinho.js +141 -0
  20. package/dist/runtime/translate/categoria.d.ts +4 -0
  21. package/dist/runtime/translate/categoria.js +75 -0
  22. package/dist/runtime/translate/cliente.d.ts +4 -0
  23. package/dist/runtime/translate/cliente.js +82 -0
  24. package/dist/runtime/translate/configuracoes.d.ts +3 -0
  25. package/dist/runtime/translate/configuracoes.js +46 -0
  26. package/dist/runtime/translate/esqueceu-senha.d.ts +4 -0
  27. package/dist/runtime/translate/esqueceu-senha.js +14 -0
  28. package/dist/runtime/translate/favoritos.d.ts +4 -0
  29. package/dist/runtime/translate/favoritos.js +13 -0
  30. package/dist/runtime/translate/frete.d.ts +3 -0
  31. package/dist/runtime/translate/frete.js +31 -0
  32. package/dist/runtime/translate/home.d.ts +4 -0
  33. package/dist/runtime/translate/home.js +26 -0
  34. package/dist/runtime/translate/index.d.ts +24 -0
  35. package/dist/runtime/translate/index.js +24 -0
  36. package/dist/runtime/translate/menu.d.ts +4 -0
  37. package/dist/runtime/translate/menu.js +124 -0
  38. package/dist/runtime/translate/newsletter.d.ts +3 -0
  39. package/dist/runtime/translate/newsletter.js +5 -0
  40. package/dist/runtime/translate/pagamento.d.ts +4 -0
  41. package/dist/runtime/translate/pagamento.js +66 -0
  42. package/dist/runtime/translate/pagina.d.ts +4 -0
  43. package/dist/runtime/translate/pagina.js +12 -0
  44. package/dist/runtime/translate/parametros.d.ts +7 -0
  45. package/dist/runtime/translate/parametros.js +115 -0
  46. package/dist/runtime/translate/pedidos.d.ts +3 -0
  47. package/dist/runtime/translate/pedidos.js +82 -0
  48. package/dist/runtime/translate/produto.d.ts +12 -0
  49. package/dist/runtime/translate/produto.js +510 -0
  50. package/dist/runtime/translate/redefinir-senha.d.ts +4 -0
  51. package/dist/runtime/translate/redefinir-senha.js +10 -0
  52. package/dist/runtime/translate/redes-sociais.d.ts +3 -0
  53. package/dist/runtime/translate/redes-sociais.js +40 -0
  54. package/dist/runtime/translate/usuario.d.ts +10 -0
  55. package/dist/runtime/translate/usuario.js +102 -0
  56. package/dist/runtime/translate/vitrine-listagem.d.ts +4 -0
  57. package/dist/runtime/translate/vitrine-listagem.js +81 -0
  58. package/dist/runtime/translate/vitrine.d.ts +6 -0
  59. package/dist/runtime/translate/vitrine.js +37 -0
  60. package/dist/runtime/types/godeep.d.ts +1449 -0
  61. package/dist/runtime/types/godeep.js +0 -0
  62. package/dist/runtime/types/index.d.ts +3 -0
  63. package/dist/runtime/types/index.js +3 -0
  64. package/dist/runtime/types/shims-vue.d.ts +10 -0
  65. package/dist/runtime/types/storefront.d.ts +1005 -0
  66. package/dist/runtime/types/storefront.js +0 -0
  67. package/dist/runtime/types/utils.d.ts +67 -0
  68. package/dist/runtime/types/utils.js +20 -0
  69. package/dist/runtime/utils/gerais.d.ts +2 -0
  70. package/dist/runtime/utils/gerais.js +13 -0
  71. package/dist/runtime/utils/index.d.ts +1 -0
  72. package/dist/runtime/utils/index.js +1 -0
  73. package/dist/types.d.mts +3 -0
  74. package/package.json +75 -0
@@ -0,0 +1,82 @@
1
+ function traduzirPrecoProduto(preco) {
2
+ if (!preco) return void 0;
3
+ return {
4
+ preco: preco.preco,
5
+ precoDe: preco.preco_de,
6
+ precoPor: preco.preco_por,
7
+ precoDeJuros: preco.preco_de_juros,
8
+ precoPorJuros: preco.preco_por_juros,
9
+ precoAvista: preco.preco_avista,
10
+ precoAvistaJuros: preco.preco_avista_juros,
11
+ desconto: preco.desconto,
12
+ preco1x: preco.preco1x,
13
+ precoDescontoBoleto: preco.preco_desconto_boleto
14
+ };
15
+ }
16
+ function traduzirPedidoProduto(produto) {
17
+ return {
18
+ id: produto.id,
19
+ imagem: produto.imagem,
20
+ descricao: produto.descricao,
21
+ nome: produto.nome,
22
+ codigo: produto.codigo,
23
+ variacao: produto.variacao,
24
+ quantidade: produto.quantidade,
25
+ disponibilidade: produto.disponibilidade,
26
+ preco: traduzirPrecoProduto(produto.preco)
27
+ };
28
+ }
29
+ function traduzirPagamento(pagamento) {
30
+ if (!pagamento) return void 0;
31
+ return {
32
+ nome: pagamento.nome,
33
+ parametro: pagamento.parametro,
34
+ meioPagamento: pagamento.meioPagamento,
35
+ valor: pagamento.valor,
36
+ parcelas: pagamento.parcelas,
37
+ imagem: pagamento.imagem,
38
+ descricao: pagamento.descricao,
39
+ pagamentoPixChave: pagamento.pagamento_pix_chave,
40
+ linkOrderCancel: pagamento.linkOrderCancel
41
+ };
42
+ }
43
+ function traduzirPedido(pedido) {
44
+ return {
45
+ id: pedido.id,
46
+ dados: pedido.dados ? {
47
+ numero: pedido.dados.numero,
48
+ data: pedido.dados.data,
49
+ idStatus: pedido.dados.id_status,
50
+ status: pedido.dados.status,
51
+ desconto: pedido.dados.desconto,
52
+ tipoDeFrete: pedido.dados.tipoDeFrete,
53
+ frete: pedido.dados.frete,
54
+ subtotal: pedido.dados.subtotal,
55
+ total: pedido.dados.total
56
+ } : void 0,
57
+ entrega: pedido.entrega ? {
58
+ nomeDestinatario: pedido.entrega.nomeDestinatario,
59
+ endereco: pedido.entrega.endereco,
60
+ numero: pedido.entrega.numero,
61
+ bairro: pedido.entrega.bairro,
62
+ cidade: pedido.entrega.cidade,
63
+ cep: pedido.entrega.cep,
64
+ complemento: pedido.entrega.complemento,
65
+ estado: pedido.entrega.estado
66
+ } : void 0,
67
+ pagamento: traduzirPagamento(pedido.pagamento),
68
+ produtos: pedido.produtos?.map(traduzirPedidoProduto)
69
+ };
70
+ }
71
+ export function traduzirPedidos(resposta) {
72
+ if (!resposta) return { pedidos: [] };
73
+ const pedidos = resposta.dados?.map(traduzirPedido) ?? [];
74
+ const paginador = resposta.paginador ? {
75
+ paginaAtual: resposta.paginador.paginaAtual,
76
+ ultimaPagina: resposta.paginador.ultimaPagina,
77
+ proximaPagina: resposta.paginador.proximaPagina,
78
+ porPagina: resposta.paginador.porPagina,
79
+ maisPaginas: resposta.paginador.maisPaginas
80
+ } : void 0;
81
+ return { pedidos, paginador };
82
+ }
@@ -0,0 +1,12 @@
1
+ import type { GodeepAvisemeResponse, GodeepProdutoDetalhe, GodeepProdutoDetalheDado, GodeepProdutosRelacionados, GodeepMetodosPagamentoResponse } from '../types/godeep.js';
2
+ import type { StorefrontAvisemeResponse, StorefrontProduto, StorefrontCardItem, StorefrontProdutosRelacionados, StorefrontMetodoPagamento } from '../types/storefront.js';
3
+ export declare function traduzirProduto(dado: GodeepProdutoDetalheDado): StorefrontProduto;
4
+ export declare function traduzirProdutoParaCard(dado: GodeepProdutoDetalheDado): StorefrontCardItem;
5
+ export declare function traduzirProdutos(dados?: GodeepProdutoDetalheDado[]): StorefrontCardItem[];
6
+ export declare function traduzirProdutosRelacionados(resposta: GodeepProdutosRelacionados | null): StorefrontProdutosRelacionados | null;
7
+ export declare function traduzirMetodosPagamento(resposta: GodeepMetodosPagamentoResponse | null): StorefrontMetodoPagamento[];
8
+ export declare function reverterProduto(storefront: StorefrontProduto): GodeepProdutoDetalhe;
9
+ export declare function reverterProdutoCard(produto: StorefrontCardItem): GodeepProdutoDetalheDado;
10
+ export declare function reverterProdutosDeCard(produtos: StorefrontCardItem[] | undefined): GodeepProdutoDetalheDado[];
11
+ export declare function traduzirAviseme(response: GodeepAvisemeResponse): StorefrontAvisemeResponse;
12
+ export declare function reverterAviseme(response: StorefrontAvisemeResponse): GodeepAvisemeResponse;
@@ -0,0 +1,510 @@
1
+ import { formataReal, calcularEstrelas } from "../utils/gerais.js";
2
+ export function traduzirProduto(dado) {
3
+ console.log("traduzirProduto storefront", dado);
4
+ if (!dado) {
5
+ throw new Error("Produto n\xE3o pode ser undefined ou null");
6
+ }
7
+ const preco = dado.disponibilidade?.precos?.[0];
8
+ return {
9
+ id: dado.id,
10
+ nome: dado?.detalhe?.nome,
11
+ slug: dado.slug,
12
+ tipo: dado?.detalhe?.tipo,
13
+ sellers: dado.sellers?.map((seller) => ({
14
+ id: seller.id,
15
+ nome: seller.nome,
16
+ valorDe: seller.valor_de,
17
+ valorPor: seller.valor_por,
18
+ valorCrossdocking: seller.valor_crossdocking,
19
+ valorRessuprimento: seller.valor_ressuprimento,
20
+ estoque: seller.estoque,
21
+ estoqueCrossdocking: seller.estoque_crossdocking,
22
+ estoqueInfinito: seller.estoque_infinito,
23
+ prazoCrossdocking: seller.prazo_crossdocking,
24
+ prazoRessuprimento: seller.prazo_ressuprimento,
25
+ maximoItensPorCompra: seller.maximo_itens_por_compra,
26
+ minimoItensPorCompra: seller.minimo_itens_por_compra,
27
+ urlFrete: seller.urlFrete
28
+ })),
29
+ descricao: dado.detalhe?.descricao,
30
+ preco: {
31
+ avista: preco?.avista,
32
+ de: preco?.de,
33
+ por: preco?.por,
34
+ parcelamento: {
35
+ maximoParcelas: preco?.numeroParcelas,
36
+ valorParcela: preco?.valorParcela
37
+ },
38
+ porcentagemDesconto: preco?.porcentagemDesconto,
39
+ msgAvista: preco?.msgAvista
40
+ },
41
+ imagens: dado.midia?.imagens?.map((img) => ({
42
+ url: img.real,
43
+ alt: dado.detalhe?.nome
44
+ })),
45
+ categorias: dado.categorias?.map((cat) => ({
46
+ id: cat.id,
47
+ nome: cat.nome,
48
+ slug: cat.slug,
49
+ imagem: cat.imagem,
50
+ path: cat.path
51
+ })),
52
+ estoque: dado.disponibilidade?.quantidade,
53
+ peso: dado.detalhe?.peso,
54
+ largura: dado.detalhe?.largura,
55
+ altura: dado.detalhe?.altura,
56
+ comprimento: dado.detalhe?.comprimento,
57
+ codigo: dado.detalhe?.codigo,
58
+ status: dado.detalhe?.situacao?.status ?? dado.detalhe?.status,
59
+ selos: dado.midia?.selos?.map((selo) => ({
60
+ id: selo.id,
61
+ nome: selo.nome,
62
+ imagem: selo.imagem,
63
+ link: selo.link
64
+ })),
65
+ videos: dado.midia?.videos,
66
+ atributos: dado.atributos,
67
+ kit: dado.kit?.filter((k) => k != null).map((k) => traduzirProduto(k)),
68
+ variacao: dado.modeloVariacao?.variacoesDisponiveis?.map((vd) => ({
69
+ tipo: vd.tipo,
70
+ valores: vd.valores?.map((v) => ({
71
+ nome: v.nome,
72
+ imagemAtivo: v.imagemAtivo,
73
+ imagemInativo: v.imagemInativo,
74
+ situacao: v.situacao,
75
+ thumbnails: v.thumbnails
76
+ }))
77
+ })),
78
+ itensGrade: dado.itensGrade ? {
79
+ propriedades: dado.itensGrade.propriedades?.map(
80
+ (p) => ({
81
+ label: p.label,
82
+ opcao: p.opcao,
83
+ imagem: {
84
+ real: p.imagem?.real,
85
+ urlResizer: p.imagem?.urlResizer,
86
+ urlParametro: p.imagem?.urlParametro
87
+ },
88
+ imagemSemEstoque: {
89
+ real: p?.imagemSemEstoque?.real,
90
+ urlResizer: p?.imagemSemEstoque?.urlResizer,
91
+ urlParametro: p?.imagemSemEstoque?.urlParametro
92
+ },
93
+ id: p.id,
94
+ disponibilidade: {
95
+ precos: p.disponibilidade?.precos?.map(
96
+ (preco2) => ({
97
+ avista: preco2.avista,
98
+ de: preco2.de,
99
+ por: preco2.por,
100
+ parcelamento: {
101
+ maximoParcelas: preco2.numeroParcelas,
102
+ valorParcela: preco2.valorParcela
103
+ },
104
+ porcentagemDesconto: preco2.porcentagemDesconto,
105
+ msgAvista: preco2.msgAvista
106
+ })
107
+ ),
108
+ cd: p.disponibilidade?.cd,
109
+ msgDisponibilidade: p.disponibilidade?.msg_disponibilidade,
110
+ quantidade: p.disponibilidade?.quantidade,
111
+ produtoGratuito: p.disponibilidade?.produto_gratuito,
112
+ estoqueMultiplo: p.disponibilidade?.estoque_multiplo,
113
+ prazoRessuprimento: p.disponibilidade?.prazo_ressuprimento,
114
+ maximoItensPorCompra: p.disponibilidade?.maximo_itens_por_compra,
115
+ minimoItensPorCompra: p.disponibilidade?.minimo_itens_por_compra,
116
+ estoques: p.disponibilidade?.estoques?.map(
117
+ (estoque) => ({
118
+ id: estoque.id,
119
+ quantidade: estoque.quantidade,
120
+ info: estoque.infoCd
121
+ })
122
+ )
123
+ },
124
+ selected: p.selected,
125
+ descricao: p.descricao,
126
+ preco: p.preco ? {
127
+ avista: p.preco.avista,
128
+ de: p.preco.de,
129
+ por: p.preco.por,
130
+ parcelamento: {
131
+ maximoParcelas: p.preco.numeroParcelas,
132
+ valorParcela: p.preco.valorParcela
133
+ },
134
+ porcentagemDesconto: p.preco.porcentagemDesconto,
135
+ msgAvista: p.preco.msgAvista
136
+ } : void 0,
137
+ imagens: p.imagens?.map((img) => ({
138
+ url: img.real,
139
+ alt: p.label
140
+ })),
141
+ categorias: p.categorias?.map((cat) => ({
142
+ id: cat.id,
143
+ nome: cat.nome,
144
+ slug: cat.slug,
145
+ imagem: cat.imagem,
146
+ path: cat.path
147
+ }))
148
+ })
149
+ ),
150
+ skus: dado.itensGrade.skus
151
+ } : void 0,
152
+ avaliacao: dado.avaliacao ? {
153
+ media: dado.avaliacao.media,
154
+ quantidade: dado.avaliacao.quantidade,
155
+ notaMaxima: dado.avaliacao.notaMaxima,
156
+ comentarios: dado.avaliacao.comentarios?.map((c) => ({
157
+ id: c.id,
158
+ titulo: c.titulo,
159
+ nome: c.nome,
160
+ nota: c.nota,
161
+ cidade: c.cidade,
162
+ email: c.email,
163
+ data: c.data,
164
+ descricao: c.descricao
165
+ }))
166
+ } : void 0,
167
+ seo: {
168
+ metaDescription: dado.seo?.metaDescription,
169
+ metaTitlePagina: dado.seo?.metaTitlePagina,
170
+ metaKeyword: dado.seo?.metaKeyword,
171
+ metaCanonical: dado.seo?.metaCanonical,
172
+ metaRedirect: dado.seo?.metaRedirect,
173
+ slug: dado.seo?.slug
174
+ }
175
+ };
176
+ }
177
+ export function traduzirProdutoParaCard(dado) {
178
+ if (!dado) {
179
+ throw new Error("Produto n\xE3o pode ser undefined ou null");
180
+ }
181
+ const preco = dado.disponibilidade?.precos?.[0];
182
+ const precoDe = preco?.de ?? 0;
183
+ const precoPor = preco?.por ?? 0;
184
+ const precoAvista = preco?.avista ?? precoPor;
185
+ const temDesconto = precoDe > precoPor;
186
+ const percentualDesconto = precoDe > 0 && precoDe > precoPor ? Math.round((precoDe - precoPor) / precoDe * 100) : null;
187
+ const parcelas = preco?.numeroParcelas;
188
+ const valorParcela = preco?.valorParcela;
189
+ const avaliacaoMedia = dado.avaliacao?.media ?? 0;
190
+ const notaMaxima = dado.avaliacao?.notaMaxima ?? 5;
191
+ const estrelasPreenchidas = calcularEstrelas(avaliacaoMedia, notaMaxima);
192
+ const parcelamentoTexto = parcelas && valorParcela && parcelas >= 2 ? `ou ${formataReal(precoPor)} em ${parcelas}x de ${formataReal(valorParcela)}` : null;
193
+ const imagemPrincipal = dado.midia?.imagens?.[0]?.real || "/placeholder-product.png";
194
+ return {
195
+ id: dado.id,
196
+ nome: dado.detalhe?.nome || dado?.nome,
197
+ preco: preco ? {
198
+ avista: preco.avista,
199
+ de: preco.de,
200
+ por: preco.por,
201
+ parcelamento: {
202
+ maximoParcelas: preco.numeroParcelas,
203
+ valorParcela: preco.valorParcela
204
+ },
205
+ porcentagemDesconto: preco.porcentagemDesconto,
206
+ msgAvista: preco.msgAvista
207
+ } : void 0,
208
+ slug: dado.slug,
209
+ status: dado.detalhe?.status,
210
+ categorias: Array.isArray(dado.categorias?.[0]) ? dado.categorias[0].map((cat) => ({
211
+ id: cat.id,
212
+ nome: cat.nome,
213
+ slug: cat.slug,
214
+ imagem: cat.imagem,
215
+ path: cat.path
216
+ })) : void 0,
217
+ estoque: dado.disponibilidade?.quantidade,
218
+ selos: dado.midia?.selos?.map((selo) => ({
219
+ id: selo.id,
220
+ nome: selo.nome,
221
+ imagem: selo.imagem,
222
+ link: selo.link
223
+ })),
224
+ descricao: dado.detalhe?.descricao,
225
+ avaliacao: dado.avaliacao ? {
226
+ media: dado.avaliacao.media,
227
+ quantidade: dado.avaliacao.quantidade,
228
+ notaMaxima: dado.avaliacao.notaMaxima,
229
+ comentarios: dado.avaliacao.comentarios?.map((c) => ({
230
+ id: c.id,
231
+ titulo: c.titulo,
232
+ nome: c.nome,
233
+ nota: c.nota,
234
+ cidade: c.cidade,
235
+ email: c.email,
236
+ data: c.data,
237
+ descricao: c.descricao
238
+ }))
239
+ } : void 0,
240
+ imagens: dado.midia?.imagens?.map((img) => ({
241
+ url: img.real,
242
+ alt: dado.detalhe?.nome
243
+ })),
244
+ // Campos calculados prontos para uso
245
+ imagemPrincipal,
246
+ precoFormatado: formataReal(precoAvista),
247
+ // Preço no PIX
248
+ precoDeFormatado: precoDe > 0 && temDesconto ? formataReal(precoDe) : null,
249
+ parcelamentoTexto,
250
+ percentualDesconto,
251
+ estrelasPreenchidas,
252
+ temDesconto
253
+ };
254
+ }
255
+ export function traduzirProdutos(dados) {
256
+ if (!dados || !Array.isArray(dados)) return [];
257
+ return dados.filter((produto) => !!produto).map((produto) => traduzirProdutoParaCard(produto));
258
+ }
259
+ export function traduzirProdutosRelacionados(resposta) {
260
+ const dados = resposta?.dados;
261
+ if (!dados) return null;
262
+ return {
263
+ compreTambem: {
264
+ id: 1,
265
+ nome: "Quem comprou, comprou tamb\xE9m",
266
+ slug: "quem-comprou-comprou-tambem",
267
+ descricao: "Clientes que compraram este produto tamb\xE9m compraram os seguintes produtos",
268
+ produtos: traduzirProdutos(dados.compreTambem)
269
+ },
270
+ produtosSimilares: {
271
+ id: 2,
272
+ nome: "Produtos similares",
273
+ slug: "produtos-similares",
274
+ descricao: "Produtos similares ao produto selecionado",
275
+ produtos: traduzirProdutos(dados.produtosSimilares)
276
+ },
277
+ produtosAutor: {
278
+ id: 3,
279
+ nome: "Produtos do autor",
280
+ slug: "produtos-do-autor",
281
+ descricao: "Produtos do autor do produto selecionado",
282
+ produtos: traduzirProdutos(dados.produtosAutor)
283
+ }
284
+ };
285
+ }
286
+ const METODOS_CONFIG = {
287
+ PAGSEGUROAPI_VISA: { nome: "Cart\xE3o de Cr\xE9dito", tipo: "credito", bandeira: "Visa" },
288
+ PAGSEGUROAPI_MASTERCARD: { nome: "Cart\xE3o de Cr\xE9dito", tipo: "credito", bandeira: "Mastercard" },
289
+ PAGSEGUROAPI_ELO: { nome: "Cart\xE3o de Cr\xE9dito", tipo: "credito", bandeira: "Elo" },
290
+ PAGSEGUROAPI_AMEX: { nome: "Cart\xE3o de Cr\xE9dito", tipo: "credito", bandeira: "American Express" },
291
+ PAGSEGUROAPI_DINERS: { nome: "Cart\xE3o de Cr\xE9dito", tipo: "credito", bandeira: "Diners Club" },
292
+ PAGSEGUROAPI_VISA_DEBITO: { nome: "Cart\xE3o de D\xE9bito", tipo: "debito", bandeira: "Visa" },
293
+ PAGSEGUROAPI_MASTERCARD_DEBITO: { nome: "Cart\xE3o de D\xE9bito", tipo: "debito", bandeira: "Mastercard" },
294
+ PAGSEGUROAPI_ELO_DEBITO: { nome: "Cart\xE3o de D\xE9bito", tipo: "debito", bandeira: "Elo" },
295
+ WEBBOLETO: { nome: "PIX", tipo: "pix" },
296
+ BOLETO: { nome: "Boleto Banc\xE1rio", tipo: "boleto" }
297
+ };
298
+ function parseValorMonetario(valor) {
299
+ if (!valor) return 0;
300
+ return Number.parseFloat(valor.replace(/\./g, "").replace(",", "."));
301
+ }
302
+ export function traduzirMetodosPagamento(resposta) {
303
+ if (!resposta?.pagamentos) return [];
304
+ const metodosMap = /* @__PURE__ */ new Map();
305
+ Object.entries(resposta.pagamentos).forEach(([codigo, detalhes]) => {
306
+ const config = METODOS_CONFIG[codigo] || { nome: codigo, tipo: "outros" };
307
+ const parcelas = Object.entries(detalhes.parcelas || {}).map(
308
+ ([chave, valorStr]) => {
309
+ const numero = Number.parseInt(chave.replace("x", ""));
310
+ const valor = parseValorMonetario(valorStr);
311
+ return {
312
+ numero: Number.isNaN(numero) ? void 0 : numero,
313
+ valor,
314
+ total: Number.isNaN(numero) ? void 0 : valor * numero,
315
+ taxa: 0
316
+ };
317
+ }
318
+ ).sort((a, b) => (a.numero ?? 0) - (b.numero ?? 0));
319
+ const valorAvista = parseValorMonetario(detalhes.avista);
320
+ const chaveAgrupamento = config.tipo || "outros";
321
+ if (metodosMap.has(chaveAgrupamento)) {
322
+ const existente = metodosMap.get(chaveAgrupamento);
323
+ const parcelasExistentes = new Map(
324
+ existente.parcelas?.map((p) => [p.numero, p]) ?? []
325
+ );
326
+ parcelas.forEach((parcela) => {
327
+ if (parcela.numero && !parcelasExistentes.has(parcela.numero)) {
328
+ parcelasExistentes.set(parcela.numero, parcela);
329
+ }
330
+ });
331
+ existente.parcelas = Array.from(parcelasExistentes.values()).sort(
332
+ (a, b) => (a.numero ?? 0) - (b.numero ?? 0)
333
+ );
334
+ if (valorAvista < (existente.valorAvista ?? Number.POSITIVE_INFINITY)) {
335
+ existente.valorAvista = valorAvista;
336
+ }
337
+ existente.codigos = [
338
+ ...existente.codigos ?? [],
339
+ existente.codigo ?? "",
340
+ codigo
341
+ ].filter(Boolean);
342
+ if (config.bandeira) {
343
+ existente.bandeiras = Array.from(
344
+ /* @__PURE__ */ new Set([...existente.bandeiras ?? [], config.bandeira])
345
+ );
346
+ }
347
+ } else {
348
+ metodosMap.set(chaveAgrupamento, {
349
+ codigo,
350
+ codigos: [codigo],
351
+ nome: config.nome,
352
+ tipo: config.tipo,
353
+ bandeiras: config.bandeira ? [config.bandeira] : [],
354
+ parcelas,
355
+ valorAvista
356
+ });
357
+ }
358
+ });
359
+ return Array.from(metodosMap.values());
360
+ }
361
+ export function reverterProduto(storefront) {
362
+ console.log("reverterProduto storefront", storefront);
363
+ return {
364
+ dados: {
365
+ id: Number(storefront.id),
366
+ sellers: storefront.sellers?.map((seller) => ({
367
+ id: seller.id,
368
+ nome: seller.nome,
369
+ valor_de: seller.valorDe,
370
+ valor_por: seller.valorPor,
371
+ valor_crossdocking: seller.valorCrossdocking,
372
+ valor_ressuprimento: seller.valorRessuprimento,
373
+ estoque: seller.estoque,
374
+ estoque_crossdocking: seller.estoqueCrossdocking,
375
+ estoque_infinito: seller.estoqueInfinito,
376
+ prazo_crossdocking: seller.prazoCrossdocking,
377
+ prazo_ressuprimento: seller.prazoRessuprimento,
378
+ maximo_itens_por_compra: seller.maximoItensPorCompra,
379
+ minimo_itens_por_compra: seller.minimoItensPorCompra,
380
+ urlFrete: seller.urlFrete
381
+ })),
382
+ slug: storefront.slug,
383
+ seo: {
384
+ metaDescription: storefront.seo?.metaDescription,
385
+ metaTitlePagina: storefront.seo?.metaTitlePagina,
386
+ metaKeyword: storefront.seo?.metaKeyword,
387
+ metaCanonical: storefront.seo?.metaCanonical,
388
+ metaRedirect: storefront.seo?.metaRedirect,
389
+ slug: storefront.seo?.slug
390
+ },
391
+ detalhe: {
392
+ peso: storefront.peso,
393
+ largura: storefront.largura,
394
+ altura: storefront.altura,
395
+ comprimento: storefront.comprimento,
396
+ codigo: storefront.codigo,
397
+ status: storefront.status,
398
+ nome: storefront.nome,
399
+ descricao: storefront.descricao
400
+ },
401
+ disponibilidade: {
402
+ precos: [
403
+ {
404
+ de: storefront.preco?.de,
405
+ por: storefront.preco?.por,
406
+ avista: storefront.preco?.avista,
407
+ numeroParcelas: storefront.preco?.parcelamento?.maximoParcelas ?? 0,
408
+ valorParcela: storefront.preco?.parcelamento?.valorParcela ?? 0,
409
+ porcentagemDesconto: storefront.preco?.porcentagemDesconto
410
+ }
411
+ ],
412
+ quantidade: storefront.estoque
413
+ },
414
+ categorias: storefront.categorias?.map((cat) => ({
415
+ id: cat.id ?? 0,
416
+ nome: cat.nome ?? "",
417
+ slug: cat.slug ?? "",
418
+ imagem: cat.imagem ?? "",
419
+ path: cat.path ?? ""
420
+ })),
421
+ midia: {
422
+ imagens: storefront.imagens?.map((img, idx) => ({
423
+ id: idx,
424
+ real: img.url ?? ""
425
+ })) ?? [],
426
+ selos: storefront.selos?.map((selo) => ({
427
+ id: selo.id ?? 0,
428
+ nome: selo.nome ?? "",
429
+ imagem: selo.imagem ?? "",
430
+ link: selo.link ?? ""
431
+ })) ?? [],
432
+ videos: storefront.videos ?? ""
433
+ },
434
+ atributos: storefront.atributos
435
+ }
436
+ };
437
+ }
438
+ export function reverterProdutoCard(produto) {
439
+ return {
440
+ id: produto.id,
441
+ slug: produto.slug,
442
+ nome: produto.nome,
443
+ detalhe: {
444
+ nome: produto.nome,
445
+ descricao: produto.descricao,
446
+ status: produto.status
447
+ },
448
+ categorias: produto.categorias?.map((cat) => ({
449
+ id: cat.id,
450
+ nome: cat.nome,
451
+ slug: cat.slug,
452
+ imagem: cat.imagem,
453
+ path: cat.path
454
+ })),
455
+ disponibilidade: produto.preco ? {
456
+ precos: [
457
+ {
458
+ avista: produto.preco.avista,
459
+ de: produto.preco.de,
460
+ por: produto.preco.por,
461
+ numeroParcelas: produto.preco.parcelamento?.maximoParcelas,
462
+ valorParcela: produto.preco.parcelamento?.valorParcela,
463
+ porcentagemDesconto: produto.preco.porcentagemDesconto,
464
+ msgAvista: produto.preco.msgAvista
465
+ }
466
+ ],
467
+ quantidade: produto.estoque
468
+ } : { quantidade: produto.estoque },
469
+ midia: {
470
+ imagens: produto.imagens?.map((img, idx) => ({
471
+ id: idx,
472
+ real: img.url
473
+ })) ?? [],
474
+ selos: produto.selos?.map((selo) => ({
475
+ id: selo.id,
476
+ nome: selo.nome,
477
+ imagem: selo.imagem,
478
+ link: selo.link
479
+ }))
480
+ },
481
+ avaliacao: produto.avaliacao ? {
482
+ media: produto.avaliacao.media,
483
+ quantidade: produto.avaliacao.quantidade,
484
+ notaMaxima: produto.avaliacao.notaMaxima,
485
+ comentarios: produto.avaliacao.comentarios?.map((c) => ({
486
+ id: c.id,
487
+ titulo: c.titulo,
488
+ nome: c.nome,
489
+ nota: c.nota,
490
+ cidade: c.cidade,
491
+ email: c.email,
492
+ data: c.data,
493
+ descricao: c.descricao
494
+ }))
495
+ } : void 0
496
+ };
497
+ }
498
+ export function reverterProdutosDeCard(produtos) {
499
+ return produtos?.map((produto) => reverterProdutoCard(produto)) ?? [];
500
+ }
501
+ export function traduzirAviseme(response) {
502
+ return {
503
+ mensagem: response.message
504
+ };
505
+ }
506
+ export function reverterAviseme(response) {
507
+ return {
508
+ message: response.mensagem
509
+ };
510
+ }
@@ -0,0 +1,4 @@
1
+ import type { GodeepRedefinirSenhaResponse } from '../types/godeep.js';
2
+ import type { StorefrontRedefinirSenhaResponse } from '../types/storefront.js';
3
+ export declare function traduzirRedefinirSenha(dado: GodeepRedefinirSenhaResponse): StorefrontRedefinirSenhaResponse;
4
+ export declare function reverterRedefinirSenha(dado: StorefrontRedefinirSenhaResponse): GodeepRedefinirSenhaResponse;
@@ -0,0 +1,10 @@
1
+ export function traduzirRedefinirSenha(dado) {
2
+ return {
3
+ mensagem: dado.mensagens?.[0]
4
+ };
5
+ }
6
+ export function reverterRedefinirSenha(dado) {
7
+ return {
8
+ mensagens: [dado.mensagem ?? ""]
9
+ };
10
+ }
@@ -0,0 +1,3 @@
1
+ import type { GodeepRedeSocial, GodeepRedesSociaisResponse } from '../types/godeep.js';
2
+ import type { StorefrontRedeSocial } from '../types/storefront.js';
3
+ export declare function traduzirRedesSociais(dado: GodeepRedesSociaisResponse | GodeepRedeSocial[]): StorefrontRedeSocial[];
@@ -0,0 +1,40 @@
1
+ const mapeamentoIcones = {
2
+ linkedin: "Linkedin",
3
+ facebook: "Facebook",
4
+ instagram: "Instagram",
5
+ twitter: "Twitter",
6
+ x: "Twitter",
7
+ youtube: "Youtube",
8
+ tiktok: "MessageCircle",
9
+ whatsapp: "MessageCircle",
10
+ pinterest: "Pinterest",
11
+ blog: "FileText"
12
+ };
13
+ function capitalizarPrimeiraLetra(valor) {
14
+ if (!valor) return "";
15
+ return valor.charAt(0).toUpperCase() + valor.slice(1).toLowerCase();
16
+ }
17
+ function mapearIcone(icone, possuiImagem) {
18
+ if (possuiImagem) return void 0;
19
+ const iconeLower = icone?.toLowerCase() ?? "";
20
+ if (mapeamentoIcones[iconeLower]) return mapeamentoIcones[iconeLower];
21
+ return icone ? capitalizarPrimeiraLetra(icone) : void 0;
22
+ }
23
+ export function traduzirRedesSociais(dado) {
24
+ const lista = Array.isArray(dado) ? dado : dado?.dados;
25
+ if (!lista || !Array.isArray(lista)) return [];
26
+ return lista.filter((rede) => rede?.nome).map((rede) => {
27
+ const temImagem = !!rede.imagem;
28
+ return {
29
+ nome: rede.nome ?? "",
30
+ icone: mapearIcone(rede.icone, temImagem),
31
+ link: rede.link ?? "#",
32
+ imagem: rede.imagem ?? "",
33
+ temImagem
34
+ };
35
+ }).sort((a, b) => {
36
+ if (a.temImagem && !b.temImagem) return -1;
37
+ if (!a.temImagem && b.temImagem) return 1;
38
+ return 0;
39
+ });
40
+ }
@@ -0,0 +1,10 @@
1
+ import type { GodeepCadastroPF, GodeepCadastroPJ, GodeepClienteEndereco, GodeepEnderecosApiResponse, GodeepLoginResponse, GodeepUsuario } from '../types/godeep.js';
2
+ import type { StorefrontCadastroPF, StorefrontCadastroPJ, StorefrontEndereco, StorefrontUsuario, CadastroCompleto } from '../types/storefront.js';
3
+ export declare function traduzirUsuario(dado: GodeepUsuario): StorefrontUsuario;
4
+ export declare function traduzirLoginResponse(dado: GodeepLoginResponse): StorefrontUsuario | null;
5
+ export declare function reverterUsuario(storefront: StorefrontUsuario): GodeepUsuario;
6
+ export declare function reverterLoginResponse(storefront: StorefrontUsuario | null): GodeepLoginResponse;
7
+ export declare function reverterCadastroPF(cadastro: StorefrontCadastroPF | CadastroCompleto): GodeepCadastroPF;
8
+ export declare function reverterCadastroPJ(cadastro: StorefrontCadastroPJ | CadastroCompleto): GodeepCadastroPJ;
9
+ export declare function traduzirEnderecosCliente(resposta: GodeepEnderecosApiResponse): StorefrontEndereco[];
10
+ export declare function traduzirEnderecoCliente(resposta: GodeepClienteEndereco): StorefrontEndereco;