other modifications days ago
This commit is contained in:
594
mock_staff_data_v3_update.md
Normal file
594
mock_staff_data_v3_update.md
Normal file
@@ -0,0 +1,594 @@
|
||||
# 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 `Map` devuelto:**
|
||||
```dart
|
||||
{
|
||||
'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 `Map` llamado `data` que contiene la información del perfil del nuevo trabajador.
|
||||
* **Estructura Inferida (por su uso):**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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`:**
|
||||
```dart
|
||||
{
|
||||
'date': String,
|
||||
'status': String
|
||||
}
|
||||
```
|
||||
|
||||
#### 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 `_BenefitCard` recibe un `Map` para 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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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):**
|
||||
```dart
|
||||
{
|
||||
'category': String,
|
||||
'questions': List<Map<String, dynamic>>, // <- Lista anidada
|
||||
}
|
||||
```
|
||||
* **Estructura anidada de `questions`:**
|
||||
```dart
|
||||
{
|
||||
'q': String, // Pregunta
|
||||
'a': String, // Respuesta
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `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):**
|
||||
```dart
|
||||
{
|
||||
'sender_id': String,
|
||||
'sender_name': String,
|
||||
'lastMessage': String,
|
||||
'lastTime': DateTime,
|
||||
'unread': int,
|
||||
'messages': List<Map<String, dynamic>>, // <- Lista anidada
|
||||
}
|
||||
```
|
||||
* **Estructura anidada de `messages`:**
|
||||
```dart
|
||||
{
|
||||
'content': String,
|
||||
'sender_id': String,
|
||||
}
|
||||
```
|
||||
|
||||
#### 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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'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:**
|
||||
```dart
|
||||
{
|
||||
'date': DateTime,
|
||||
'start': String,
|
||||
'end': String,
|
||||
'hours': String,
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user