- ✅ Ticket 1.1: Estructura Clean Architecture en backend - ✅ Ticket 1.2: Schemas Zod compartidos - ✅ Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares) - ✅ Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares) - ✅ Ticket 1.5: Eliminación de duplicidades (~50 líneas) Cambios principales: - Creada estructura Clean Architecture en backend/src/ - Schemas Zod compartidos en backend/src/shared/schemas/ - Refactorización modular de drugs y procedures - Utilidades genéricas en src/utils/ (filter, validation) - Eliminados scripts obsoletos y documentación antigua - Corregidos errores: QueryClient, import test-error-handling - Build verificado y funcionando correctamente
2 lines
2.5 KiB
JavaScript
2 lines
2.5 KiB
JavaScript
import{r as d,b5 as l,Q as c,j as e,a as m,a0 as x}from"./0-vendor-react-DWOJpYrt.js";import{h as p}from"./page-farmacos-oJNXc_A2.js";import{G as u}from"./index-BC9VFTAD.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";import"./page-comunicacion-DmHQUHoW.js";import"./page-ajustes-DgawOEJM.js";import"./page-herramientas-BzovIToK.js";import"./page-index-DvnG8OQi.js";import"./page-notfound-CX_Wllnx.js";const a=d.memo(({guide:s})=>{const o=l[s.icono]||c,n=t=>{t.preventDefault(),t.stopPropagation();const i=`/scorm/dist/${s.id}-scorm-1.2.zip`,r=document.createElement("a");r.href=i,r.download=`${s.id}-scorm-1.2.zip`,document.body.appendChild(r),r.click(),document.body.removeChild(r)};return e.jsx(m,{to:`/guia-refuerzo/${s.id}`,className:"block bg-card border border-border rounded-xl p-6 hover:border-primary/50 transition-colors",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"w-12 h-12 rounded-lg bg-primary/20 flex items-center justify-center flex-shrink-0",children:e.jsx(o,{className:"w-6 h-6 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2 flex-wrap",children:[e.jsx("h3",{className:"font-semibold text-foreground text-lg",children:s.titulo}),e.jsx(u,{})]}),e.jsx("p",{className:"text-muted-foreground text-sm mb-3",children:s.descripcion}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:e.jsxs("span",{children:[s.secciones.length," secciones"]})}),s.scormAvailable&&e.jsxs("button",{onClick:n,className:"flex items-center gap-2 px-3 py-1.5 text-xs font-medium bg-blue-500/10 hover:bg-blue-500/20 text-blue-600 dark:text-blue-400 border border-blue-500/30 rounded-lg transition-colors",title:"Descargar paquete SCORM para LMS",children:[e.jsx(x,{className:"w-3 h-3"}),e.jsx("span",{children:"SCORM"})]})]})]})]})})});a.displayName="GuideCard";const k=()=>{const s=p();return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-foreground mb-2",children:"Guías de Refuerzo"}),e.jsx("p",{className:"text-muted-foreground",children:"Contenido formativo para comprensión profunda de protocolos y procedimientos"})]}),e.jsx("div",{className:"space-y-4",children:s.map(o=>e.jsx(a,{guide:o},o.id))}),s.length===0&&e.jsx("div",{className:"text-center py-12",children:e.jsx("p",{className:"text-muted-foreground",children:"No hay guías disponibles"})})]})};export{k as default};
|