{"info":{"_postman_id":"d0aae761-6651-474b-85ff-af970d5c081d","name":"Asterium API","description":"<html><head></head><body><p>API para gestionar usuarios y descubrimientos astronómicos.  </p>\n<p>Incluye autenticación JWT y roles (admin y user).</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"46421564","collectionId":"d0aae761-6651-474b-85ff-af970d5c081d","publishedId":"2sB3QNqU8X","public":true,"customColor":{"top-bar":"0B0F24","right-sidebar":"1A1D2E","highlight":"FF6C37"},"publishDate":"2025-10-16T10:48:07.000Z"},"item":[{"name":"Registrar usuario","id":"b0d71dbe-006d-4b98-af3f-f93e42474bf4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"astroUser@mail.com\",\r\n  \"username\": \"astroUser\",\r\n  \"password\": \"12345678\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/auth/register","description":"<h3 id=\"📘-registrar-usuario\">📘 Registrar usuario</h3>\n<p>Crea un nuevo usuario dentro del sistema Asterium.</p>\n<p><strong>Método:</strong> <code>POST</code><br /><strong>URL:</strong> <code>/auth/register</code></p>\n<hr />\n<h4 id=\"🔸-body-json\">🔸 Body (JSON)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"email\": \"astroUser@mail.com\",\n  \"username\": \"astroUser\",\n  \"password\": \"12345678\"\n}\n\n</code></pre><hr />\n<h4 id=\"🔹-respuesta-esperada-201-created\">🔹 Respuesta esperada (201 Created)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"user\": {\n    \"id\": 1,\n    \"email\": \"astroUser@mail.com\",\n    \"username\": \"astroUser\"\n  }\n}\n\n</code></pre><hr />\n<h4 id=\"🔸-errores-posibles\">🔸 Errores posibles</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Causa</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>VALIDATION_ERROR</td>\n<td>Datos inválidos (por ejemplo, email mal formado).</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Conflict</td>\n<td>El email ya está registrado.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servidor.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"🧠-notas\">🧠 Notas</h4>\n<ul>\n<li><p>No requiere autenticación (<code>Auth: none</code>).</p>\n</li>\n<li><p>El token devuelto deberá usarse para acceder a rutas protegidas (<code>Bearer Token</code>).</p>\n</li>\n<li><p>La contraseña debe tener al menos <strong>8 caracteres</strong>.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"🌠-ejemplo-visual\">🌠 Ejemplo visual</h3>\n<p>📍 <em>Usa esta petición como primer paso antes de probar login o creación de descubrimientos.</em></p>\n","urlObject":{"path":["auth","register"],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"b0d71dbe-006d-4b98-af3f-f93e42474bf4"},{"name":"Login","id":"21532309-7327-4e50-8845-c12448f5c758","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"astroUser@mail.com\",\r\n  \"password\": \"12345678\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/auth/login","description":"<p>StartFragment</p>\n<h2 id=\"🌙-iniciar-sesión-login\">🌙 Iniciar sesión (Login)</h2>\n<p>Permite al usuario autenticarse en el sistema y obtener un <strong>token JWT</strong> para acceder a rutas protegidas.</p>\n<p><strong>Método:</strong> <code>POST</code><br /><strong>URL:</strong> <code>/auth/login</code></p>\n<hr />\n<h3 id=\"🔸-body-json\">🔸 Body (JSON)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"email\": \"astroUser@mail.com\",\n  \"password\": \"12345678\"\n}\n\n</code></pre><hr />\n<h3 id=\"🔹-respuesta-esperada-200-ok\">🔹 Respuesta esperada (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n}\n\n</code></pre><hr />\n<h3 id=\"🔸-errores-posibles\">🔸 Errores posibles</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Causa</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>VALIDATION_ERROR</td>\n<td>Datos inválidos (por ejemplo, formato de email incorrecto).</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Email o contraseña incorrectos.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servidor.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"🧠-notas\">🧠 Notas</h3>\n<ul>\n<li><p>No requiere autenticación (<code>Auth: none</code>).</p>\n</li>\n<li><p>El <strong>token</strong> devuelto se usará en las cabeceras <code>Authorization: Bearer</code> para rutas protegidas.</p>\n</li>\n<li><p>El token tiene un tiempo de expiración configurado en el backend.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"🌠-ejemplo-visual\">🌠 Ejemplo visual</h3>\n<p>📍 <em>Usa esta petición justo después de registrarte, para obtener tu token de acceso.</em></p>\n<p>EndFragment</p>\n","urlObject":{"path":["auth","login"],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"21532309-7327-4e50-8845-c12448f5c758"},{"name":"Listar descubrimientos","id":"162b5579-39be-48f6-a746-09b58af246ca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"/asterium","description":"<p>StartFragment</p>\n<h2 id=\"🌌-listar-descubrimientos\">🌌 Listar descubrimientos</h2>\n<p>Devuelve una lista con todos los descubrimientos <strong>publicados</strong> por los usuarios.</p>\n<p>Solo pueden acceder los usuarios autenticados (con token JWT válido).</p>\n<p><strong>Método:</strong> <code>GET</code><br /><strong>Ruta:</strong> <code>/asterium</code><br /><strong>Autenticación:</strong> ✅ <code>Bearer Token</code></p>\n<hr />\n<h3 id=\"🔹-ejemplo-de-respuesta-200-ok\">🔹 Ejemplo de respuesta (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": 5,\n        \"author_id\": 8,\n        \"title\": \"Descubrimiento de celulas\",\n        \"slug\": \"exoplaneta-003\",\n        \"excerpt\": null,\n        \"content_md\": \"Se encontró un nuevo celulas 🌍\",\n        \"status\": \"published\",\n        \"published_at\": \"2025-09-30T15:27:08.000Z\",\n        \"like_count\": 0,\n        \"created_at\": \"2025-09-30T15:27:08.000Z\",\n        \"updated_at\": \"2025-09-30T15:27:08.000Z\"\n    },\n    {\n        \"id\": 4,\n        \"author_id\": 8,\n        \"title\": \"Descubrimiento de Matt\",\n        \"slug\": \"matt-002\",\n        \"excerpt\": null,\n        \"content_md\": \"Se encontró un nuevo Matt 🌍\",\n        \"status\": \"published\",\n        \"published_at\": \"2025-09-30T14:59:26.000Z\",\n        \"like_count\": 0,\n        \"created_at\": \"2025-09-30T14:59:26.000Z\",\n        \"updated_at\": \"2025-09-30T14:59:26.000Z\"\n    }\n]\n\n</code></pre><hr />\n<h3 id=\"🔸-errores-posibles\">🔸 Errores posibles</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Causa</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>No se ha enviado token o es inválido.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>El usuario no tiene permisos.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servidor.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"🧠-notas\">🧠 Notas</h3>\n<ul>\n<li><p>Solo devuelve descubrimientos con estado <code>\"published\"</code>.</p>\n</li>\n<li><p>Incluye información del autor (<code>username</code>, <code>email</code>).</p>\n</li>\n<li><p>Se recomienda usar esta petición antes de consultar un descubrimiento individual.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"🌠-ejemplo-visual\">🌠 Ejemplo visual</h3>\n<p>📍 <em>Muestra todos los descubrimientos visibles del sistema, ordenados por fecha de publicación.</em></p>\n<p>EndFragment</p>\n","urlObject":{"path":["asterium"],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"162b5579-39be-48f6-a746-09b58af246ca"},{"name":"Lista por ID","id":"d5b32d6f-fb50-46f6-bd86-5cb0cd70090e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"/asterium/","description":"<p>StartFragment</p>\n<p>🌌 <strong>Detalle de descubrimiento</strong></p>\n<p>Devuelve la información detallada de un descubrimiento según su ID.</p>\n<p><strong>Método:</strong> GET<br /><strong>URL:</strong> <code>/asterium/:id</code></p>\n<p>🔹 <strong>Respuesta esperada (200 OK)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": 5,\n    \"author_id\": 8,\n    \"title\": \"Descubrimiento de celulas\",\n    \"slug\": \"exoplaneta-003\",\n    \"excerpt\": null,\n    \"content_md\": \"Se encontró un nuevo celulas 🌍\",\n    \"status\": \"published\",\n    \"published_at\": \"2025-09-30T15:27:08.000Z\",\n    \"like_count\": 0,\n    \"created_at\": \"2025-09-30T15:27:08.000Z\",\n    \"updated_at\": \"2025-09-30T15:27:08.000Z\",\n    \"author\": {\n        \"id\": 8,\n        \"username\": \"mar1234\",\n        \"email\": \"mar@test.com\"\n    }\n}\n\n</code></pre><p>🔸 <strong>Errores posibles</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Causa</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>No existe el descubrimiento.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Token no válido o ausente.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🧠 <strong>Notas</strong></p>\n<ul>\n<li><p>Requiere autenticación.</p>\n</li>\n<li><p>Se usa cuando el usuario hace clic en un elemento para ver su detalle.</p>\n</li>\n</ul>\n<p>🌠 <strong>Ejemplo visual</strong></p>\n<p>📍 Usa este endpoint en la vista “detalle” del frontend.</p>\n<p>EndFragment</p>\n","urlObject":{"path":["asterium",""],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"d5b32d6f-fb50-46f6-bd86-5cb0cd70090e"},{"name":"Crear descubrimiento","id":"0315e45f-aa47-412a-824d-c0bc84bd47ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"title\": \"Descubrimiento de exoplanetas\",\r\n  \"slug\": \"exoplaneta-007\",\r\n  \"content_md\": \"Se encontró nuevos exoplanetas 🌍\",\r\n  \"status\": \"draft\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/asterium","description":"<p>StartFragment</p>\n<p>🌌 <strong>Crear descubrimiento</strong></p>\n<p>Crea un nuevo descubrimiento en la base de datos.</p>\n<p>Solo disponible para usuarios autenticados.</p>\n<p><strong>Método:</strong> POST<br /><strong>URL:</strong> <code>/asterium</code></p>\n<p>🔹 <strong>Respuesta esperada (201 Created)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"title\": \"Descubrimiento de exoplanetas\",\n  \"slug\": \"exoplaneta-007\",\n  \"content_md\": \"Se encontró nuevos exoplanetas 🌍\",\n  \"status\": \"draft\"\n}\n\n</code></pre><p>🔸 <strong>Errores posibles</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Causa</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>VALIDATION_ERROR</td>\n<td>Datos incompletos o inválidos.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Token inválido o ausente.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🧠 <strong>Notas</strong></p>\n<ul>\n<li><p>Requiere <strong>Auth: Bearer Token</strong>.</p>\n</li>\n<li><p>Verifica que los campos requeridos estén completos.</p>\n</li>\n</ul>\n<p>🌠 <strong>Ejemplo visual</strong></p>\n<p>📍 Usa este endpoint después de iniciar sesión para crear un nuevo descubrimiento.</p>\n<p>EndFragment</p>\n","urlObject":{"path":["asterium"],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"0315e45f-aa47-412a-824d-c0bc84bd47ff"},{"name":"Actualizar descubrimiento","id":"87ac3829-ad62-4e6c-b11f-a7cac1167b1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"title\": \"Descubrimiento de exoplanetas raras\",\r\n  \"slug\": \"exoplaneta-007\",\r\n  \"content_md\": \"Se encontró nuevos exoplanetas 🌍\",\r\n  \"status\": \"draft\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/asterium/","description":"<p>StartFragment</p>\n<p>🌌 <strong>Actualizar descubrimiento</strong></p>\n<p>Modifica los campos de un descubrimiento existente.</p>\n<p>Solo el autor o un administrador pueden hacerlo.</p>\n<p><strong>Método:</strong> PUT<br /><strong>URL:</strong> <code>/asterium/:id</code></p>\n<p>🔹 <strong>Respuesta esperada (200 OK)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": 12,\n    \"author_id\": 15,\n    \"title\": \"Descubrimiento de exoplanetas raras\",\n    \"slug\": \"exoplaneta-007\",\n    \"excerpt\": null,\n    \"content_md\": \"Se encontró nuevos exoplanetas 🌍\",\n    \"status\": \"draft\",\n    \"published_at\": null,\n    \"like_count\": 0,\n    \"created_at\": \"2025-10-07T15:03:01.000Z\",\n    \"updated_at\": \"2025-10-07T15:15:27.091Z\"\n}\n\n</code></pre><p>🔸 <strong>Errores posibles</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Causa</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>No tiene permisos para editar.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>El descubrimiento no existe.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🧠 <strong>Notas</strong></p>\n<ul>\n<li><p>Requiere autenticación.</p>\n</li>\n<li><p>Solo el creador o un admin puede editar.</p>\n</li>\n</ul>\n<p>🌠 <strong>Ejemplo visual</strong></p>\n<p>📍 Usa este endpoint para actualizar información en la vista de edición.</p>\n<p>EndFragment</p>\n","urlObject":{"path":["asterium",""],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"87ac3829-ad62-4e6c-b11f-a7cac1167b1b"},{"name":"Eliminar descubrimiento","id":"89ee94b1-d2d8-4fa2-9f2f-882fee702d30","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"/asterium/","description":"<p>StartFragment</p>\n<p>🌌 <strong>Eliminar descubrimiento</strong></p>\n<p>Elimina definitivamente un descubrimiento del sistema.</p>\n<p><strong>Método:</strong> DELETE<br /><strong>URL:</strong> <code>/asterium/:id</code></p>\n<p>🔹 <strong>Respuesta esperada (200 OK)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"message\": \"Descubrimiento eliminado correctamente.\"\n}\n\n</code></pre><p>🔸 <strong>Errores posibles</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Causa</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>No se encontró el descubrimiento.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>El usuario no tiene permisos.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🧠 <strong>Notas</strong></p>\n<ul>\n<li><p>Requiere autenticación.</p>\n</li>\n<li><p>Solo el autor o el admin puede eliminarlo.</p>\n</li>\n</ul>\n<p>🌠 <strong>Ejemplo visual</strong>  </p>\n<p>📍 Usa este endpoint para eliminar un registro desde el panel de administración.</p>\n<p>EndFragment</p>\n","urlObject":{"path":["asterium",""],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"89ee94b1-d2d8-4fa2-9f2f-882fee702d30"},{"name":"Promover usuario o administrador","id":"557ee19e-d561-4d2f-84d0-01aaf814257d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer ","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"mattwos@test.com\",\r\n    \"password\": \"mattwos123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/auth/promote/","description":"<p>🛡️ Promover usuario a administrador</p>\n<p>Permite que un usuario con rol de administrador cambie el rol de otro usuario a \"admin\".</p>\n<p>🔹 Método:<br />PUT</p>\n<p>🔹 URL:<br />/auth/promote/:id</p>\n<p>🔸 Requiere autenticación (Auth: Bearer Token de un admin)</p>\n<p>🔹 Ejemplo de solicitud:<br />PUT /auth/promote/3</p>\n<p>🔹 Encabezados (Headers)<br />Key | Value<br />------------------ | --------------------------------------<br />Content-Type | application/json<br />Authorization | Bearer </p>\n<p>🔹 Cuerpo (Body)<br />No requiere cuerpo en la solicitud (vacío).</p>\n<p>🔹 Respuesta esperada (200 OK)<br />{<br />\"message\": \"Usuario promovido a admin\",<br />\"id\": 1<br />}</p>\n<p>🔹 Errores posibles<br />Código | Causa | Descripción<br />-------|--------|-------------<br />401 | Unauthorized | Token inválido o ausente.<br />403 | Forbidden | El usuario autenticado no es admin.<br />404 | Not Found | Usuario con ese ID no encontrado.<br />500 | Server Error | Error interno del servidor.</p>\n<p>🌠 Ejemplo visual<br />📍 Usa esta ruta para asignar privilegios de administrador a otro usuario dentro del sistema.</p>\n","urlObject":{"path":["auth","promote",""],"host":[""],"query":[{"disabled":true,"key":"","value":null}],"variable":[]}},"response":[],"_postman_id":"557ee19e-d561-4d2f-84d0-01aaf814257d"},{"name":"Listar descubrimientos eliminados (solo admins)","id":"f4fdb3d5-75b5-4b69-9c39-229d4a8db300","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:4000/admin/deleted","description":"<p>StartFragment</p>\n<p><strong>Descripción:</strong>  </p>\n<p>Devuelve todos los descubrimientos que fueron marcados como eliminados mediante <em>soft delete</em>.  </p>\n<p>Incluye los campos <code>id</code>, <code>title</code>, <code>status</code> y <code>deleted_at</code>.</p>\n<p><strong>Autenticación:</strong> JWT válido (<code>admin</code>).</p>\n<hr />\n<p><strong>💡 Ejemplo de petición:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET http://localhost:4000/admin/deleted\nAuthorization: Bearer &lt;tu_token_admin&gt;\n\n</code></pre><p><strong>Ejemplo de respuesta (200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n  {\n    \"id\": 11,\n    \"title\": \"Nebulosa Aeterna\",\n    \"status\": \"published\",\n    \"deleted_at\": \"2025-10-16T03:03:00.000Z\"\n  },\n  {\n    \"id\": 12,\n    \"title\": \"Exoplaneta N-42\",\n    \"status\": \"draft\",\n    \"deleted_at\": \"2025-10-16T04:12:00.000Z\"\n  }\n]\n\n</code></pre><blockquote>\n</blockquote>\n<p>Si no hay registros eliminados, se devuelve un arreglo vacío <code>[]</code>.</p>\n<p>EndFragment</p>\n","urlObject":{"protocol":"http","port":"4000","path":["admin","deleted"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"f4fdb3d5-75b5-4b69-9c39-229d4a8db300"},{"name":"Ver un descubrimiento eliminado por ID","id":"e2e98a0a-47fc-4e32-84db-11369fd06bfa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:4000/admin/deleted/11","description":"<p>StartFragment</p>\n<p><strong>Descripción:</strong>  </p>\n<p>Permite consultar el detalle de un descubrimiento que fue eliminado,  </p>\n<p>útil para verificar antes de restaurar.</p>\n<p><strong>Autenticación:</strong> JWT válido (<code>admin</code>).</p>\n<hr />\n<p><strong>💡 Ejemplo de petición:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET http://localhost:4000/admin/deleted/11\nAuthorization: Bearer &lt;tu_token_admin&gt;\n\n</code></pre><p><strong>Ejemplo de respuesta (200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"id\": 11,\n  \"title\": \"Nebulosa Aeterna\",\n  \"excerpt\": \"Una vasta nube interestelar que brilla con tonos violáceos.\",\n  \"status\": \"published\",\n  \"deleted_at\": \"2025-10-16T03:03:00.000Z\"\n}\n\n</code></pre><blockquote>\n</blockquote>\n<p>Si el ID no existe o el descubrimiento no está eliminado, se devuelve:<br /><code>404 Not Found</code> con el mensaje <code>\"Descubrimiento no encontrado o no eliminado.\"</code></p>\n<p>EndFragment</p>\n","urlObject":{"protocol":"http","port":"4000","path":["admin","deleted","11"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"e2e98a0a-47fc-4e32-84db-11369fd06bfa"}],"event":[{"listen":"prerequest","script":{"id":"06bab6b0-4bec-489d-9ff6-69137486c05a","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"2ec40939-bab4-471d-9428-2af42d4b1cb5","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"base_url","value":""},{"key":"token","value":""},{"key":"user_id","value":""},{"key":"asterium_id","value":""}]}