'use server';

// import { safeFetchApi } from '@/lib';
import { refreshApi } from '@/lib/refreshApi'; // Importa la nueva instancia
import { cookies } from 'next/headers';
import { logoutResponseSchema } from '../schemas/logout';

export const logoutAction = async (user_id: string) => {
  try {
    const response = await refreshApi.post('/auth/sign-out', { user_id });

    const parsed = logoutResponseSchema.safeParse(response.data);

    if (!parsed.success) {
      console.error('Error de validación en la respuesta de refresh token:', {
        errors: parsed.error.errors,
        receivedData: response.data,
      });
      return null;
    }

    return parsed.data;
  } catch (error: any) { // Captura el error para acceso a error.response
    console.error('Error al cerrar sesion:', error.response?.data || error.message);
    return null;
  }


  // const payload = { user_id };
  // const [error, data] = await safeFetchApi(
  //   logoutResponseSchema,
  //   '/auth/sign-out',
  //   'POST',
  //   payload,
  // );

  // if (error) {
  //   console.error('Error:', error);
  //   // Devuelve un objeto con la propiedad 'type' para que el callback de NextAuth lo reconozca como un error
  //   return {
  //     type: 'API_ERROR',
  //     message: error.message,
  //   };
  // }

  (await cookies()).delete('refresh_token');
};
