import { z } from 'zod' import { HttpServer, type THttpServer } from '~/libs/http-server' const subscribePlanResponseSchema = z.object({ id: z.string(), code: z.string(), name: z.string(), }) const subscribeResponseSchema = z.object({ id: z.string(), subscribe_plan_id: z.string(), start_date: z.string(), end_date: z.string().nullable(), status: z.number(), auto_renew: z.boolean(), subscribe_plan: subscribePlanResponseSchema, }) const userResponseSchema = z.object({ id: z.string(), email: z.string().email(), phone: z.string(), subscribe: subscribeResponseSchema, }) const usersResponseSchema = z.object({ data: z.array(userResponseSchema), }) export type TUserResponse = z.infer export const getUsers = async (parameters: THttpServer) => { try { const { data } = await HttpServer(parameters).get(`/api/staff/users`) return usersResponseSchema.parse(data) } catch (error) { // eslint-disable-next-line unicorn/no-useless-promise-resolve-reject return Promise.reject(error) } }