producto_model.dart 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. import 'package:yoshi_papas_app/models/models.dart';
  2. import '../services/services.dart';
  3. import 'basico_model.dart';
  4. class Producto extends Basico {
  5. int? idCategoria;
  6. CategoriaProducto? categoria;
  7. String? nombre;
  8. String? descripcion;
  9. String? imagen;
  10. int? venta;
  11. int? existencia;
  12. double? precio;
  13. int? verMenu;
  14. String? codigo;
  15. String? descuento;
  16. int? toping;
  17. List<Producto>? topings;
  18. Producto({
  19. super.id,
  20. this.idCategoria,
  21. this.nombre,
  22. this.descripcion,
  23. this.imagen,
  24. this.venta,
  25. this.existencia,
  26. this.precio,
  27. this.verMenu,
  28. this.codigo,
  29. this.descuento,
  30. this.toping,
  31. this.topings,
  32. });
  33. @override
  34. Map<String, dynamic> toJson() {
  35. print("Convirtiendo Producto a JSON");
  36. print("ID: $id, Categoria: $idCategoria, Nombre: $nombre");
  37. print("Descripcion: $descripcion, imagen: $imagen, venta: $venta");
  38. print("existencia: $existencia, precio: $precio, verMenu: $verMenu");
  39. print("codigo: $codigo, descuento: $descuento, creado: $creado");
  40. print("eliminado: $eliminado, modificado: $modificado");
  41. return {
  42. 'id': id,
  43. 'idCategoria': idCategoria ?? 0,
  44. 'nombre': nombre ?? '',
  45. 'descripcion': descripcion ?? '',
  46. 'imagen': imagen ?? '',
  47. 'venta': venta ?? 0,
  48. 'existencia': existencia ?? 0,
  49. 'precio': precio ?? 0.0,
  50. 'verMenu': verMenu ?? 0,
  51. 'codigo': codigo ?? '',
  52. 'descuento': descuento ?? '',
  53. 'toping': toping ?? 0,
  54. 'creado': creado != null ? creado!.toIso8601String() : null,
  55. 'modificado': modificado != null ? modificado!.toIso8601String() : null,
  56. 'eliminado': eliminado != null ? eliminado!.toIso8601String() : null,
  57. }..addAll(super.toJson());
  58. }
  59. Map<String, dynamic> toMap() {
  60. return {
  61. 'id': id,
  62. 'idCategoria': idCategoria,
  63. 'nombre': nombre,
  64. 'descripcion': descripcion,
  65. 'imagen': imagen,
  66. 'venta': venta,
  67. 'existencia': existencia,
  68. 'precio': precio,
  69. 'verMenu': verMenu,
  70. 'codigo': codigo,
  71. 'descuento': descuento,
  72. 'toping': toping,
  73. 'creado': creado != null ? creado!.toIso8601String() : null,
  74. 'modificado': modificado != null ? modificado!.toIso8601String() : null,
  75. 'eliminado': eliminado != null ? eliminado!.toIso8601String() : null,
  76. };
  77. }
  78. Producto.fromJson(Map<String, dynamic> json) {
  79. super.parseJson(json);
  80. idCategoria = Basico.parseInt(json['idCategoria']);
  81. // categoria = json["categoria"] != null
  82. // ? CategoriaProducto.fromJson(json["categoria"])
  83. // : null;
  84. nombre = Basico.parseString(json['nombre']);
  85. descripcion = Basico.parseString(json['descripcion']);
  86. imagen = Basico.parseString(json['imagen']);
  87. venta = Basico.parseInt(json['venta']);
  88. existencia = Basico.parseInt(json['existencia']);
  89. precio = Basico.parseDouble(json['precio']);
  90. verMenu = Basico.parseInt(json['verMenu']);
  91. codigo = Basico.parseString(json['codigo']);
  92. descuento = Basico.parseString(json['descuento']);
  93. if (json['toping'] is bool) {
  94. toping = json['toping'] ? 1 : 0;
  95. } else {
  96. toping = Basico.parseInt(json['toping']);
  97. }
  98. if (json['toppings'] != null) {
  99. topings = (json['toppings'] as List)
  100. .map((id) => Producto(id: id as int))
  101. .toList();
  102. }
  103. }
  104. Producto.fromApi(Map<String, dynamic> json) {
  105. super.parseJson(json);
  106. idCategoria = Basico.parseInt(json['idCategoria']);
  107. nombre = Basico.parseString(json['nombre']);
  108. descripcion = Basico.parseString(json['descripcion']);
  109. imagen = Basico.parseString(json['imagen']);
  110. venta = Basico.parseInt(json['venta']);
  111. existencia = Basico.parseInt(json['existencia']);
  112. precio = Basico.parseDouble(json['precio']);
  113. verMenu = Basico.parseInt(json['verEnMenu']);
  114. codigo = Basico.parseString(json['codigo']);
  115. descuento = Basico.parseString(json['descuento']);
  116. creado = Basico.parseDate(json['creado']);
  117. modificado = Basico.parseDate(json['modificado']);
  118. eliminado = Basico.parseDate(json['eliminado']);
  119. }
  120. Future<void> guardar() async {
  121. idLocal = await RepoService().guardar(this);
  122. }
  123. }