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>
33 lines
839 B
Dart
33 lines
839 B
Dart
import 'package:equatable/equatable.dart';
|
|
import '../../../domain/entities/destino.dart';
|
|
|
|
class AppState extends Equatable {
|
|
final int currentIndex;
|
|
final Destino? destinoActivo;
|
|
final List<Destino> destinos;
|
|
final bool isLoading;
|
|
|
|
const AppState({
|
|
this.currentIndex = 0,
|
|
this.destinoActivo,
|
|
this.destinos = const [],
|
|
this.isLoading = false,
|
|
});
|
|
|
|
AppState copyWith({
|
|
int? currentIndex,
|
|
Destino? destinoActivo,
|
|
List<Destino>? destinos,
|
|
bool? isLoading,
|
|
}) =>
|
|
AppState(
|
|
currentIndex: currentIndex ?? this.currentIndex,
|
|
destinoActivo: destinoActivo ?? this.destinoActivo,
|
|
destinos: destinos ?? this.destinos,
|
|
isLoading: isLoading ?? this.isLoading,
|
|
);
|
|
|
|
@override
|
|
List<Object?> get props => [currentIndex, destinoActivo, destinos, isLoading];
|
|
}
|