producto_model.dart 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import '/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. int? activo;
  19. List<Media>? media;
  20. int? idWeb;
  21. String? sincronizado;
  22. DateTime? creado;
  23. DateTime? modificado;
  24. Producto({
  25. super.id,
  26. this.idCategoria,
  27. this.nombre,
  28. this.descripcion,
  29. this.imagen,
  30. this.venta,
  31. this.existencia,
  32. this.precio,
  33. this.verMenu,
  34. this.codigo,
  35. this.descuento,
  36. this.toping,
  37. this.topings,
  38. this.activo,
  39. this.media,
  40. this.idWeb,
  41. this.sincronizado,
  42. this.creado,
  43. this.modificado,
  44. });
  45. @override
  46. Map<String, dynamic> toJson() {
  47. // print("Convirtiendo Producto a JSON");
  48. // print("ID: $id, Categoria: $idCategoria, Nombre: $nombre");
  49. // print("Descripcion: $descripcion, imagen: $imagen, venta: $venta");
  50. // print("existencia: $existencia, precio: $precio, verMenu: $verMenu");
  51. // print("codigo: $codigo, descuento: $descuento, creado: $creado");
  52. // print("eliminado: $eliminado, modificado: $modificado");
  53. Map<String, dynamic> data = {
  54. 'id': id,
  55. 'idCategoria': idCategoria ?? 0,
  56. 'nombre': nombre ?? '',
  57. 'descripcion': descripcion ?? '',
  58. 'imagen': imagen ?? '',
  59. 'venta': venta ?? 0,
  60. 'existencia': existencia ?? 0,
  61. 'precio': precio ?? 0.0,
  62. 'verMenu': verMenu ?? 0,
  63. 'codigo': codigo ?? '',
  64. 'descuento': descuento ?? '',
  65. 'toping': toping ?? 0,
  66. 'activo': activo ?? 0,
  67. 'creado': creado?.toIso8601String(),
  68. 'modificado': modificado?.toIso8601String(),
  69. 'eliminado': eliminado?.toIso8601String(),
  70. 'sincronizado': sincronizado,
  71. 'idWeb': idWeb,
  72. };
  73. return data..addAll(super.toJson());
  74. }
  75. Map<String, dynamic> toMap() {
  76. return {
  77. 'id': id,
  78. 'idCategoria': idCategoria,
  79. 'nombre': nombre,
  80. 'descripcion': descripcion,
  81. 'imagen': imagen,
  82. 'venta': venta,
  83. 'existencia': existencia,
  84. 'precio': precio,
  85. 'verMenu': verMenu,
  86. 'codigo': codigo,
  87. 'descuento': descuento,
  88. 'toping': toping,
  89. 'activo': activo,
  90. 'creado': creado != null ? creado!.toIso8601String() : null,
  91. 'modificado': modificado != null ? modificado!.toIso8601String() : null,
  92. 'eliminado': eliminado != null ? eliminado!.toIso8601String() : null,
  93. };
  94. }
  95. Producto.fromJson(Map<String, dynamic> json) {
  96. super.parseJson(json);
  97. idCategoria = Basico.parseInt(json['idCategoria']);
  98. // categoria = json["categoria"] != null
  99. // ? CategoriaProducto.fromJson(json["categoria"])
  100. // : null;
  101. nombre = Basico.parseString(json['nombre']);
  102. descripcion = Basico.parseString(json['descripcion']);
  103. imagen = Basico.parseString(json['imagen']);
  104. venta = Basico.parseInt(json['venta']);
  105. existencia = Basico.parseInt(json['existencia']);
  106. precio = Basico.parseDouble(json['precio']);
  107. verMenu = Basico.parseInt(json['verMenu']);
  108. codigo = Basico.parseString(json['codigo']);
  109. descuento = Basico.parseString(json['descuento']);
  110. activo = Basico.parseInt(json['activo']);
  111. idWeb = Basico.parseInt(json['idWeb']);
  112. sincronizado = Basico.parseString(json['sincronizado']);
  113. creado = Basico.parseDate(json['creado']);
  114. modificado = Basico.parseDate(json['modificado']);
  115. if (json['toping'] is bool) {
  116. toping = json['toping'] ? 1 : 0;
  117. } else {
  118. toping = Basico.parseInt(json['toping']);
  119. }
  120. if (json['toppings'] != null) {
  121. topings = (json['toppings'] as List)
  122. .map((id) => Producto(id: id as int))
  123. .toList();
  124. }
  125. }
  126. Producto.fromApi(Map<String, dynamic> json) {
  127. super.parseJson(json);
  128. idCategoria = Basico.parseInt(json['idCategoria']);
  129. nombre = Basico.parseString(json['nombre']);
  130. descripcion = Basico.parseString(json['descripcion']);
  131. imagen = Basico.parseString(json['imagen']);
  132. venta = Basico.parseInt(json['venta']);
  133. existencia = Basico.parseInt(json['existencia']);
  134. precio = Basico.parseDouble(json['precio']);
  135. verMenu = Basico.parseInt(json['verEnMenu']);
  136. codigo = Basico.parseString(json['codigo']);
  137. descuento = Basico.parseString(json['descuento']);
  138. activo = Basico.parseInt(json['activo']);
  139. creado = Basico.parseDate(json['creado']);
  140. modificado = Basico.parseDate(json['modificado']);
  141. eliminado = Basico.parseDate(json['eliminado']);
  142. idWeb = Basico.parseInt(json['idWeb']);
  143. sincronizado = Basico.parseString(json['sincronizado']);
  144. if (json['media'] != null) {
  145. media = (json['media'] as List).map((i) => Media.fromJson(i)).toList();
  146. }
  147. }
  148. Future<void> guardar() async {
  149. idLocal = await RepoService().guardar(this);
  150. }
  151. }