# CamellApp - [CamellApp](https://docs.camellapp.com/index.md): Documentacion de CamellApp: marketplace de servicios y referencia de API. - [Instalación](https://docs.camellapp.com/docs/handbook/empezar/instalacion.md): Levantar CamellApp en local: requisitos, base de datos, Prisma y arranque. - [Variables de entorno](https://docs.camellapp.com/docs/handbook/empezar/variables-de-entorno.md): Qué configura cada variable y qué se degrada si falta. - [Visión general](https://docs.camellapp.com/docs/handbook/arquitectura/vision-general.md): El stack de CamellApp y cómo encajan sus piezas. - [Datos y Prisma](https://docs.camellapp.com/docs/handbook/arquitectura/datos-y-prisma.md): El cliente generado fuera de node_modules y por qué importa. - [Estructura del código](https://docs.camellapp.com/docs/handbook/arquitectura/estructura-del-codigo.md): src/app frente a src/views, y el split server-only / -shared. - [Route handlers](https://docs.camellapp.com/docs/handbook/arquitectura/route-handlers.md): El patrón que siguen todos los endpoints de src/app/api. - [Autenticación y roles](https://docs.camellapp.com/docs/handbook/arquitectura/auth-y-roles.md): NextAuth, los tres roles y la matriz de permisos. - [Trabajos (Jobs)](https://docs.camellapp.com/docs/handbook/dominio/jobs.md): Ciclo de vida de un trabajo, de la solicitud al cierre. - [Matching por score](https://docs.camellapp.com/docs/handbook/dominio/matching.md): Cómo se ordena el pool de camellos candidatos a un trabajo. - [Notificaciones](https://docs.camellapp.com/docs/handbook/dominio/notificaciones.md): Canales, tipos de evento y qué se degrada sin configurar. - [Testing](https://docs.camellapp.com/docs/handbook/guias/testing.md): Vitest, el setup compartido y qué queda fuera de cobertura. - [Añadir un endpoint](https://docs.camellapp.com/docs/handbook/guias/anadir-un-endpoint.md): Receta completa, del route handler a la documentación. - [Despliegue](https://docs.camellapp.com/docs/handbook/guias/despliegue.md): Cómo se construye y arranca la imagen de CamellApp. - [Flujo de trabajo y regla de docs](https://docs.camellapp.com/docs/handbook/contribuir/flujo-y-regla-de-docs.md): Cómo se documenta una feature y qué obliga a actualizar el handbook. - [Registrar usuario con email y password](https://docs.camellapp.com/api-reference/auth/registrar-usuario-con-email-y-password.md) - [Registrar prestador (usuario CAMELLOS + perfil Camello)](https://docs.camellapp.com/api-reference/auth/registrar-prestador-usuario-camellos-+-perfil-camello.md): Crea en una transaccion el usuario con rol CAMELLOS y su perfil de camello en estado PENDIENTE. Acepta multipart/form-data cuando se envia foto (campo `file`); en ese caso `trades` y `serviceIds` viajan como cadenas JSON. - [Pantalla/flujo de inicio de sesion NextAuth](https://docs.camellapp.com/api-reference/auth/pantallaflujo-de-inicio-de-sesion-nextauth.md) - [Obtener sesion actual](https://docs.camellapp.com/api-reference/auth/obtener-sesion-actual.md) - [Cerrar sesion](https://docs.camellapp.com/api-reference/auth/cerrar-sesion.md) - [Obtener perfil del usuario autenticado](https://docs.camellapp.com/api-reference/me/obtener-perfil-del-usuario-autenticado.md) - [Actualizar nombre y/o telefono](https://docs.camellapp.com/api-reference/me/actualizar-nombre-yo-telefono.md) - [Subir avatar (JPEG/PNG/WebP, max 2 MB)](https://docs.camellapp.com/api-reference/me/subir-avatar-jpegpngwebp-max-2-mb.md) - [Cambiar contraseña](https://docs.camellapp.com/api-reference/me/cambiar-contraseña.md) - [Listar camellos activos (publico)](https://docs.camellapp.com/api-reference/camellos/listar-camellos-activos-publico.md) - [Metadatos publicos (conteo, oficios, ciudades)](https://docs.camellapp.com/api-reference/camellos/metadatos-publicos-conteo-oficios-ciudades.md) - [Crear reseña de un camello (solo CLIENTES)](https://docs.camellapp.com/api-reference/camellos/crear-reseña-de-un-camello-solo-clientes.md) - [Listar categorias (publico)](https://docs.camellapp.com/api-reference/categories/listar-categorias-publico.md) - [Probe publico de liveness (DB)](https://docs.camellapp.com/api-reference/health/probe-publico-de-liveness-db.md): Sin autenticacion. Responde 200 si la base de datos responde y 503 si falla. No expone conteos, env ni rutas internas. - [Snapshot de salud del sistema](https://docs.camellapp.com/api-reference/health/snapshot-de-salud-del-sistema.md): Solo ADMIN. Mismo DTO que la pagina `/salud`: checks tecnicos, presencia de env (sin valores) y señales operativas. - [Interpretar una busqueda en lenguaje natural (publico)](https://docs.camellapp.com/api-reference/search/interpretar-una-busqueda-en-lenguaje-natural-publico.md): Traduce texto libre a categorias y servicios del catalogo. Aplica reglas locales y, si OPENAI_API_KEY esta configurada, un modelo; si nada coincide cae a un fallback por palabras clave. Limitado por IP. - [Listar usuarios (paginado)](https://docs.camellapp.com/api-reference/admin-users/listar-usuarios-paginado.md) - [Crear usuario](https://docs.camellapp.com/api-reference/admin-users/crear-usuario.md) - [Obtener usuario por ID](https://docs.camellapp.com/api-reference/admin-users/obtener-usuario-por-id.md) - [Eliminar usuario](https://docs.camellapp.com/api-reference/admin-users/eliminar-usuario.md) - [Actualizar usuario](https://docs.camellapp.com/api-reference/admin-users/actualizar-usuario.md) - [Actualizar solo el rol de usuario](https://docs.camellapp.com/api-reference/admin-users/actualizar-solo-el-rol-de-usuario.md) - [Listar servicios](https://docs.camellapp.com/api-reference/admin-services/listar-servicios.md) - [Crear servicio](https://docs.camellapp.com/api-reference/admin-services/crear-servicio.md) - [Eliminar servicio](https://docs.camellapp.com/api-reference/admin-services/eliminar-servicio.md) - [Actualizar servicio](https://docs.camellapp.com/api-reference/admin-services/actualizar-servicio.md) - [Listar categorias (con conteo de servicios)](https://docs.camellapp.com/api-reference/admin-categories/listar-categorias-con-conteo-de-servicios.md) - [Crear categoria](https://docs.camellapp.com/api-reference/admin-categories/crear-categoria.md) - [Eliminar categoria](https://docs.camellapp.com/api-reference/admin-categories/eliminar-categoria.md) - [Actualizar categoria](https://docs.camellapp.com/api-reference/admin-categories/actualizar-categoria.md) - [Listar camellos (admin)](https://docs.camellapp.com/api-reference/admin-camellos/listar-camellos-admin.md) - [Crear camello (JSON o multipart con foto)](https://docs.camellapp.com/api-reference/admin-camellos/crear-camello-json-o-multipart-con-foto.md) - [Obtener camello por ID](https://docs.camellapp.com/api-reference/admin-camellos/obtener-camello-por-id.md) - [Eliminar camello (hard delete)](https://docs.camellapp.com/api-reference/admin-camellos/eliminar-camello-hard-delete.md) - [Actualizar camello (JSON o multipart)](https://docs.camellapp.com/api-reference/admin-camellos/actualizar-camello-json-o-multipart.md) - [Listar trabajos del usuario autenticado](https://docs.camellapp.com/api-reference/jobs/listar-trabajos-del-usuario-autenticado.md) - [Crear solicitud de trabajo](https://docs.camellapp.com/api-reference/jobs/crear-solicitud-de-trabajo.md) - [Detalle de un trabajo visible para el usuario](https://docs.camellapp.com/api-reference/jobs/detalle-de-un-trabajo-visible-para-el-usuario.md) - [Camello acepta un trabajo pendiente](https://docs.camellapp.com/api-reference/jobs/camello-acepta-un-trabajo-pendiente.md) - [Camello rechaza un trabajo pendiente](https://docs.camellapp.com/api-reference/jobs/camello-rechaza-un-trabajo-pendiente.md) - [Marcar trabajo en progreso como completado](https://docs.camellapp.com/api-reference/jobs/marcar-trabajo-en-progreso-como-completado.md) - [Cancelar un trabajo no completado](https://docs.camellapp.com/api-reference/jobs/cancelar-un-trabajo-no-completado.md) - [Asignar un camello a un trabajo pendiente libre](https://docs.camellapp.com/api-reference/admin-jobs/asignar-un-camello-a-un-trabajo-pendiente-libre.md) - [Ranking de camellos candidatos para un trabajo](https://docs.camellapp.com/api-reference/admin-jobs/ranking-de-camellos-candidatos-para-un-trabajo.md) - [Listar inbox del usuario](https://docs.camellapp.com/api-reference/notifications/listar-inbox-del-usuario.md) - [Marcar notificacion como leida](https://docs.camellapp.com/api-reference/notifications/marcar-notificacion-como-leida.md) - [Marcar todas como leidas](https://docs.camellapp.com/api-reference/notifications/marcar-todas-como-leidas.md) - [Clave publica VAPID](https://docs.camellapp.com/api-reference/notifications/clave-publica-vapid.md) - [Guardar suscripcion Web Push](https://docs.camellapp.com/api-reference/notifications/guardar-suscripcion-web-push.md) - [Eliminar suscripcion Web Push](https://docs.camellapp.com/api-reference/notifications/eliminar-suscripcion-web-push.md) - [Preferencias de canal](https://docs.camellapp.com/api-reference/notifications/preferencias-de-canal.md) - [Actualizar preferencia de canal](https://docs.camellapp.com/api-reference/notifications/actualizar-preferencia-de-canal.md) - [Listar envios (deliveries)](https://docs.camellapp.com/api-reference/admin-notifications/listar-envios-deliveries.md) - [Obtener especificación OpenAPI (YAML)](https://docs.camellapp.com/api-reference/admin-meta/obtener-especificación-openapi-yaml.md) ## OpenAPI Specs - [openapi-auth](/docs/openapi-auth.yaml)