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,33 @@
import 'dart:typed_data';
enum ArchivoTipo { image, audio, video, document }
class ArchivoAdjunto {
final String nombre;
final String mimeType;
final Uint8List bytes;
final ArchivoTipo tipo;
final String? hash;
ArchivoAdjunto({
required this.nombre,
required this.mimeType,
required this.bytes,
required this.tipo,
this.hash,
});
Map<String, dynamic> toJson() => {
'nombre': nombre,
'tipo': mimeType,
'contenido': bytes,
};
int get sizeBytes => bytes.length;
String get sizeFormatted {
if (sizeBytes < 1024) return '$sizeBytes B';
if (sizeBytes < 1024 * 1024) return '${(sizeBytes / 1024).toStringAsFixed(1)} KB';
return '${(sizeBytes / (1024 * 1024)).toStringAsFixed(1)} MB';
}
}