Files
shop-admin/src/pages/seller/hooks/useSellerData.ts
T
hamid zarghami 7859388439 contract
2025-10-12 15:31:00 +03:30

149 lines
3.4 KiB
TypeScript

import * as api from "../service/SellerService";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import type {
CreateCategoryLearning,
CreateLearningType,
} from "../types/Types";
export const useGetSellers = (page: number = 1, enabled: boolean = true) => {
return useQuery({
queryKey: ["sellers", page],
queryFn: () => api.getSellers(page),
enabled,
});
};
export const useToggleSellerStatus = () => {
return useMutation({
mutationFn: api.toggleSellerStatus,
});
};
export const useApproveContract = () => {
return useMutation({
mutationFn: api.approveContract,
});
};
export const useGetWholesaleRequests = (page: number = 1) => {
return useQuery({
queryKey: ["wholesale-requests", page],
queryFn: () => api.getWholesaleRequests(page),
});
};
export const useApproveWholesaleRequest = () => {
return useMutation({
mutationFn: api.approveWholesaleRequest,
});
};
export const useGetWithdrawalRequests = (page: number = 1) => {
return useQuery({
queryKey: ["withdrawal-requests", page],
queryFn: () => api.getWithdrawalRequests(page),
});
};
export const useGetAnnouncementSeller = (page: number = 1) => {
return useQuery({
queryKey: ["announcement-seller", page],
queryFn: () => api.getAnnouncementSeller(page),
});
};
export const useCreateAnnouncementSeller = () => {
return useMutation({
mutationFn: api.createAnnouncementSeller,
});
};
export const useCreateAnnouncementSpecificSeller = () => {
return useMutation({
mutationFn: api.createAnnouncementToSpecificSellers,
});
};
export const useGetRequestCreateProduct = (page: number = 1) => {
return useQuery({
queryKey: ["request-create-product", page],
queryFn: () => api.getRequestCreateProduct(page),
});
};
export const useGetLearningCategory = () => {
return useQuery({
queryKey: ["learning-category"],
queryFn: () => api.getLearningCategory(),
});
};
export const useCreateLearningCategory = () => {
return useMutation({
mutationFn: api.createLearningCategory,
});
};
export const useUpdateLearningCategory = () => {
return useMutation({
mutationFn: ({
id,
params,
}: {
id: string;
params: CreateCategoryLearning;
}) => api.updateLearningCategory(id, params),
});
};
export const useGetLearning = () => {
return useQuery({
queryKey: ["learning"],
queryFn: () => api.getLearning(),
});
};
export const useCreateLearning = () => {
return useMutation({
mutationFn: api.createLearning,
});
};
export const useUpdateLearning = () => {
return useMutation({
mutationFn: ({ id, params }: { id: string; params: CreateLearningType }) =>
api.updateLearning(id, params),
});
};
export const useGetLearningById = (id: string, enabled: boolean = true) => {
return useQuery({
queryKey: ["learning", id],
queryFn: () => api.getLearningById(id),
enabled: enabled && !!id,
});
};
export const useDeleteLearning = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: api.deleteLearning,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["learning"] });
},
});
};
export const useGetContentContract = () => {
return useQuery({
queryKey: ["content-contract"],
queryFn: api.getContentContract,
});
};
export const useUpdateContract = () => {
return useMutation({
mutationFn: api.updateContract,
});
};