feat: integrar campos WhatsForm en formulario de visa
Reemplaza los 4 campos básicos del formulario de visa con 40+ campos del DS-160 organizados en 7 secciones (datos personales, patrocinador, historial migratorio, dirección, datos familiares, empleo, estudios). Agrega soporte para tipos heading (divisor de sección) y radio buttons. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -20,9 +20,69 @@ $SERVICIOS = [
|
||||
'Acompañamiento el día de la cita',
|
||||
],
|
||||
'campos_formulario' => [
|
||||
// Tipo de trámite
|
||||
['name' => 'tipo_visa', 'label' => 'Tipo de visa', 'type' => 'select', 'options' => ['Turista (B1/B2)', 'Estudiante (F1)', 'Trabajo (H1B)', 'Otro'], 'required' => true],
|
||||
['name' => 'primera_vez', 'label' => '¿Es primera vez o renovación?', 'type' => 'select', 'options' => ['Primera vez', 'Renovación'], 'required' => true],
|
||||
['name' => 'pasaporte_vigente', 'label' => '¿Tiene pasaporte vigente?', 'type' => 'select', 'options' => ['Sí', 'No'], 'required' => true],
|
||||
|
||||
// Datos personales
|
||||
['type' => 'heading', 'label' => 'Datos personales'],
|
||||
['name' => 'fecha_nacimiento', 'label' => 'Fecha de nacimiento', 'type' => 'date', 'required' => true],
|
||||
['name' => 'lugar_nacimiento', 'label' => 'Lugar de nacimiento', 'type' => 'text', 'required' => true],
|
||||
['name' => 'curp', 'label' => 'CURP', 'type' => 'text', 'required' => true],
|
||||
['name' => 'estado_civil', 'label' => 'Estado civil', 'type' => 'radio', 'options' => ['Casado', 'Soltero', 'Viudo', 'Unión libre'], 'required' => false],
|
||||
['name' => 'nombre_pareja', 'label' => 'Nombre completo de la pareja', 'type' => 'text', 'required' => false],
|
||||
['name' => 'lugar_fecha_nacimiento_pareja', 'label' => 'Lugar y fecha de nacimiento de la pareja', 'type' => 'text', 'required' => false],
|
||||
|
||||
// Patrocinador del viaje
|
||||
['type' => 'heading', 'label' => 'Patrocinador del viaje'],
|
||||
['name' => 'quien_paga_viaje', 'label' => '¿Quién paga el viaje?', 'type' => 'text', 'required' => false],
|
||||
['name' => 'nombre_patrocinador', 'label' => 'Nombre del patrocinador', 'type' => 'text', 'required' => false],
|
||||
['name' => 'parentesco_patrocinador', 'label' => 'Parentesco con el patrocinador', 'type' => 'text', 'required' => false],
|
||||
['name' => 'telefono_patrocinador', 'label' => 'Teléfono del patrocinador', 'type' => 'text', 'required' => false],
|
||||
['name' => 'email_patrocinador', 'label' => 'Email del patrocinador', 'type' => 'text', 'required' => false],
|
||||
|
||||
// Historial migratorio
|
||||
['type' => 'heading', 'label' => 'Historial migratorio'],
|
||||
['name' => 'ultimos_cruces', 'label' => 'Liste sus últimos 5 cruces a EE.UU. (fechas y motivo)', 'type' => 'textarea', 'required' => false],
|
||||
['name' => 'visa_perdida_robada', 'label' => '¿Ha perdido o le han robado una visa?', 'type' => 'select', 'options' => ['Sí', 'No'], 'required' => false],
|
||||
['name' => 'anio_perdida', 'label' => 'Año de la pérdida/robo', 'type' => 'text', 'required' => false],
|
||||
['name' => 'como_fue_perdida', 'label' => '¿Cómo fue la pérdida/robo?', 'type' => 'textarea', 'required' => false],
|
||||
['name' => 'visa_negada', 'label' => '¿Le han negado una visa anteriormente?', 'type' => 'select', 'options' => ['Sí', 'No'], 'required' => false],
|
||||
['name' => 'peticion_migracion', 'label' => '¿Tiene alguna petición de migración en proceso?', 'type' => 'select', 'options' => ['Sí', 'No'], 'required' => false],
|
||||
|
||||
// Dirección personal
|
||||
['type' => 'heading', 'label' => 'Dirección personal'],
|
||||
['name' => 'direccion', 'label' => 'Dirección completa', 'type' => 'text', 'required' => true],
|
||||
|
||||
// Datos familiares
|
||||
['type' => 'heading', 'label' => 'Datos familiares'],
|
||||
['name' => 'nombre_padre', 'label' => 'Nombre completo del padre', 'type' => 'text', 'required' => false],
|
||||
['name' => 'fecha_nacimiento_padre', 'label' => 'Fecha de nacimiento del padre', 'type' => 'date', 'required' => false],
|
||||
['name' => 'nombre_madre', 'label' => 'Nombre completo de la madre', 'type' => 'text', 'required' => false],
|
||||
['name' => 'fecha_nacimiento_madre', 'label' => 'Fecha de nacimiento de la madre', 'type' => 'date', 'required' => false],
|
||||
['name' => 'familiares_eeuu', 'label' => '¿Tiene familiares en EE.UU.?', 'type' => 'select', 'options' => ['Sí', 'No'], 'required' => false],
|
||||
['name' => 'relacion_familiar', 'label' => 'Relación con el familiar', 'type' => 'select', 'options' => ['Padres', 'Hijos', 'Hermanos', 'Pareja'], 'required' => false],
|
||||
['name' => 'status_migratorio_familiar', 'label' => 'Status migratorio del familiar', 'type' => 'select', 'options' => ['Residente legal', 'Ciudadano'], 'required' => false],
|
||||
|
||||
// Empleo (últimos 5 años)
|
||||
['type' => 'heading', 'label' => 'Empleo (últimos 5 años)'],
|
||||
['name' => 'nombre_empresa', 'label' => 'Nombre de la empresa', 'type' => 'text', 'required' => false],
|
||||
['name' => 'direccion_empresa', 'label' => 'Dirección de la empresa', 'type' => 'text', 'required' => false],
|
||||
['name' => 'telefono_empresa', 'label' => 'Teléfono de la empresa', 'type' => 'text', 'required' => false],
|
||||
['name' => 'puesto', 'label' => 'Puesto', 'type' => 'text', 'required' => false],
|
||||
['name' => 'fechas_trabajo', 'label' => 'Fechas de trabajo (inicio - fin)', 'type' => 'text', 'required' => false],
|
||||
|
||||
// Estudios
|
||||
['type' => 'heading', 'label' => 'Estudios'],
|
||||
['name' => 'nivel_estudios', 'label' => 'Nivel de estudios', 'type' => 'text', 'required' => false],
|
||||
['name' => 'nombre_escuela', 'label' => 'Nombre de la escuela', 'type' => 'text', 'required' => false],
|
||||
['name' => 'direccion_escuela', 'label' => 'Dirección de la escuela', 'type' => 'text', 'required' => false],
|
||||
['name' => 'telefono_escuela', 'label' => 'Teléfono de la escuela', 'type' => 'text', 'required' => false],
|
||||
['name' => 'curso_estudios', 'label' => 'Curso o carrera', 'type' => 'text', 'required' => false],
|
||||
['name' => 'fechas_estudios', 'label' => 'Fechas de estudio (inicio - fin)', 'type' => 'text', 'required' => false],
|
||||
|
||||
// Final
|
||||
['name' => 'comentarios', 'label' => 'Comentarios adicionales', 'type' => 'textarea', 'required' => false],
|
||||
],
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user