diff --git a/frontend/src/app/dashboard/tickets/page.tsx b/frontend/src/app/dashboard/tickets/page.tsx
index 75562e9..d129060 100644
--- a/frontend/src/app/dashboard/tickets/page.tsx
+++ b/frontend/src/app/dashboard/tickets/page.tsx
@@ -88,7 +88,7 @@ export default function AdminTicketsPage() {
}
try {
setCreating(true)
- await ticketsApi.create(newTicket.subject, newTicket.priority)
+ await ticketsApi.create({ subject: newTicket.subject, priority: newTicket.priority })
toast.success(t("ticketsPage.messages.created"))
setCreateOpen(false)
setNewTicket({ subject: "", message: "", priority: "medium" })
@@ -197,8 +197,8 @@ export default function AdminTicketsPage() {
{ticket.subject}
-
- {(ticket as any).userFullName || (ticket as any).userName || ticket.userId?.substring(0, 8) + "..."}
+
+ {(ticket as any).userFullName || (ticket as any).userName || String(ticket.userId)}
{getStatusBadge(ticket.status)}
{getPriorityBadge(ticket.priority)}
diff --git a/frontend/src/i18n/es.json b/frontend/src/i18n/es.json
index 6232010..3a5f12c 100644
--- a/frontend/src/i18n/es.json
+++ b/frontend/src/i18n/es.json
@@ -877,6 +877,143 @@
}
}
},
+ "application": {
+ "title": "Postulación: {jobTitle}",
+ "back": "Volver a detalles del empleo",
+ "estimatedTime": "Tiempo estimado: 5 min",
+ "steps": {
+ "personal": "Datos Personales",
+ "documents": "Currículum y Documentos",
+ "experience": "Experiencia",
+ "additional": "Preguntas Adicionales"
+ },
+ "progress": {
+ "step": "Paso {current} de {total}:"
+ },
+ "form": {
+ "description": "Complete la información a continuación para continuar.",
+ "fullName": "Nombre completo *",
+ "email": "Correo electrónico *",
+ "phone": "Teléfono / WhatsApp *",
+ "linkedin": "LinkedIn (URL)",
+ "resume": "Currículum (CV) *",
+ "portfolio": "Portafolio / Sitio Web (Opcional)",
+ "coverLetter": "Carta de Presentación (Opcional)",
+ "salary": "Expectativa salarial *",
+ "hasExperience": "¿Tiene la experiencia mínima requerida para el puesto? *",
+ "whyUs": "¿Por qué quiere trabajar en {company}? *",
+ "availability": "Disponibilidad *",
+ "placeholders": {
+ "fullName": "Su nombre completo",
+ "email": "usted@email.com",
+ "phone": "(00) 00000-0000",
+ "linkedin": "linkedin.com/in/su-perfil",
+ "select": "Seleccione un rango",
+ "whyUs": "Cuéntenos qué le atrae de esta empresa y puesto...",
+ "portfolio": "https://..."
+ },
+ "privacy": {
+ "agree": "He leído y acepto la",
+ "policy": "Política de Privacidad",
+ "authorize": "y autorizo el tratamiento de mis datos para fines de reclutamiento."
+ },
+ "upload": {
+ "click": "Haga clic para subir o arrastre el archivo aquí",
+ "change": "Clic para cambiar",
+ "formats": "PDF, DOCX o TXT (Máx 5MB)"
+ },
+ "experience": {
+ "yes": "Sí, tengo",
+ "no": "Aún no"
+ },
+ "salaryRanges": {
+ "upTo3k": "Hasta R$ 3.000",
+ "3k-5k": "R$ 3.000 - R$ 5.000",
+ "5k-8k": "R$ 5.000 - R$ 8.000",
+ "8k-12k": "R$ 8.000 - R$ 12.000",
+ "12k-plus": "Más de R$ 12.000"
+ },
+ "availabilityOptions": {
+ "onsite": "Trabajo presencial",
+ "remote": "Trabajo remoto",
+ "travel": "Viajes",
+ "immediate": "Inicio inmediato"
+ }
+ },
+ "buttons": {
+ "back": "Atrás",
+ "draft": "Guardar borrador",
+ "next": "Siguiente paso",
+ "submit": "Enviar postulación",
+ "submitting": "Enviando..."
+ },
+ "success": {
+ "title": "¡Postulación Enviada!",
+ "message": "Hemos recibido su postulación para",
+ "ctaTitle": "Cree una cuenta para seguir el estado",
+ "ctaDesc": "No pierda de vista sus postulaciones. Cree una contraseña ahora para acceder a su panel de candidato.",
+ "ctaButton": "Crear Contraseña y Seguir Estado",
+ "backJobs": "Volver a Empleos"
+ },
+ "toasts": {
+ "fileTooLarge": {
+ "title": "Archivo demasiado grande",
+ "desc": "El tamaño máximo es 5MB"
+ },
+ "uploadComplete": {
+ "title": "Carga completa",
+ "desc": "Currículum subido exitosamente"
+ },
+ "uploadFailed": {
+ "title": "Carga fallida",
+ "desc": "No se pudo subir el currículum. Intente nuevamente."
+ },
+ "requiredFields": {
+ "title": "Campos obligatorios",
+ "desc": "Por favor complete todos los campos obligatorios."
+ },
+ "invalidEmail": {
+ "title": "Correo inválido",
+ "desc": "Por favor ingrese un correo válido."
+ },
+ "invalidPhone": {
+ "title": "Teléfono inválido",
+ "desc": "Por favor ingrese un número de teléfono válido."
+ },
+ "privacyPolicy": {
+ "title": "Política de privacidad",
+ "desc": "Debe aceptar la política de privacidad para continuar."
+ },
+ "resumeRequired": {
+ "title": "Currículum requerido",
+ "desc": "Por favor suba su currículum."
+ },
+ "questionsRequired": {
+ "title": "Campos obligatorios",
+ "desc": "Por favor responda todas las preguntas."
+ },
+ "reasonRequired": {
+ "title": "Campos obligatorios",
+ "desc": "Por favor proporcione su motivo y seleccione al menos una opción de disponibilidad."
+ },
+ "submitted": {
+ "title": "¡Postulación enviada!",
+ "desc": "¡Buena suerte! Su postulación para {jobTitle} ha sido recibida."
+ },
+ "submitError": {
+ "title": "Error al enviar",
+ "default": "Por favor intente nuevamente más tarde."
+ },
+ "draftSaved": {
+ "title": "Borrador guardado",
+ "desc": "Puede finalizar su postulación más tarde."
+ },
+ "loadError": {
+ "title": "Error",
+ "desc": "Error al cargar detalles del empleo"
+ }
+ }
+ },
"ticketsPage": {
"title": "Tickets de Soporte (Admin)",
"description": "Gestiona todos los tickets de soporte de usuarios.",