"use client"; import React, { useState } from "react"; import { cmsApi } from "@/lib/api"; import { RefreshCw, Database, Users, CheckCircle2, AlertCircle, Loader2 } from "lucide-react"; interface IntegrationsSectionProps { courseId: string; } export default function IntegrationsSection({ courseId }: IntegrationsSectionProps) { const [syncingAll, setSyncingAll] = useState(false); const [syncingStudents, setSyncingStudents] = useState(false); const [syncingAssignments, setSyncingAssignments] = useState(false); const [status, setStatus] = useState<{ type: 'success' | 'error', message: string } | null>(null); const handleSyncAll = async () => { setSyncingAll(true); setStatus(null); try { const result = await cmsApi.syncSamAll(); setStatus({ type: 'success', message: `Sincronización completa finalizada. Estudiantes: ${result.students_synced}, Asignaciones: ${result.assignments_synced}` }); } catch (err: any) { setStatus({ type: 'error', message: err.message || "Error al sincronizar con SAM" }); } finally { setSyncingAll(false); } }; const handleSyncStudents = async () => { setSyncingStudents(true); setStatus(null); try { const result = await cmsApi.syncSamStudents(); setStatus({ type: 'success', message: `Estudiantes sincronizados: ${result.students_synced}` }); } catch (err: any) { setStatus({ type: 'error', message: err.message || "Error al sincronizar estudiantes" }); } finally { setSyncingStudents(false); } }; const handleSyncAssignments = async () => { setSyncingAssignments(true); setStatus(null); try { const result = await cmsApi.syncSamAssignments(); setStatus({ type: 'success', message: `Asignaciones sincronizadas: ${result.assignments_synced}` }); } catch (err: any) { setStatus({ type: 'error', message: err.message || "Error al sincronizar asignaciones" }); } finally { setSyncingAssignments(false); } }; return (

Integraciones y Sincronización

Gestiona la conexión con sistemas externos (SAM y MySQL Legacy)

{/* SAM Integration Card */}

SAM (Sistema Académico)

Sincroniza la base de datos de estudiantes y las inscripciones a cursos desde el sistema SAM v3.

{/* MySQL Legacy Sync Card */}

MySQL Legacy Sync

Importación manual de contenidos y estructuras de cursos desde el sistema antiguo. ⚠️ Use con precaución: puede duplicar contenidos.

{status && (
{status.type === 'success' ? : }

{status.message}

)}
); }