17 KiB
17 KiB
Análisis Exhaustivo de Map<String, dynamic> en el Proyecto
Este documento detalla todos los usos del tipo Map<String, dynamic> encontrados en los archivos .dart del proyecto, incluyendo variables, listas, parámetros y tipos de retorno de funciones.
lib/widgets/shift_card.dart
1. Tipo de Retorno de Función: Map<String, dynamic> _calculateDuration()
- Propósito: Calcula la duración de un turno en horas y devuelve también una cadena de texto para el tiempo de descanso.
- Estructura del
Mapdevuelto:{ 'hours': int, 'breakTime': String, }
lib/services/mock_service.dart
1. Parámetro de Función: Future<void> createWorkerProfile(Map<String, dynamic> data)
- Propósito: Simula la creación de un perfil de trabajador. Acepta un
Mapllamadodataque contiene la información del perfil del nuevo trabajador. - Estructura Inferida (por su uso):
{ 'full_name': String, 'bio': String, 'preferred_locations': List<String>, 'max_distance_miles': double, 'skills': List<String>, 'industries': List<String>, }
lib/screens/auth/profile_setup_screen.dart
1. Variable: static const List<Map<String, dynamic>> _steps
- Propósito: Define los pasos en el asistente de creación de perfiles.
- Estructura de cada elemento:
{ 'id': String, 'title': String, 'icon': IconData }
2. Argumento de Función: (Anónimo) en mockService.createWorkerProfile
- Propósito: Recopila y envía los datos del perfil del nuevo usuario al servicio mock.
- Estructura:
{ 'full_name': String, 'bio': String, 'preferred_locations': List<String>, 'max_distance_miles': double, 'skills': List<String>, 'industries': List<String> }
lib/screens/worker/benefits_screen.dart
1. Variable: final List<Map<String, dynamic>> _benefitsData
- Propósito: Contiene los datos de simulación (mock) para los diferentes beneficios del trabajador.
- Estructura de cada elemento:
{ 'id': String, 'title': String, 'current': int, 'total': int, 'color': Color, 'description': String, 'history': List<Map<String, dynamic>>, // <- Lista anidada 'requestLabel': String, 'notice': String?, }- Estructura anidada de
history:{ 'date': String, 'status': String }
- Estructura anidada de
2. Parámetro de Función: void _handleRequest(Map<String, dynamic> benefit)
- Propósito: Maneja la acción cuando un usuario solicita un beneficio.
- Estructura: La misma que los elementos de
_benefitsData.
3. Parámetro de Widget: final Map<String, dynamic> benefit
- Propósito: El widget
_BenefitCardrecibe unMappara mostrar los detalles de un beneficio. - Estructura: La misma que los elementos de
_benefitsData.
lib/screens/worker/worker_profile_screen.dart
1. Variable: final Map<String, dynamic> _user
- Propósito: Almacena datos básicos de identificación del usuario.
- Estructura:
{ 'full_name': String, 'email': String, }
2. Variable: final Map<String, dynamic> _profile
- Propósito: Almacena estadísticas y atributos detallados del perfil del trabajador.
- Estructura:
{ 'level': String, 'photo_url': String?, 'total_shifts': int, 'average_rating': double, 'on_time_rate': int, 'no_show_count': int, 'cancellation_count': int, 'reliability_score': int, 'phone': String, 'skills': List, }
lib/screens/worker/worker_profile/onboarding/emergency_contact_screen.dart
1. Variable: final List<Map<String, dynamic>> _contacts
- Propósito: Almacena una lista de los contactos de emergencia.
- Estructura de cada elemento:
{ 'name': String, 'phone': String, 'relationship': String }
2. Parámetro de Función: Widget _buildContactForm(int index, Map<String, dynamic> contact)
- Propósito: Construye el widget del formulario para un contacto.
- Estructura: La misma que los elementos de
_contacts.
lib/screens/worker/worker_profile/onboarding/personal_info_screen.dart
1. Variable: final Map<String, dynamic> _user
- Propósito: Almacena los datos básicos del usuario para el formulario.
- Estructura:
{ 'full_name': String, 'email': String, 'photo_url': String?, }
lib/screens/worker/worker_profile/finances/time_card_screen.dart
1. Variable: final List<Map<String, dynamic>> _timesheets
- Propósito: Almacena una lista de registros de hojas de tiempo (timesheets).
- Estructura de cada elemento:
{ 'id': String, 'shift_id': String, 'date': String, // ISO 8601 'actual_start': String, 'actual_end': String, 'total_hours': double, 'hourly_rate': double, 'total_pay': double, 'status': String, 'shift_title': String, 'client_name': String, 'location': String, }
2. Parámetro de Función: Widget _buildShiftHistory(List<Map<String, dynamic>> timesheets)
- Propósito: Construye la sección de historial de turnos.
- Estructura: Una lista donde cada elemento tiene la estructura de
_timesheets.
3. Parámetro de Función: Widget _buildTimesheetCard(Map<String, dynamic> timesheet)
- Propósito: Construye la tarjeta para una sola hoja de tiempo.
- Estructura: La misma que los elementos de
_timesheets.
lib/screens/worker/worker_profile/finances/bank_account_screen.dart
1. Variable: final List<Map<String, dynamic>> _accounts
- Propósito: Almacena una lista de las cuentas bancarias vinculadas.
- Estructura de cada elemento:
{ 'id': int, 'bank': String, 'type': String, 'last4': String, 'isPrimary': bool, }
2. Parámetro de Función: Widget _buildAccountCard(Map<String, dynamic> account)
- Propósito: Construye la tarjeta para una sola cuenta bancaria.
- Estructura: La misma que los elementos de
_accounts.
lib/screens/worker/worker_profile/level_up/trainings_screen.dart
1. Variable: final List<Map<String, dynamic>> _courses
- Propósito: Almacena una lista de cursos de capacitación.
- Estructura de cada elemento:
{ 'id': String, 'title': String, 'description': String, 'duration_minutes': int, 'xp_reward': int, 'thumbnail_url': String?, 'progress_percent': int, 'completed': bool, }
lib/screens/worker/worker_profile/level_up/leaderboard_screen.dart
1. Variable: final List<Map<String, dynamic>> _profiles
- Propósito: Almacena los datos de los perfiles para la tabla de clasificación.
- Estructura de cada elemento:
{ 'id': String, 'name': String, 'photo_url': String?, 'xp': int, 'level': String, 'user_id': String, }
2. Variable: final sortedProfiles = List<Map<String, dynamic>>.from(_profiles)
- Propósito: Crea una copia mutable de la lista de perfiles para ordenarla.
- Estructura: Los elementos tienen la misma estructura que
_profiles.
3. Parámetro de Función: Widget _buildPodium(List<Map<String, dynamic>> topThree)
- Propósito: Construye la sección del podio con los 3 mejores perfiles.
- Estructura: Una lista donde cada mapa tiene la estructura de un elemento de
_profiles.
4. Parámetro de Función: Map<String, dynamic> profile (en _buildPodiumItem)
- Propósito: Construye el item para un perfil en el podio.
- Estructura: La misma que un elemento de
_profiles.
5. Parámetro de Función: Widget _buildRestList(List<Map<String, dynamic>> rest, ...)
- Propósito: Construye la lista para el resto de los perfiles.
- Estructura: Una lista donde cada mapa tiene la estructura de un elemento de
_profiles.
lib/screens/worker/worker_profile/onboarding/attire_screen.dart
1. Variable: final List<Map<String, dynamic>> _attireOptions
- Propósito: Define las opciones de vestimenta que un trabajador puede seleccionar.
- Estructura de cada elemento:
{ 'id': String, 'label': String, 'icon': IconData, 'imageUrl': String, }
lib/screens/worker/worker_profile/support/faqs_screen.dart
1. Variable: final List<Map<String, dynamic>> _faqData
- Propósito: Almacena los datos de las preguntas frecuentes, organizados por categoría.
- Estructura de cada elemento (categoría):
{ 'category': String, 'questions': List<Map<String, dynamic>>, // <- Lista anidada }- Estructura anidada de
questions:{ 'q': String, // Pregunta 'a': String, // Respuesta }
- Estructura anidada de
lib/screens/worker/worker_profile/support/messages_screen.dart
1. Variable: final List<Map<String, dynamic>> _conversations
- Propósito: Contiene los datos de simulación para las conversaciones de chat.
- Estructura de cada elemento (conversación):
{ 'sender_id': String, 'sender_name': String, 'lastMessage': String, 'lastTime': DateTime, 'unread': int, 'messages': List<Map<String, dynamic>>, // <- Lista anidada }- Estructura anidada de
messages:{ 'content': String, 'sender_id': String, }
- Estructura anidada de
2. Variable: Map<String, dynamic>? _selectedChat
- Propósito: Almacena la conversación que el usuario ha seleccionado para ver.
- Estructura: La misma que un elemento de
_conversations.
lib/screens/worker/payments_screen.dart
1. Variable: final List<Map<String, dynamic>> _recentPayments
- Propósito: Almacena registros detallados de pagos recientes.
- Estructura de cada elemento:
{ 'date': String, 'title': String, 'location': String, 'address': String, 'workedTime': String, 'amount': double, 'status': String, 'hours': int, 'rate': int, // Debería ser double }
lib/screens/worker/worker_profile/compliance/documents_screen.dart
1. Variable: final List<Map<String, dynamic>> _requiredDocs
- Propósito: Almacena la lista de documentos de cumplimiento requeridos.
- Estructura de cada elemento:
{ 'id': String, 'name': String, 'description': String, 'status': String, }
2. Parámetro de Función: Widget _buildDocumentCard(Map<String, dynamic> doc)
- Propósito: Construye la tarjeta de UI para un solo documento.
- Estructura: La misma que los elementos de
_requiredDocs.
lib/screens/worker/worker_profile/compliance/tax_forms_screen.dart
1. Variable: final List<Map<String, dynamic>> _forms
- Propósito: Almacena la lista de formularios de impuestos.
- Estructura de cada elemento:
{ 'id': String, 'title': String, 'subtitle': String, 'description': String, 'status': String, 'icon': String, // Emoji }
2. Parámetro de Función: Widget _buildFormCard(Map<String, dynamic> form)
- Propósito: Construye la tarjeta de UI para un solo formulario.
- Estructura: La misma que los elementos de
_forms.
lib/screens/worker/availability_screen.dart
1. Variable: final List<Map<String, dynamic>> _timeSlots
- Propósito: Define las propiedades de los diferentes rangos horarios para la disponibilidad.
- Estructura de cada elemento:
{ 'id': String, 'label': String, 'time': String, 'icon': IconData, 'bg': Color, 'iconColor': Color, }
lib/screens/worker/worker_profile/compliance/certificates_screen.dart
1. Variable: final List<Map<String, dynamic>> _certificates
- Propósito: Almacena la lista de certificados de cumplimiento del trabajador.
- Estructura de cada elemento:
{ 'id': String, 'name': String, 'icon': IconData, 'color': Color, 'description': String, 'status': String, 'expiry': String?, // ISO 8601 }
2. Parámetro de Función: Widget _buildCertificateCard(Map<String, dynamic> cert)
- Propósito: Construye la tarjeta de UI para un solo certificado.
- Estructura: La misma que los elementos de
_certificates.
3. Parámetro de Función: void _showUploadModal(BuildContext context, Map<String, dynamic>? cert)
- Propósito: Muestra un modal para subir un certificado.
- Estructura: La misma que los elementos de
_certificates.
lib/screens/worker/worker_profile/compliance/taxforms/form_i9_screen.dart
1. Variable: final Map<String, dynamic> _formData
- Propósito: Almacena el estado de los campos del formulario I-9.
- Estructura:
{ 'lastName': String, 'firstName': String, 'middleInitial': String, 'otherLastNames': String, 'address': String, 'aptNumber': String, 'city': String, 'state': String?, 'zipCode': String, 'dateOfBirth': String, 'ssn': String, 'email': String, 'phone': String, 'citizenshipStatus': String, 'uscisNumber': String, 'i94Number': String, 'foreignPassportNumber': String, 'countryOfIssuance': String, 'expirationDate': String, }
lib/screens/worker/worker_profile/compliance/taxforms/form_w4_screen.dart
1. Variable: final Map<String, dynamic> _formData
- Propósito: Almacena el estado de los campos del formulario W-4.
- Estructura:
{ 'firstName': String, 'lastName': String, 'address': String, 'cityStateZip': String, 'ssn': String, 'filingStatus': String, 'multipleJobs': bool, 'qualifyingChildren': int, 'otherDependents': int, 'otherIncome': String, 'deductions': String, 'extraWithholding': String, }
lib/screens/worker/worker_profile/level_up/krow_university_screen.dart
1. Variable: final Map<String, dynamic> _profile
- Propósito: Almacena un subconjunto de datos del perfil relevantes para la universidad.
- Estructura:
{ 'level': String, 'xp': int, 'badges': List<String>, }
2. Variable: final List<Map<String, dynamic>> _levels
- Propósito: Define los diferentes niveles de Krower y sus propiedades.
- Estructura de cada elemento:
{ 'name': String, 'xpRequired': int, 'icon': IconData, 'colors': List<Color>, }
3. Variable: final List<Map<String, dynamic>> _categories
- Propósito: Define las categorías para los cursos.
- Estructura de cada elemento:
{ 'id': String, 'label': String, 'icon': IconData, }
4. Variable: final List<Map<String, dynamic>> _courses
- Propósito: Almacena la lista de cursos disponibles.
- Estructura de cada elemento:
{ 'id': String, 'title': String, 'description': String, 'category': String, 'duration_minutes': int, 'xp_reward': int, 'level_required': String, 'is_certification': bool, 'progress_percent': int, 'completed': bool, }
5. Parámetro de Función: Widget _buildCoursesList(List<Map<String, dynamic>> courses)
- Propósito: Construye la lista de widgets de cursos.
- Estructura: Una lista donde cada mapa tiene la estructura de un elemento de
_courses.
lib/screens/worker/earnings_screen.dart
1. Variable: final List<Map<String, dynamic>> _recentPayments
- Propósito: Almacena resúmenes de pagos recientes.
- Estructura de cada elemento:
{ 'date': String, 'amount': double, 'shifts': int, 'status': String, }
lib/screens/worker/clock_in_screen.dart
1. Variable: final List<Map<String, dynamic>> _recentActivity
- Propósito: Almacena una lista de actividades recientes de fichaje.
- Estructura de cada elemento:
{ 'date': DateTime, 'start': String, 'end': String, 'hours': String, }