Inicio » Cursos » App restaurant con pedidos en Flutter

Curso App restaurant con pedidos en Flutter

Capitulo 4 ➜ Modelos: Menu, Item y Cart

Lección 4: Modelos: Menu, Item y Cart

En esta lección, aprenderás a definir y estructurar los modelos Menu, Item y Cart por separado en la aplicación de restaurante con Flutter. Estos modelos representan los menús del restaurante, los productos individuales y el carrito de compras.

En esta lección, aprenderás a definir y estructurar los modelos Menu, Item y Cart por separado en la aplicación de restaurante con Flutter. Estos modelos representan los menús del restaurante, los productos individuales y el carrito de compras. Cada uno tendrá su propia clase, facilitando la organización del código y permitiendo una gestión eficiente de los datos dentro de la aplicación. Además, verás cómo implementar la lógica básica para agregar, eliminar y calcular el total de items en el carrito.

1. Modelo Menu

El modelo Menu representa un conjunto de items o productos que están disponibles en el restaurante. Cada menú puede contener múltiples items, y está diseñado para agrupar categorías de productos (como bebidas, comidas, postres, etc.).

Código del Modelo Menu
dart

class Menu {
  final int id;
  final String name;
  final List<Item> items;

  Menu({
    required this.id,
    required this.name,
    required this.items,
  });

  factory Menu.fromJson(Map<String, dynamic> json) {
    return Menu(
      id: json['id'],
      name: json['name'],
      items: (json['items'] as List).map((item) => Item.fromJson(item)).toList(),
    );
  }
}
  • id: Identificador único para el menú.
  • name: El nombre del menú.
  • items: Lista de items asociados a este menú, representada por objetos del modelo Item.

2. Modelo Item

El modelo Item representa cada producto individual dentro de un menú. Cada item tiene un nombre, una descripción, un precio, y puede tener una imagen asociada.

Código del Modelo Item
dart

class Item {
  final int id;
  final String name;
  final String description;
  final double price;
  final String imageUrl;

  Item({
    required this.id,
    required this.name,
    required this.description,
    required this.price,
    required this.imageUrl,
  });

  factory Item.fromJson(Map<String, dynamic> json) {
    return Item(
      id: json['id'],
      name: json['name'],
      description: json['description'],
      price: json['price'],
      imageUrl: json['imageUrl'],
    );
  }
}
  • id: Identificador único para cada item.
  • name: Nombre del item.
  • description: Descripción breve del item.
  • price: Precio del item.
  • imageUrl: URL de la imagen asociada al item.

3. Modelo Cart

El modelo Cart se encarga de gestionar el carrito de compras, donde se almacenan los items seleccionados por el usuario. Contiene la lógica para agregar y remover items, así como para calcular el total del carrito.

Código del Modelo Cart
class Cart {
  final int id;
  final String name;
  final double price;
  final String image;
  final int qty;

  Cart({
    required this.id,
    required this.name,
    required this.price,
    required this.image,
    required this.qty,
  });

  // Calcular el subtotal para un item
  double get subtotal => price * qty;
}

 

Descripción de los Atributos:

  • id: Identificador único para cada item en el carrito.
  • name: Nombre del item que se está agregando al carrito.
  • price: Precio del item.
  • image: URL o ruta de la imagen del item.
  • qty: Cantidad del item en el carrito.

Método:

  • subtotal: Calcula el costo total para el item, multiplicando el precio por la cantidad (qty).

2202 visitas

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Comprar

Más cursos que pueden interesarte

Más cursos

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024