Files
medusa-store/packages/medusa/src/api/admin/customers/validators.ts
Riqwan Thamir 442b0b2038 chore: rename route from api-v2 to api (#7379)
* chore: rename route from api-v2 to api

* chore: change oas references

* chore: remove v2 ref
2024-05-21 10:44:02 +02:00

103 lines
3.6 KiB
TypeScript

import { z } from "zod"
import {
createFindParams,
createOperatorMap,
createSelectParams,
} from "../../utils/validators"
export const AdminCustomerParams = createSelectParams()
export const AdminCustomerGroupInCustomerParams = z.object({
id: z.union([z.string(), z.array(z.string())]).optional(),
name: z.union([z.string(), z.array(z.string())]).optional(),
created_at: createOperatorMap().optional(),
updated_at: createOperatorMap().optional(),
deleted_at: createOperatorMap().optional(),
})
export const AdminCustomersParams = createFindParams({
limit: 50,
offset: 0,
}).merge(
z.object({
q: z.string().optional(),
id: z.union([z.string(), z.array(z.string())]).optional(),
email: z.union([z.string(), z.array(z.string())]).optional(),
groups: z
.union([
AdminCustomerGroupInCustomerParams,
z.string(),
z.array(z.string()),
])
.optional(),
company_name: z.union([z.string(), z.array(z.string())]).optional(),
first_name: z.union([z.string(), z.array(z.string())]).optional(),
last_name: z.union([z.string(), z.array(z.string())]).optional(),
created_by: z.union([z.string(), z.array(z.string())]).optional(),
created_at: createOperatorMap().optional(),
updated_at: createOperatorMap().optional(),
deleted_at: createOperatorMap().optional(),
$and: z.lazy(() => AdminCustomersParams.array()).optional(),
$or: z.lazy(() => AdminCustomersParams.array()).optional(),
})
)
export const AdminCreateCustomer = z.object({
email: z.string().email().optional(),
company_name: z.string().optional(),
first_name: z.string().optional(),
last_name: z.string().optional(),
phone: z.string().optional(),
metadata: z.record(z.unknown()).optional(),
})
export const AdminUpdateCustomer = z.object({
email: z.string().email().nullable().optional(),
company_name: z.string().nullable().optional(),
first_name: z.string().nullable().optional(),
last_name: z.string().nullable().optional(),
phone: z.string().nullable().optional(),
metadata: z.record(z.unknown()).optional(),
})
export const AdminCreateCustomerAddress = z.object({
address_name: z.string().optional(),
is_default_shipping: z.boolean().optional(),
is_default_billing: z.boolean().optional(),
company: z.string().optional(),
first_name: z.string().optional(),
last_name: z.string().optional(),
address_1: z.string().optional(),
address_2: z.string().optional(),
city: z.string().optional(),
country_code: z.string().optional(),
province: z.string().optional(),
postal_code: z.string().optional(),
phone: z.string().optional(),
metadata: z.record(z.unknown()).optional(),
})
export const AdminUpdateCustomerAddress = AdminCreateCustomerAddress
export const AdminCustomerAddressesParams = createFindParams({
offset: 0,
limit: 50,
}).merge(
z.object({
q: z.string().optional(),
company: z.union([z.string(), z.array(z.string())]).optional(),
city: z.union([z.string(), z.array(z.string())]).optional(),
country_code: z.union([z.string(), z.array(z.string())]).optional(),
province: z.union([z.string(), z.array(z.string())]).optional(),
postal_code: z.union([z.string(), z.array(z.string())]).optional(),
})
)
export type AdminCustomerParamsType = z.infer<typeof AdminCustomerParams>
export type AdminCustomersParamsType = z.infer<typeof AdminCustomersParams>
export type AdminCreateCustomerType = z.infer<typeof AdminCreateCustomer>
export type AdminUpdateCustomerType = z.infer<typeof AdminUpdateCustomer>
export type AdminCreateCustomerAddressType = z.infer<
typeof AdminCreateCustomerAddress
>