diff --git a/OpenAdm.Application/Models/Pesos/PesoViewModel.cs b/OpenAdm.Application/Models/Pesos/PesoViewModel.cs index b1f7ec4..03ba993 100644 --- a/OpenAdm.Application/Models/Pesos/PesoViewModel.cs +++ b/OpenAdm.Application/Models/Pesos/PesoViewModel.cs @@ -1,11 +1,12 @@ using Domain.Pkg.Entities; +using OpenAdm.Application.Models.Produtos; namespace OpenAdm.Application.Models.Pesos; public class PesoViewModel : BaseModel { public string Descricao { get; set; } = string.Empty; - + public PrecoProdutoViewModel? PrecoProdutoView { get; set; } public PesoViewModel ToModel(Peso entity) { Id = entity.Id; diff --git a/OpenAdm.Application/Models/Produtos/PrecoProdutoViewModel.cs b/OpenAdm.Application/Models/Produtos/PrecoProdutoViewModel.cs new file mode 100644 index 0000000..09aab08 --- /dev/null +++ b/OpenAdm.Application/Models/Produtos/PrecoProdutoViewModel.cs @@ -0,0 +1,10 @@ +namespace OpenAdm.Application.Models.Produtos; + +public class PrecoProdutoViewModel +{ + public Guid ProdutoId { get; set; } + public Guid? PesoId { get; set; } + public Guid? TamanhoId { get; set; } + public decimal? ValorUnitarioAtacado { get; set; } + public decimal? ValorUnitarioVarejo { get; set; } +} diff --git a/OpenAdm.Application/Models/Tamanhos/TamanhoViewModel.cs b/OpenAdm.Application/Models/Tamanhos/TamanhoViewModel.cs index 0afe423..a9e2278 100644 --- a/OpenAdm.Application/Models/Tamanhos/TamanhoViewModel.cs +++ b/OpenAdm.Application/Models/Tamanhos/TamanhoViewModel.cs @@ -1,10 +1,12 @@ using Domain.Pkg.Entities; +using OpenAdm.Application.Models.Produtos; namespace OpenAdm.Application.Models.Tamanhos; public class TamanhoViewModel : BaseModel { public string Descricao { get; set; } = string.Empty; + public PrecoProdutoViewModel? PrecoProdutoView { get; set; } public TamanhoViewModel ToModel(Tamanho entity) { Id = entity.Id; diff --git a/OpenAdm.Application/Services/ProdutoService.cs b/OpenAdm.Application/Services/ProdutoService.cs index 0e52dd2..22ff70f 100644 --- a/OpenAdm.Application/Services/ProdutoService.cs +++ b/OpenAdm.Application/Services/ProdutoService.cs @@ -101,11 +101,64 @@ public async Task> GetPaginacaoAsync(Pagina public async Task> GetProdutosAsync(PaginacaoProdutoEcommerceDto paginacaoProdutoEcommerceDto) { var paginacao = await _produtoRepository.GetProdutosAsync(paginacaoProdutoEcommerceDto); + var itensTabelaDePreco = await _itemTabelaDePrecoRepository + .GetItensTabelaDePrecoByIdProdutosAsync(paginacao.Values.Select(x => x.Id).ToList()); + + var produtosViewModel = new List(); + + foreach (var produto in paginacao.Values) + { + var produtoViewModel = new ProdutoViewModel().ToModel(produto); + + if(produtoViewModel.Tamanhos != null) + { + foreach (var tamanho in produtoViewModel.Tamanhos) + { + var preco = itensTabelaDePreco.FirstOrDefault( + x => x.ProdutoId == produto.Id && x.TamanhoId == tamanho.Id); + + if(preco != null) + { + tamanho.PrecoProdutoView = new PrecoProdutoViewModel() + { + ProdutoId = produto.Id, + TamanhoId = tamanho.Id, + ValorUnitarioAtacado = preco.ValorUnitarioAtacado, + ValorUnitarioVarejo = preco.ValorUnitarioVarejo + }; + } + } + } + + if(produtoViewModel.Pesos != null) + { + foreach (var peso in produtoViewModel.Pesos) + { + var preco = itensTabelaDePreco.FirstOrDefault( + x => x.ProdutoId == produto.Id && x.PesoId == peso.Id); + + if (preco != null) + { + peso.PrecoProdutoView = new PrecoProdutoViewModel() + { + ProdutoId = produto.Id, + PesoId = peso.Id, + ValorUnitarioAtacado = preco.ValorUnitarioAtacado, + ValorUnitarioVarejo = preco.ValorUnitarioVarejo + }; + } + } + } + + + + produtosViewModel.Add(produtoViewModel); + } return new PaginacaoViewModel() { TotalPage = paginacao.TotalPage, - Values = paginacao.Values.Select(x => new ProdutoViewModel().ToModel(x)).ToList() + Values = produtosViewModel }; } diff --git a/OpenAdm.Infra/Azure/Storage/UploadImageBlobClient.cs b/OpenAdm.Infra/Azure/Storage/UploadImageBlobClient.cs index d153d1f..e8cf483 100644 --- a/OpenAdm.Infra/Azure/Storage/UploadImageBlobClient.cs +++ b/OpenAdm.Infra/Azure/Storage/UploadImageBlobClient.cs @@ -53,8 +53,8 @@ internal static byte[] ComprimirImagem(string base64) using var image = Image.Load(inStream); - int maxWidth = 700; - int maxHeight = 250; + int maxWidth = 1200; + int maxHeight = 1200; if (image.Width > maxWidth || image.Height > maxHeight) { if (image.Width > maxWidth && image.Height > maxHeight)