App móvil Flutter para capturar contenido multimedia, etiquetarlo con hashes y enviarlo a backends configurables. Features: - Captura de fotos, audio, video y archivos - Sistema de etiquetas con bibliotecas externas (HST) - Packs de etiquetas predefinidos - Cola de reintentos (hasta 20 contenedores) - Soporte GPS - Hash SHA-256 auto-generado por contenedor - Persistencia SQLite local - Múltiples destinos configurables Stack: Flutter 3.38.5, flutter_bloc, sqflite, dio 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
47 lines
1003 B
Dart
47 lines
1003 B
Dart
class Destino {
|
|
final int? id;
|
|
final String nombre;
|
|
final String url;
|
|
final String hash;
|
|
final bool activo;
|
|
|
|
Destino({
|
|
this.id,
|
|
required this.nombre,
|
|
required this.url,
|
|
required this.hash,
|
|
this.activo = true,
|
|
});
|
|
|
|
factory Destino.fromMap(Map<String, dynamic> map) => Destino(
|
|
id: map['id'] as int?,
|
|
nombre: map['nombre'] as String,
|
|
url: map['url'] as String,
|
|
hash: map['hash'] as String,
|
|
activo: (map['activo'] as int?) == 1,
|
|
);
|
|
|
|
Map<String, dynamic> toMap() => {
|
|
if (id != null) 'id': id,
|
|
'nombre': nombre,
|
|
'url': url,
|
|
'hash': hash,
|
|
'activo': activo ? 1 : 0,
|
|
};
|
|
|
|
Destino copyWith({
|
|
int? id,
|
|
String? nombre,
|
|
String? url,
|
|
String? hash,
|
|
bool? activo,
|
|
}) =>
|
|
Destino(
|
|
id: id ?? this.id,
|
|
nombre: nombre ?? this.nombre,
|
|
url: url ?? this.url,
|
|
hash: hash ?? this.hash,
|
|
activo: activo ?? this.activo,
|
|
);
|
|
}
|