PACKET v1.0.0 - Initial release

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>
This commit is contained in:
tzzrgit
2025-12-21 18:10:27 +01:00
commit dac0c51483
163 changed files with 8603 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
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,
);
}