import { NextFunction, Request, Response } from "express";
import { CatchAsyncError } from "../../middleware/Catch";
import { z } from "zod";
import ZodValidation from "../../utils/zodValidator";

const zodValidationSchema = z.object({

    name: z
        .string({ message: "Please Enter Tag Name" })
        .nonempty({ message: "Name Must be Required" }),

    url: z
        .string({ message: "Please Enter A Valid Websites URL" })
        .url({ message: "Websites URL Must be Required" }),

    flipkartMain: z
        .string({ message: "Please Enter A Valid Flipkart Link" })
        .url({ message: "Flipkart Link Must be Required" }),

    amazonMain: z
        .string({ message: "Please Enter A Valid Amazon Link" })
        .url({ message: "Amazon Link Must be Required" }),

    arMain: z
        .string({ message: "Please Enter A Valid AR Link" })
        .url({ message: "AR Link Must be Required" }),

    flipkartCheckout: z
        .string({ message: "Please Enter A Valid Flipkart Checkout Link" })
        .url({ message: "Flipkart Checkout Link Must be Required" }),

    amazonCheckout: z
        .string({ message: "Please Enter A Valid Amazon Checkout Link" })
        .url({ message: "Amazon Checkout Link Must be Required" }),

    arCheckout: z
        .string({ message: "Please Enter A Valid AR Checkout Link" })
        .url({ message: "AR Checkout Link Must be Required" }),

    close: z
        .string({ message: "Please Enter A Valid Close Link" })
        .url({ message: "Close Link Must be Required" }),
})


export const BlogLinksValidation = CatchAsyncError(async (req: Request, res: Response, next: NextFunction) => {

    console.log("hhh", req.body)

    await ZodValidation(req, res, next, zodValidationSchema)

})



export type BlogLinks = z.infer<typeof zodValidationSchema>