Persistencia en columnas de plan fix #113
This commit is contained in:
@@ -130,12 +130,19 @@ export async function get_chat_history(conversacionId: string) {
|
||||
return data // Retorna Array de mensajes
|
||||
}
|
||||
|
||||
export async function archive_conversation(conversacionId: string) {
|
||||
export async function update_conversation_status(
|
||||
conversacionId: string,
|
||||
nuevoEstado: 'ARCHIVADA' | 'ACTIVA',
|
||||
) {
|
||||
const supabase = supabaseBrowser()
|
||||
const { data, error } = await supabase.functions.invoke(
|
||||
`create-chat-conversation/conversations/${conversacionId}/archive`,
|
||||
{ method: 'DELETE' },
|
||||
)
|
||||
|
||||
const { data, error } = await supabase
|
||||
.from('conversaciones_plan') // Asegúrate que el nombre de la tabla sea exacto
|
||||
.update({ estado: nuevoEstado })
|
||||
.eq('id', conversacionId)
|
||||
.select()
|
||||
.single()
|
||||
|
||||
if (error) throw error
|
||||
return data
|
||||
}
|
||||
@@ -168,8 +175,9 @@ export async function getConversationByPlan(planId: string) {
|
||||
.from('conversaciones_plan')
|
||||
.select('*')
|
||||
.eq('plan_estudio_id', planId)
|
||||
.order('creado_en', { ascending: true })
|
||||
.order('creado_en', { ascending: false })
|
||||
if (error) throw error
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
return data ?? []
|
||||
}
|
||||
|
||||
@@ -5,13 +5,16 @@ import {
|
||||
ai_plan_improve,
|
||||
ai_subject_chat,
|
||||
ai_subject_improve,
|
||||
archive_conversation,
|
||||
create_conversation,
|
||||
get_chat_history,
|
||||
getConversationByPlan,
|
||||
library_search,
|
||||
update_conversation_status,
|
||||
} from '../api/ai.api'
|
||||
|
||||
// eslint-disable-next-line node/prefer-node-protocol
|
||||
import type { UUID } from 'crypto'
|
||||
|
||||
export function useAIPlanImprove() {
|
||||
return useMutation({ mutationFn: ai_plan_improve })
|
||||
}
|
||||
@@ -62,13 +65,20 @@ export function useChatHistory(conversacionId?: string) {
|
||||
})
|
||||
}
|
||||
|
||||
export function useArchiveConversation() {
|
||||
const queryClient = useQueryClient()
|
||||
export function useUpdateConversationStatus() {
|
||||
const qc = useQueryClient()
|
||||
|
||||
return useMutation({
|
||||
mutationFn: (id: string) => archive_conversation(id),
|
||||
mutationFn: ({
|
||||
id,
|
||||
estado,
|
||||
}: {
|
||||
id: string
|
||||
estado: 'ARCHIVADA' | 'ACTIVA'
|
||||
}) => update_conversation_status(id, estado),
|
||||
onSuccess: () => {
|
||||
// Opcional: limpiar datos viejos de la caché
|
||||
queryClient.invalidateQueries({ queryKey: ['chat-history'] })
|
||||
// Esto refresca las listas automáticamente
|
||||
qc.invalidateQueries({ queryKey: ['conversation-by-plan'] })
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user