first
Deploy Iddaai Frontend / build-and-deploy (push) Successful in 4m0s

This commit is contained in:
2026-04-16 13:36:34 +03:00
parent de5e145c4e
commit fc7a1ba567
218 changed files with 32370 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
import { couponsService } from "./service";
import type {
CreateCouponDto,
SuggestCouponDto,
AnalyzeMatchDto,
} from "./types";
export const CouponsQueryKeys = {
all: ["coupons"] as const,
history: (limit?: number) =>
[...CouponsQueryKeys.all, "history", limit] as const,
stats: () => [...CouponsQueryKeys.all, "stats"] as const,
};
export const useAnalyzeMatch = () => {
return useMutation({
mutationFn: (dto: AnalyzeMatchDto) => couponsService.analyzeMatch(dto),
});
};
export const useCreateCoupon = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (dto: CreateCouponDto) => couponsService.createCoupon(dto),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: CouponsQueryKeys.all });
},
});
};
export const useDailyBanko = () => {
return useMutation({
mutationFn: (matchIds: string[]) => couponsService.getDailyBanko(matchIds),
});
};
export const useCouponHistory = (limit: number = 20) => {
return useQuery({
queryKey: CouponsQueryKeys.history(limit),
queryFn: () => couponsService.getHistory(limit),
});
};
export const useUserBettingStats = () => {
return useQuery({
queryKey: CouponsQueryKeys.stats(),
queryFn: () => couponsService.getUserStats(),
});
};
export const useSuggestCoupon = () => {
return useMutation({
mutationFn: (dto: SuggestCouponDto) => couponsService.suggestCoupon(dto),
});
};