Bem-vindo à parte técnica do nosso minicurso! Aqui, vamos mergulhar no código que faz a mágica acontecer.
Vamos focar em duas partes essenciais:
Program.cs: O cérebro da nossa aplicação, que configura e inicia tudo.Antes de guardar qualquer informação, precisamos de uma "planta" ou um "molde" que defina sua estrutura. No nosso projeto, esses moldes são as classes na pasta back/models.
Comida.csEsta é a classe mais fundamental. Ela representa um único item de alimento e define quais informações cada alimento deve ter:
// back/models/Comida.cs
public class Comida
{
public int Id { get; set; } // Identificador
public string Nome { get; set; } = string.Empty; // Nome do alimento, ex: "Maçã"
public string CaminhoImagem { get; set; } = string.Empty; // Onde a foto do alimento é salva
public int Calorias { get; set; } = 0; // Informações nutricionais
public decimal Proteinas { get; set; } = 0;
public decimal GordurasTotais { get; set; } = 0;
// ... e outros nutrientes
}
Pense nesta classe como a "ficha" de um alimento no nosso sistema.
Refeicao.csUma refeição é, essencialmente, um agrupamento de comidas. Esta classe representa isso, contendo seus próprios dados (como nome e descrição) e, o mais importante, uma lista de objetos Comida.
// back/models/Refeicao.cs
public class Refeicao
{
public int Id { get; set; }
public string Nome { get; set; } = string.Empty; // Ex: "Café da Manhã"
public string Descricao { get; set; } = string.Empty;
// A propriedade mais importante: uma lista de comidas!
public List<Comida> Alimentos { get; set; } = new List<Comida>();
public DateTime DataDeCriacao { get; set; }
}
É assim que conectamos os alimentos a uma refeição específica.
RefeicaoDtos.cs - O Tradutor para o FrontendÀs vezes, a forma como guardamos os dados no backend não é a melhor forma de enviá-los para o frontend (o site). É aí que entram os DTOs (Data Transfer Objects).
Note que a classe Comida guarda o CaminhoImagem (ex: imagens_salvas/foto.jpg). O navegador não entende isso. Ele precisa de uma URL completa (ex: http://localhost:5204/imagens_salvas/foto.jpg).
O ComidaDto faz essa "tradução", transformando o caminho em uma UrlImagem completa: