import * as Icons from 'lucide-react' import type { NewSubjectWizardState } from '@/features/asignaturas/nueva/types' import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card' import { usePlan, useSubjectEstructuras } from '@/data' import { formatFileSize } from '@/features/planes/utils/format-file-size' export function PasoResumenCard({ wizard }: { wizard: NewSubjectWizardState }) { const { data: plan } = usePlan(wizard.plan_estudio_id) const { data: estructuras } = useSubjectEstructuras() const estructuraNombre = (() => { const estructuraId = wizard.datosBasicos.estructuraId if (!estructuraId) return '—' const hit = estructuras?.find((e) => e.id === estructuraId) return hit?.nombre ?? estructuraId })() const modoLabel = (() => { if (wizard.tipoOrigen === 'MANUAL') return 'Manual (Vacía)' if (wizard.tipoOrigen === 'IA') return 'Generada con IA' if (wizard.tipoOrigen === 'CLONADO_INTERNO') return 'Clonada (Sistema)' if (wizard.tipoOrigen === 'CLONADO_TRADICIONAL') return 'Clonada (Archivo)' return '—' })() const creditosText = typeof wizard.datosBasicos.creditos === 'number' && Number.isFinite(wizard.datosBasicos.creditos) ? wizard.datosBasicos.creditos.toFixed(2) : '—' const archivosRef = wizard.iaConfig?.archivosReferencia ?? [] const repositoriosRef = wizard.iaConfig?.repositoriosReferencia ?? [] const adjuntos = wizard.iaConfig?.archivosAdjuntos ?? [] return ( Resumen de creación Verifica los datos antes de crear la asignatura.
Plan de estudios: {plan?.nombre || wizard.plan_estudio_id || '—'}
{plan?.carreras?.nombre ? (
Carrera: {plan.carreras.nombre}
) : null}
Tipo de origen: {wizard.tipoOrigen === 'MANUAL' && ( )} {wizard.tipoOrigen === 'IA' && ( )} {(wizard.tipoOrigen === 'CLONADO_INTERNO' || wizard.tipoOrigen === 'CLONADO_TRADICIONAL') && ( )} {modoLabel}
Nombre: {wizard.datosBasicos.nombre || '—'}
Código: {wizard.datosBasicos.codigo || '—'}
Tipo: {wizard.datosBasicos.tipo || '—'}
Créditos: {creditosText}
Estructura: {estructuraNombre}
Horas académicas: {wizard.datosBasicos.horasAcademicas ?? '—'}
Horas independientes:{' '} {wizard.datosBasicos.horasIndependientes ?? '—'}
Configuración IA
Enfoque académico:{' '} {wizard.iaConfig?.descripcionEnfoqueAcademico || '—'}
Instrucciones adicionales:{' '} {wizard.iaConfig?.instruccionesAdicionalesIA || '—'}
Archivos de referencia
{archivosRef.length ? (
    {archivosRef.map((id) => (
  • {id}
  • ))}
) : (
)}
Repositorios de referencia
{repositoriosRef.length ? (
    {repositoriosRef.map((id) => (
  • {id}
  • ))}
) : (
)}
Archivos adjuntos
{adjuntos.length ? (
    {adjuntos.map((f) => (
  • {f.file.name}{' '} · {formatFileSize(f.file.size)}
  • ))}
) : (
)}
) }