import 'package:yoshi_papas_app/models/models.dart'; import '../services/services.dart'; import 'basico_model.dart'; class Producto extends Basico { int? idCategoria; CategoriaProducto? categoria; String? nombre; String? descripcion; String? imagen; int? venta; int? existencia; double? precio; int? verMenu; String? codigo; String? descuento; int? toping; List? topings; Producto({ super.id, this.idCategoria, this.nombre, this.descripcion, this.imagen, this.venta, this.existencia, this.precio, this.verMenu, this.codigo, this.descuento, this.toping, this.topings, }); @override Map toJson() { print("Convirtiendo Producto a JSON"); print("ID: $id, Categoria: $idCategoria, Nombre: $nombre"); print("Descripcion: $descripcion, imagen: $imagen, venta: $venta"); print("existencia: $existencia, precio: $precio, verMenu: $verMenu"); print("codigo: $codigo, descuento: $descuento, creado: $creado"); print("eliminado: $eliminado, modificado: $modificado"); return { 'id': id, 'idCategoria': idCategoria ?? 0, 'nombre': nombre ?? '', 'descripcion': descripcion ?? '', 'imagen': imagen ?? '', 'venta': venta ?? 0, 'existencia': existencia ?? 0, 'precio': precio ?? 0.0, 'verMenu': verMenu ?? 0, 'codigo': codigo ?? '', 'descuento': descuento ?? '', 'toping': toping ?? 0, 'creado': creado != null ? creado!.toIso8601String() : null, 'modificado': modificado != null ? modificado!.toIso8601String() : null, 'eliminado': eliminado != null ? eliminado!.toIso8601String() : null, }..addAll(super.toJson()); } Map toMap() { return { 'id': id, 'idCategoria': idCategoria, 'nombre': nombre, 'descripcion': descripcion, 'imagen': imagen, 'venta': venta, 'existencia': existencia, 'precio': precio, 'verMenu': verMenu, 'codigo': codigo, 'descuento': descuento, 'toping': toping, 'creado': creado != null ? creado!.toIso8601String() : null, 'modificado': modificado != null ? modificado!.toIso8601String() : null, 'eliminado': eliminado != null ? eliminado!.toIso8601String() : null, }; } Producto.fromJson(Map json) { super.parseJson(json); idCategoria = Basico.parseInt(json['idCategoria']); // categoria = json["categoria"] != null // ? CategoriaProducto.fromJson(json["categoria"]) // : null; nombre = Basico.parseString(json['nombre']); descripcion = Basico.parseString(json['descripcion']); imagen = Basico.parseString(json['imagen']); venta = Basico.parseInt(json['venta']); existencia = Basico.parseInt(json['existencia']); precio = Basico.parseDouble(json['precio']); verMenu = Basico.parseInt(json['verMenu']); codigo = Basico.parseString(json['codigo']); descuento = Basico.parseString(json['descuento']); if (json['toping'] is bool) { toping = json['toping'] ? 1 : 0; } else { toping = Basico.parseInt(json['toping']); } if (json['toppings'] != null) { topings = (json['toppings'] as List) .map((id) => Producto(id: id as int)) .toList(); } } Producto.fromApi(Map json) { super.parseJson(json); idCategoria = Basico.parseInt(json['idCategoria']); nombre = Basico.parseString(json['nombre']); descripcion = Basico.parseString(json['descripcion']); imagen = Basico.parseString(json['imagen']); venta = Basico.parseInt(json['venta']); existencia = Basico.parseInt(json['existencia']); precio = Basico.parseDouble(json['precio']); verMenu = Basico.parseInt(json['verEnMenu']); codigo = Basico.parseString(json['codigo']); descuento = Basico.parseString(json['descuento']); creado = Basico.parseDate(json['creado']); modificado = Basico.parseDate(json['modificado']); eliminado = Basico.parseDate(json['eliminado']); } Future guardar() async { idLocal = await RepoService().guardar(this); } }