import api from './api';
import { type User } from '../types/User';

// DTOs específicos para creación/edición para no usar 'any'
export interface CreateUserDto {
  username: string;
  password?: string; // Opcional en update, requerido en create (validar en UI)
  role: string;
  email: string;
}

export const userService = {
  getAll: async (): Promise<User[]> => {
    const response = await api.get<User[]>('/users');
    return response.data;
  },

  create: async (user: CreateUserDto): Promise<void> => {
    await api.post('/users', user);
  },

  update: async (id: number, user: CreateUserDto): Promise<void> => {
    await api.put(`/users/${id}`, user);
  },

  delete: async (id: number): Promise<void> => {
    await api.delete(`/users/${id}`);
  }
};