Skip to content

feat: Implement User Profile Management (View and Update) #28

@josemora090525

Description

@josemora090525

🔔 Feature: Implementación del Módulo de Perfil de Usuario y Notificaciones de Sistema

Este Issue Principal coordina la implementación de la funcionalidad que permite a un usuario autenticado consultar y modificar su propia información de perfil con edición automática en línea, y se extiende para integrar el sistema de Notificaciones que se alimenta de eventos del sistema (como alertas de bajo stock o vencimiento generadas por el módulo de Inventario/Alertas).

🎯 Objetivo

Establecer la conexión desde el front-end a través del UserSectionController hasta la capa de persistencia para la gestión del perfil, e integrar el NotificacionService para listar, gestionar y mostrar mensajes generados por otros módulos.

🔗 Puntos Clave de Interconexión

  1. Edición en Línea: El perfil se debe actualizar automáticamente al presionar Enter o perder el foco del campo editado.
  2. Notificaciones: Dependencia directa con los módulos de Inventario y Alertas/Nodrik para la generación de mensajes.

📋 Tareas Pendientes (Sub-Issues y dependencias)

A continuación, se detalla el trabajo a realizar, manteniendo un seguimiento a través de los task lists.

1. Gestión de Perfil (Tareas de Actualización en Línea)

  • Issue 3: Actualizar UsuarioRepository para soportar edición de perfil

    • Implementar el método updateUsuario(Usuario usuario) para la modificación de datos.
    • Verificar la correcta conexión con la base de datos (Supabase, u otra) para la operación de actualización.
    • Configurar el repositorio para manejar la actualización de un solo campo tras la edición en línea.
    • Depende de: Modelo Usuario.
    • Vinculado con: UsuarioService.
  • Issue 2: Extender UsuarioService con métodos de actualización de datos

    • Crear el método actualizarDatosUsuario(Usuario usuarioActualizado).
    • Implementar la validación de datos (ej., formato de correo, teléfono).
    • Implementar la verificación de correo único si el campo de correo es modificado.
    • Gestionar mensajes de éxito y error para el controlador.
    • Depende de: UsuarioRepository.

2. Gestión de Notificaciones (Integración de Alertas)

  • Issue 4: Crear NotificacionRepository

    • Implementar los métodos de consulta para listar las notificaciones de un usuario específico.
    • Implementar métodos para marcar una notificación como leída o eliminarla.
    • Depende de: Modelo Notificacion.
    • Vinculado con: NotificacionService.
  • Issue 5: Crear NotificacionService

    • Implementar la lógica para obtener la lista de notificaciones pendientes del usuario.
    • (Clave) Implementar métodos para consumir mensajes de alerta generados por el AlertaService (del módulo de Inventario/Nodrik) y persistirlos como notificaciones de usuario.
    • Desarrollar métodos de negocio para actualizar el estado (leída/no leída) de una notificación.
    • Depende de: NotificacionRepository, AlertaService (del módulo Inventario/Nodrik).
    • Vinculado con: UserSectionController.

3. Implementación del Controlador y la Vista

  • Issue 1: Implementar UserSectionController (Perfil y Notificaciones)
    • Conectar el icono de usuario en el menú principal con la vista userSection.fxml.
    • Implementar la lógica para Mostrar la información actual del usuario autenticado.
    • Desarrollar la funcionalidad de Edición Automática en Línea (al presionar Enter o perder el foco) que llama al UsuarioService para guardar el cambio de inmediato.
    • Implementar un campo de Búsqueda/Filtro para que el usuario pueda validar rápidamente sus propios datos que se muestran en la vista.
    • Implementar la validación de la integridad de los datos en el controlador.
    • (Notificaciones) Integrar una sección o tab en la vista para mostrar la lista de notificaciones.
    • Implementar la funcionalidad de la interfaz para Marcar como leída o Eliminar una notificación.
    • Mostrar un contador visual de notificaciones no leídas en el menú principal.
    • Depende de: UsuarioRepository, UsuarioService, NotificacionService.
    • Vinculado con: Vista userSection.fxml.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthigh-priorityMust be addressed urgently or blocks critical functionality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions