diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Api/Controllers/ClientesController.cs b/src/FIAP.TechChallenge.ByteMeBurger.Api/Controllers/ClientesController.cs new file mode 100644 index 0000000..81d886c --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Api/Controllers/ClientesController.cs @@ -0,0 +1,29 @@ +using FIAP.TechChallenge.ByteMeBurger.Application.UseCases; +using FIAP.TechChallenge.ByteMeBurger.Domain.Entities; +using Microsoft.AspNetCore.Mvc; + +namespace FIAP.TechChallenge.ByteMeBurger.Api.Controllers +{ + public class ClientesController : ControllerBase + { + private readonly IClienteUseCase _clienteUseCase; + + public ClientesController(IClienteUseCase clienteUseCase) + { + _clienteUseCase = clienteUseCase; + } + + [HttpGet] + public IActionResult Get(string cpf) + { + return Ok(_clienteUseCase.GetByCpf(cpf)); + } + + + [HttpPost] + public IActionResult Post([FromBody] Cliente cliente) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Api/FIAP.TechChallenge.ByteMeBurger.Api.csproj b/src/FIAP.TechChallenge.ByteMeBurger.Api/FIAP.TechChallenge.ByteMeBurger.Api.csproj index 078f43d..a0ad149 100644 --- a/src/FIAP.TechChallenge.ByteMeBurger.Api/FIAP.TechChallenge.ByteMeBurger.Api.csproj +++ b/src/FIAP.TechChallenge.ByteMeBurger.Api/FIAP.TechChallenge.ByteMeBurger.Api.csproj @@ -8,9 +8,9 @@ - + - + @@ -19,4 +19,9 @@ + + + + + diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Api/Program.cs b/src/FIAP.TechChallenge.ByteMeBurger.Api/Program.cs index d7d2ac0..dcf0092 100644 --- a/src/FIAP.TechChallenge.ByteMeBurger.Api/Program.cs +++ b/src/FIAP.TechChallenge.ByteMeBurger.Api/Program.cs @@ -1,3 +1,6 @@ +using FIAP.TechChallenge.ByteMeBurger.Application.UseCases; +using FIAP.TechChallenge.ByteMeBurger.Domain.Repositories; + namespace FIAP.TechChallenge.ByteMeBurger.Api; public class Program @@ -14,6 +17,12 @@ public static void Main(string[] args) builder.Services.AddSwaggerGen(); builder.Services.AddControllers(); + #region Injeção de dependências + + //builder.Services.AddTransient(); + builder.Services.AddTransient(); + #endregion + var app = builder.Build(); // Configure the HTTP request pipeline. diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Application/FIAP.TechChallenge.ByteMeBurger.Application.csproj b/src/FIAP.TechChallenge.ByteMeBurger.Application/FIAP.TechChallenge.ByteMeBurger.Application.csproj index 923c640..32364e0 100644 --- a/src/FIAP.TechChallenge.ByteMeBurger.Application/FIAP.TechChallenge.ByteMeBurger.Application.csproj +++ b/src/FIAP.TechChallenge.ByteMeBurger.Application/FIAP.TechChallenge.ByteMeBurger.Application.csproj @@ -8,8 +8,14 @@ + + + + + + diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Application/UseCases/ClienteUseCase.cs b/src/FIAP.TechChallenge.ByteMeBurger.Application/UseCases/ClienteUseCase.cs new file mode 100644 index 0000000..6ff64d3 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Application/UseCases/ClienteUseCase.cs @@ -0,0 +1,17 @@ +using FIAP.TechChallenge.ByteMeBurger.Domain.Entities; + +namespace FIAP.TechChallenge.ByteMeBurger.Application.UseCases +{ + public class ClienteUseCase : IClienteUseCase + { + public void AddCliente(Cliente cliente) + { + throw new NotImplementedException(); + } + + public Cliente GetByCpf(string cpf) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Application/UseCases/IClienteUseCase.cs b/src/FIAP.TechChallenge.ByteMeBurger.Application/UseCases/IClienteUseCase.cs new file mode 100644 index 0000000..6192661 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Application/UseCases/IClienteUseCase.cs @@ -0,0 +1,11 @@ +using FIAP.TechChallenge.ByteMeBurger.Domain.Entities; + +namespace FIAP.TechChallenge.ByteMeBurger.Application.UseCases +{ + public interface IClienteUseCase + { + Cliente GetByCpf(string cpf); + void AddCliente(Cliente cliente); + + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Cliente.cs b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Cliente.cs new file mode 100644 index 0000000..bdf1204 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Cliente.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FIAP.TechChallenge.ByteMeBurger.Domain.Entities +{ + public class Cliente + { + public int Id { get; set; } + public string Nome { get; set; } + public string Email { get; set; } + public string Cpf { get; set; } + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/ItemPedido.cs b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/ItemPedido.cs new file mode 100644 index 0000000..98a2d70 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/ItemPedido.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FIAP.TechChallenge.ByteMeBurger.Domain.Entities +{ + public class ItemPedido + { + public int Id { get; set; } + public Produto Produto { get; set; } + public int Quantidade { get; set; } + public double Subtotal { get; set; } + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Pedido.cs b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Pedido.cs new file mode 100644 index 0000000..0fa9a89 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Pedido.cs @@ -0,0 +1,22 @@ +using FIAP.TechChallenge.ByteMeBurger.Domain.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FIAP.TechChallenge.ByteMeBurger.Domain.Entities +{ + public class Pedido + { + public int Id { get; set; } + public string Codigo { get; set; } + public string Status { get; set; } + public Cliente Cliente { get; set; } + public double PrecoTotal { get; set; } + public double ValorPago { get; set; } + public DateTime DataPagamento { get; set; } + public FormaPagamento FormaPagamento { get; set; } + public List Produtos { get; set; } + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Produto.cs b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Produto.cs new file mode 100644 index 0000000..68fb184 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Entities/Produto.cs @@ -0,0 +1,20 @@ +using FIAP.TechChallenge.ByteMeBurger.Domain.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FIAP.TechChallenge.ByteMeBurger.Domain.Entities +{ + public class Produto + { + public int Id { get; set; } + public string Codigo { get; set; } + public string Nome { get; set; } + public CategoriaProduto Categoria { get; set; } + public double Preco { get; set; } + public string Descricao { get; set; } + public List Imagens { get; set; } // Lista de URLs das imagens + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/Enums/CategoriaProduto.cs b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Enums/CategoriaProduto.cs new file mode 100644 index 0000000..835f527 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Enums/CategoriaProduto.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FIAP.TechChallenge.ByteMeBurger.Domain.Enums +{ + public enum CategoriaProduto + { + Lanche, + Acompanamento, + Bebida, + Sobremesa + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/Enums/FormaPagamento.cs b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Enums/FormaPagamento.cs new file mode 100644 index 0000000..3f5442b --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Enums/FormaPagamento.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FIAP.TechChallenge.ByteMeBurger.Domain.Enums +{ + public enum FormaPagamento + { + MercadoPago + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/FIAP.TechChallenge.ByteMeBurger.Domain.csproj b/src/FIAP.TechChallenge.ByteMeBurger.Domain/FIAP.TechChallenge.ByteMeBurger.Domain.csproj index 0911f6a..434ded3 100644 --- a/src/FIAP.TechChallenge.ByteMeBurger.Domain/FIAP.TechChallenge.ByteMeBurger.Domain.csproj +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/FIAP.TechChallenge.ByteMeBurger.Domain.csproj @@ -9,7 +9,8 @@ - + + diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Domain/Repositories/IClienteRepository.cs b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Repositories/IClienteRepository.cs new file mode 100644 index 0000000..249dca3 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Domain/Repositories/IClienteRepository.cs @@ -0,0 +1,10 @@ +using FIAP.TechChallenge.ByteMeBurger.Domain.Entities; + +namespace FIAP.TechChallenge.ByteMeBurger.Domain.Repositories +{ + public interface IClienteRepository + { + Task GetByCpf(string cpf); + + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/FIAP.TechChallenge.ByteMeBurger.Infrastructure.csproj b/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/FIAP.TechChallenge.ByteMeBurger.Infrastructure.csproj index 595335a..065c453 100644 --- a/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/FIAP.TechChallenge.ByteMeBurger.Infrastructure.csproj +++ b/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/FIAP.TechChallenge.ByteMeBurger.Infrastructure.csproj @@ -6,4 +6,8 @@ enable + + + + diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/Repositories/ByteMeBurgerDbContext.cs b/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/Repositories/ByteMeBurgerDbContext.cs new file mode 100644 index 0000000..7cf77b1 --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/Repositories/ByteMeBurgerDbContext.cs @@ -0,0 +1,15 @@ +using FIAP.TechChallenge.ByteMeBurger.Domain.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.Identity.Client; + +namespace FIAP.TechChallenge.ByteMeBurger.Infrastructure.Repositories +{ + public class ByteMeBurgerDbContext: DbContext + { + public ByteMeBurgerDbContext(DbContextOptions options) : base(options) + { + + } + public DbSet Clientes { get; set; } + } +} diff --git a/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/Repositories/ClienteRepository.cs b/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/Repositories/ClienteRepository.cs new file mode 100644 index 0000000..b4d63ba --- /dev/null +++ b/src/FIAP.TechChallenge.ByteMeBurger.Infrastructure/Repositories/ClienteRepository.cs @@ -0,0 +1,17 @@ +using FIAP.TechChallenge.ByteMeBurger.Domain.Entities; +using FIAP.TechChallenge.ByteMeBurger.Domain.Repositories; + +namespace FIAP.TechChallenge.ByteMeBurger.Infrastructure.Repositories +{ + public class ClienteRepository : IClienteRepository + { + private readonly ByteMeBurgerDbContext _context; + public ClienteRepository(ByteMeBurgerDbContext context) { + _context = context; + } + public Task GetByCpf(string cpf) + { + throw new NotImplementedException(); + } + } +}