Descripción
useReportes es un composable de Vue que gestiona la obtención, agrupación y conteo de reportes ciudadanos desde Supabase. Proporciona funcionalidad para trabajar con reportes de usuarios, organizarlos por estado y obtener métricas.
Importación
Uso Básico
- Obtener Reportes
- Agrupar por Estado
- Contar por Estado
- Manejo de Errores
API
Valores Retornados
Array reactivo con los reportes obtenidos. Se actualiza automáticamente al llamar
obtenerReportesUsuario().Tipo Reporte basado en Database['public']['Tables']['reportes']['Row']Indica si hay una operación de carga en progreso. Útil para mostrar indicadores de carga en la UI.
Contiene el mensaje de error si ocurre un problema al obtener los reportes. Es
null cuando no hay errores.Obtiene todos los reportes de un usuario específico desde Supabase, ordenados por fecha de creación (más recientes primero).Parámetros:
usuarioId(string) - UUID del usuario cuyos reportes se desean obtener
Promise<Reporte[]> - Array de reportes del usuario (vacío si hay error)Efectos secundarios:- Actualiza
reportes.valuecon los datos obtenidos - Actualiza
loading.valuedurante la operación - Actualiza
error.valuesi ocurre un error
Agrupa un array de reportes por su estado.Parámetros:
reportesArray(Reporte[]) - Array de reportes a agrupar
Record<string, Reporte[]> - Objeto con los reportes agrupados por estado:pendiente- Reportes en estado inicialen_revision- Reportes siendo evaluadosaceptado- Reportes aceptadosen_proceso- Reportes en resoluciónresuelto- Reportes completadosrechazado- Reportes rechazadosduplicado- Reportes duplicados
Cuenta el número de reportes en cada estado.Parámetros:
reportesArray(Reporte[]) - Array de reportes a contar
Record<string, number> - Objeto con el conteo por estado:pendiente- Número de reportes pendientesen_revision- Número de reportes en revisiónaceptado- Número de reportes aceptadosen_proceso- Número de reportes en procesoresuelto- Número de reportes resueltosrechazado- Número de reportes rechazadosduplicado- Número de reportes duplicados
Tipo Reporte
El tipoReporte corresponde a ReportesRow de la base de datos:
Ejemplo Completo
Notas
- Los reportes se ordenan por fecha de creación descendente (más recientes primero)
- La función
obtenerReportesUsuarioactualiza automáticamente el estado reactivoreportes - El estado
loadinges útil para mostrar spinners durante la carga - El estado
errorcontiene mensajes descriptivos en caso de fallo - Las funciones
agruparPorEstadoycontarPorEstadoson puras y pueden usarse con cualquier array de reportes - Los estados disponibles están definidos en el tipo
ReporteEstadode la base de datos
