aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-05-20 17:02:26 -0600
committerIván Ávalos <avalos@disroot.org>2023-05-20 17:02:26 -0600
commita932c7491ca1f00ec9219e84f03a7fc98040b07a (patch)
treec00af19dc6cbba901edb9cd22ccbbaa8e160b0a8
parentcd8f22959e62c0b7b191e64f4ecfec53cba9f364 (diff)
downloadlinkchat-a932c7491ca1f00ec9219e84f03a7fc98040b07a.tar.gz
linkchat-a932c7491ca1f00ec9219e84f03a7fc98040b07a.tar.bz2
linkchat-a932c7491ca1f00ec9219e84f03a7fc98040b07a.zip
Se añaden modelos
-rw-r--r--lib/models/chat.dart26
-rw-r--r--lib/models/favorito.dart16
-rw-r--r--lib/models/mensaje.dart30
3 files changed, 72 insertions, 0 deletions
diff --git a/lib/models/chat.dart b/lib/models/chat.dart
new file mode 100644
index 0000000..6bd4752
--- /dev/null
+++ b/lib/models/chat.dart
@@ -0,0 +1,26 @@
+import 'package:linkchat/models/mensaje.dart';
+
+class Chat {
+ final String id;
+ final String idUsuario1;
+ final String idUsuario2;
+ final List<Mensaje> mensajes;
+
+ const Chat({
+ required this.id,
+ required this.idUsuario1,
+ required this.idUsuario2,
+ required this.mensajes,
+ });
+
+ factory Chat.fromMap(Map<String, dynamic> map) {
+ return Chat(
+ id: map['id'],
+ idUsuario1: map['usuario1_id'],
+ idUsuario2: map['usuario2_id'],
+ mensajes: (map['mensajes'] as List<Map<String, dynamic>>)
+ .map((msj) => Mensaje.fromMap(msj))
+ .toList(),
+ );
+ }
+}
diff --git a/lib/models/favorito.dart b/lib/models/favorito.dart
new file mode 100644
index 0000000..64422be
--- /dev/null
+++ b/lib/models/favorito.dart
@@ -0,0 +1,16 @@
+class Favorito {
+ final String chatId;
+ final String mensajeId;
+
+ const Favorito({
+ required this.chatId,
+ required this.mensajeId,
+ });
+
+ factory Favorito.fromMap(Map<String, dynamic> map) {
+ return Favorito(
+ chatId: map['chat_id'],
+ mensajeId: map['mensaje_id'],
+ );
+ }
+}
diff --git a/lib/models/mensaje.dart b/lib/models/mensaje.dart
new file mode 100644
index 0000000..c2f4354
--- /dev/null
+++ b/lib/models/mensaje.dart
@@ -0,0 +1,30 @@
+enum Direccion { a2b, b2a }
+
+class Mensaje {
+ final String id;
+ final String link;
+ final String? titulo;
+ final String? imagen;
+ final String fecha;
+ final Direccion direccion;
+
+ const Mensaje({
+ required this.id,
+ required this.link,
+ this.titulo,
+ this.imagen,
+ required this.fecha,
+ required this.direccion,
+ });
+
+ factory Mensaje.fromMap(Map<String, dynamic> map) {
+ return Mensaje(
+ id: map['id'],
+ link: map['link'],
+ titulo: map.containsKey('titulo') ? map['titulo'] : null,
+ imagen: map.containsKey('imagen') ? map['imagen'] : null,
+ fecha: map['fecha'],
+ direccion: (map['fecha'] as int) == 0 ? Direccion.a2b : Direccion.b2a,
+ );
+ }
+}