import { useMutation } from "react-query"; import { useHttp } from "@/hooks/useHttp"; import { setParametersToStrategyRunner } from "@/libs/helpers/strategy-service.helper"; import { useServerDataCtx } from "@/providers/server-data-provider/server-data-provider"; import type { ITransferValidateParameters } from "./transfer-validate-service.types"; export interface ITransferValidateResponse { success: boolean; result: Result; } export interface Result { serviceResponse: ServiceResponse; code: string; outputData: any; type: number; name: string; status: number; } export interface ServiceResponse { success: boolean; result: Result2; } export interface Result2 { masterPassUserData: MasterPassUserData; masterPassPciDssPaymentRule: MasterPassPciDssPaymentRule; transactionKey: string; saleAgreementText: string; preSaleAgreementText: string; } export interface MasterPassUserData { countryCode: number; areaCode: number; number: string; userId: string; phone: string; msisdn: string; referenceNumber: string; token: string; macroMerchantId: any; orderId: string; recurringOrderId: string; payToken: any; selected: boolean; isLoggedIn: boolean; jollyPhone: any; isSecurityOTPValidationRequired: boolean; isSecurityOTPValidationDone: boolean; cartId: any; } export interface MasterPassPciDssPaymentRule { firstProvisionDate: any; firstProvisionDay: any; isCancelBook: boolean; isCancelPayment: boolean; lastProvisionDate: any; lastProvisionDay: any; minAmountRate: number; minPaymentAmount: string; balanceAmount: number; totalAmount: string; paymentDay: any; paymentDayType: any; paymentDueDate: string; provisionDayType: any; code: any; } export const useTransferValidateMutation = () => { const { strategyKeys } = useServerDataCtx(); const http = useHttp("wl-display-api"); const service = (variables: ITransferValidateParameters) => http.post( "/api/v1/strategy/run", setParametersToStrategyRunner(variables, strategyKeys.transferValidate), ); return useMutation({ mutationFn: service, mutationKey: "transferValidate" }); };