import { getSingleUser, getUsers } from "@/utils/apiFunctions/userApiFunction";
import { useQuery } from "@tanstack/react-query";

export type User = {
    id: number;
    name: string;
    email: string;
    role_id: number;
    phone: null | string;
    address: null | string;
    salary: string;
    email_verified_at: null | string;
    is_active: number;
    created_at: string;
    updated_at: string;
    role: {
        id: number;
        name: string;
        created_at: string;
        updated_at: string;
    };
};

type ResponseUserData = {
    status: number;
    success: boolean;
    message: string;
    data: User[];
};

type ResponseSingleUserData = {
    status: number;
    success: boolean;
    message: string;
    data: User;
};

export const useUsersQuery = () =>
    useQuery<User[], Error>({
        queryKey: ["users"],
        queryFn: async () => {
            const res: ResponseUserData = await getUsers();
            return res.data;
        },
    });

export const useSingleUserQuery = (userID: number | string | undefined) =>
    useQuery<User, Error>({
        queryKey: ["user", userID],
        queryFn: async () => {
            const res: ResponseSingleUserData = await getSingleUser(userID);
            return res.data;
        },
    });
