diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-05-20 17:02:26 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-05-20 17:02:26 -0600 |
commit | a932c7491ca1f00ec9219e84f03a7fc98040b07a (patch) | |
tree | c00af19dc6cbba901edb9cd22ccbbaa8e160b0a8 | |
parent | cd8f22959e62c0b7b191e64f4ecfec53cba9f364 (diff) | |
download | linkchat-a932c7491ca1f00ec9219e84f03a7fc98040b07a.tar.gz linkchat-a932c7491ca1f00ec9219e84f03a7fc98040b07a.tar.bz2 linkchat-a932c7491ca1f00ec9219e84f03a7fc98040b07a.zip |
Se añaden modelos
-rw-r--r-- | lib/models/chat.dart | 26 | ||||
-rw-r--r-- | lib/models/favorito.dart | 16 | ||||
-rw-r--r-- | lib/models/mensaje.dart | 30 |
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, + ); + } +} |