import { api } from "@/lib/api/client";

export type AppUser = {
	id: string;
	email: string;
	roleId: string;
	roleName: string;
	roleSlug: string;
	employeeId?: string | null;
	employeeName?: string | null;
	departmentId?: string | null;
	departmentName?: string | null;
	isActive: boolean;
	createdAt: string;
	updatedAt: string;
};

export type CreateUserInput = {
	email: string;
	password: string;
	roleId: string;
	employeeId?: string;
};

export type UpdateUserInput = {
	email?: string;
	password?: string;
	roleId?: string;
	isActive?: boolean;
	employeeId?: string | null;
};

export function getUsers() {
	return api.get<{ items: AppUser[] }>("/users");
}

export function getUser(id: string) {
	return api.get<AppUser>(`/users/${id}`);
}

export function createUser(data: CreateUserInput) {
	return api.post<AppUser>("/users", data);
}

export function updateUser(id: string, data: UpdateUserInput) {
	return api.patch<AppUser>(`/users/${id}`, data);
}

export function deactivateUser(id: string) {
	return api.delete<AppUser>(`/users/${id}`);
}
