Se resuelve conflicto en plnas.api.ts
This commit is contained in:
@@ -18,7 +18,7 @@ import type { UploadedFile } from '@/components/planes/wizard/PasoDetallesPanel/
|
|||||||
|
|
||||||
const EDGE = {
|
const EDGE = {
|
||||||
plans_create_manual: 'plans_create_manual',
|
plans_create_manual: 'plans_create_manual',
|
||||||
ai_generate_plan: 'ai_generate_plan',
|
ai_generate_plan: 'ai-generate-plan',
|
||||||
plans_persist_from_ai: 'plans_persist_from_ai',
|
plans_persist_from_ai: 'plans_persist_from_ai',
|
||||||
plans_clone_from_existing: 'plans_clone_from_existing',
|
plans_clone_from_existing: 'plans_clone_from_existing',
|
||||||
|
|
||||||
@@ -213,10 +213,10 @@ export type AIGeneratePlanInput = {
|
|||||||
nivel: string
|
nivel: string
|
||||||
tipoCiclo: TipoCiclo
|
tipoCiclo: TipoCiclo
|
||||||
numCiclos: number
|
numCiclos: number
|
||||||
|
estructuraPlanId: UUID
|
||||||
}
|
}
|
||||||
iaConfig: {
|
iaConfig: {
|
||||||
descripcionEnfoque: string
|
descripcionEnfoque: string
|
||||||
poblacionObjetivo?: string
|
|
||||||
notasAdicionales?: string
|
notasAdicionales?: string
|
||||||
archivosReferencia?: Array<UUID>
|
archivosReferencia?: Array<UUID>
|
||||||
repositoriosIds?: Array<UUID>
|
repositoriosIds?: Array<UUID>
|
||||||
@@ -228,7 +228,27 @@ export type AIGeneratePlanInput = {
|
|||||||
export async function ai_generate_plan(
|
export async function ai_generate_plan(
|
||||||
input: AIGeneratePlanInput,
|
input: AIGeneratePlanInput,
|
||||||
): Promise<any> {
|
): Promise<any> {
|
||||||
return invokeEdge<any>(EDGE.ai_generate_plan, input)
|
console.log('input ai generate', input)
|
||||||
|
|
||||||
|
const edgeFunctionBody = new FormData()
|
||||||
|
edgeFunctionBody.append('datosBasicos', JSON.stringify(input.datosBasicos))
|
||||||
|
edgeFunctionBody.append(
|
||||||
|
'iaConfig',
|
||||||
|
JSON.stringify({
|
||||||
|
...input.iaConfig,
|
||||||
|
archivosAdjuntos: undefined, // los manejamos aparte
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
input.iaConfig.archivosAdjuntos.forEach((file, index) => {
|
||||||
|
edgeFunctionBody.append(`archivosAdjuntos`, file.file)
|
||||||
|
})
|
||||||
|
|
||||||
|
return invokeEdge<any>(
|
||||||
|
EDGE.ai_generate_plan,
|
||||||
|
edgeFunctionBody,
|
||||||
|
undefined,
|
||||||
|
supabaseBrowser(),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function plans_persist_from_ai(payload: {
|
export async function plans_persist_from_ai(payload: {
|
||||||
|
|||||||
@@ -161,12 +161,9 @@ function MapaCurricularPage() {
|
|||||||
const { planId } = Route.useParams() // Idealmente usa el ID de la ruta
|
const { planId } = Route.useParams() // Idealmente usa el ID de la ruta
|
||||||
|
|
||||||
// 1. Fetch de Datos
|
// 1. Fetch de Datos
|
||||||
const { data: asignaturasApi, isLoading: loadingAsig } = usePlanAsignaturas(
|
const { data: asignaturasApi, isLoading: loadingAsig } =
|
||||||
/* planId*/ '0e0aea4d-b8b4-4e75-8279-6224c3ac769f',
|
usePlanAsignaturas(planId)
|
||||||
)
|
const { data: lineasApi, isLoading: loadingLineas } = usePlanLineas(planId)
|
||||||
const { data: lineasApi, isLoading: loadingLineas } = usePlanLineas(
|
|
||||||
/* planId*/ '0e0aea4d-b8b4-4e75-8279-6224c3ac769f',
|
|
||||||
)
|
|
||||||
|
|
||||||
// 2. Estado Local (Para interactividad)
|
// 2. Estado Local (Para interactividad)
|
||||||
const [materias, setMaterias] = useState<Array<Materia>>([])
|
const [materias, setMaterias] = useState<Array<Materia>>([])
|
||||||
|
|||||||
@@ -71,12 +71,9 @@ function MateriasPage() {
|
|||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
|
|
||||||
// 1. Fetch de datos reales
|
// 1. Fetch de datos reales
|
||||||
const { data: asignaturasApi, isLoading: loadingAsig } = usePlanAsignaturas(
|
const { data: asignaturasApi, isLoading: loadingAsig } =
|
||||||
'0e0aea4d-b8b4-4e75-8279-6224c3ac769f',
|
usePlanAsignaturas(planId)
|
||||||
)
|
const { data: lineasApi, isLoading: loadingLineas } = usePlanLineas(planId)
|
||||||
const { data: lineasApi, isLoading: loadingLineas } = usePlanLineas(
|
|
||||||
'0e0aea4d-b8b4-4e75-8279-6224c3ac769f',
|
|
||||||
)
|
|
||||||
|
|
||||||
// 2. Estados de filtrado
|
// 2. Estados de filtrado
|
||||||
const [searchTerm, setSearchTerm] = useState('')
|
const [searchTerm, setSearchTerm] = useState('')
|
||||||
@@ -232,7 +229,7 @@ function MateriasPage() {
|
|||||||
to: '/planes/$planId/asignaturas/$asignaturaId',
|
to: '/planes/$planId/asignaturas/$asignaturaId',
|
||||||
params: {
|
params: {
|
||||||
planId,
|
planId,
|
||||||
asignaturaId: 'asignatura', // 👈 puede ser índice, consecutivo o slug
|
asignaturaId: materia.id, // 👈 puede ser índice, consecutivo o slug
|
||||||
},
|
},
|
||||||
state: {
|
state: {
|
||||||
realId: materia.id, // 👈 ID largo oculto
|
realId: materia.id, // 👈 ID largo oculto
|
||||||
|
|||||||
Reference in New Issue
Block a user