Agrego frontend app

This commit is contained in:
Pablo
2026-08-22 19:08:19 -03:00
parent 824e092b29
commit 2d0797e627
254 changed files with 37231 additions and 0 deletions
@@ -0,0 +1,59 @@
enum EstadoHuerfana { pendiente, reubicado, resuelta }
class ReservaHuerfana {
final String huerfanaId;
final String clienteId;
final String nombre;
final String? apellido;
final String? telefono;
final String actividadNombre;
final String fechaOriginal;
final String horaInicioOriginal;
final EstadoHuerfana estado;
final String creadaEn;
const ReservaHuerfana({
required this.huerfanaId,
required this.clienteId,
required this.nombre,
this.apellido,
this.telefono,
required this.actividadNombre,
required this.fechaOriginal,
required this.horaInicioOriginal,
required this.estado,
required this.creadaEn,
});
String get displayName =>
apellido != null ? '$nombre $apellido' : nombre;
String get initials {
final parts = displayName.trim().split(' ');
if (parts.length == 1) return parts[0][0].toUpperCase();
return '${parts[0][0]}${parts.last[0]}'.toUpperCase();
}
static EstadoHuerfana _parseEstado(String s) {
return switch (s) {
'reubicado' => EstadoHuerfana.reubicado,
'resuelta' => EstadoHuerfana.resuelta,
_ => EstadoHuerfana.pendiente,
};
}
factory ReservaHuerfana.fromMap(Map<String, dynamic> m) {
return ReservaHuerfana(
huerfanaId: m['huerfana_id'] as String,
clienteId: m['cliente_id'] as String,
nombre: m['nombre'] as String,
apellido: m['apellido'] as String?,
telefono: m['telefono'] as String?,
actividadNombre: m['actividad_nombre'] as String,
fechaOriginal: m['fecha_original'] as String,
horaInicioOriginal: m['hora_inicio_original'] as String,
estado: _parseEstado(m['estado_resolucion'] as String? ?? 'pendiente'),
creadaEn: m['creada_en'] as String,
);
}
}