import { useMutation, useQueryClient } from '@tanstack/react-query'
import { assignPermisos } from '../api/assignPermisos'
import { permisosQueryKey } from './usePermisos'
import { rolPermisosQueryKey } from './useRolPermisos'
import type { AssignPermisosRequest } from '../api/types'

interface AssignPermisosVariables {
  rolCodigo: string
  payload: AssignPermisosRequest
}

export function useAssignPermisos() {
  const queryClient = useQueryClient()

  return useMutation({
    mutationFn: ({ rolCodigo, payload }: AssignPermisosVariables) =>
      assignPermisos(rolCodigo, payload),
    onSuccess: (_data, { rolCodigo }) => {
      void queryClient.invalidateQueries({ queryKey: permisosQueryKey })
      void queryClient.invalidateQueries({ queryKey: rolPermisosQueryKey(rolCodigo) })
    },
  })
}
