import { apiClient } from './client';
import type { UserListItem, UserInvite, UserUpdate } from '@horux/shared';

export async function getUsuarios(): Promise<UserListItem[]> {
  const response = await apiClient.get<UserListItem[]>('/usuarios');
  return response.data;
}

export async function inviteUsuario(data: UserInvite): Promise<UserListItem> {
  const response = await apiClient.post<UserListItem>('/usuarios/invite', data);
  return response.data;
}

export async function updateUsuario(id: string, data: UserUpdate): Promise<UserListItem> {
  const response = await apiClient.patch<UserListItem>(`/usuarios/${id}`, data);
  return response.data;
}

export async function deleteUsuario(id: string): Promise<void> {
  await apiClient.delete(`/usuarios/${id}`);
}

// Funciones globales (admin global)
export async function getAllUsuarios(): Promise<UserListItem[]> {
  const response = await apiClient.get<UserListItem[]>('/usuarios/global/all');
  return response.data;
}

export async function createUsuarioGlobal(data: UserInvite & { tenantId: string }): Promise<UserListItem> {
  const response = await apiClient.post<UserListItem>('/usuarios/global', data);
  return response.data;
}

export async function updateUsuarioGlobal(id: string, data: UserUpdate): Promise<UserListItem> {
  const response = await apiClient.patch<UserListItem>(`/usuarios/global/${id}`, data);
  return response.data;
}

export async function deleteUsuarioGlobal(id: string): Promise<void> {
  await apiClient.delete(`/usuarios/global/${id}`);
}
