@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
82 lines • 2.91 kB
JavaScript
import { z } from 'zod';
import { BaseResponseSchema, BaseGetParamsSchema } from '../../../core/schemas';
// Contact schemas
export const ContactSchema = z.object({
contactId: z.number(),
customerId: z.number(),
firstName: z.string(),
lastName: z.string(),
email: z.string(),
phoneNumber: z.string().optional(),
title: z.string().optional(),
role: z.string().optional(),
isPrimary: z.boolean().optional(),
webEnabled: z.boolean().optional(),
dateCreated: z.string().optional(),
dateLastModified: z.string().optional(),
loginCredentials: z
.object({
username: z.string().optional(),
lastLogin: z.string().optional(),
})
.optional(),
permissions: z
.object({
canViewPricing: z.boolean().optional(),
canPlaceOrders: z.boolean().optional(),
canViewInvoices: z.boolean().optional(),
})
.optional(),
});
export const ContactCreateParamsSchema = z.object({
firstName: z.string().min(1),
lastName: z.string().min(1),
email: z.string().email(),
phoneNumber: z.string().optional(),
title: z.string().optional(),
role: z.string().optional(),
isPrimary: z.boolean().optional(),
webEnabled: z.boolean().optional(),
permissions: z
.object({
canViewPricing: z.boolean().optional(),
canPlaceOrders: z.boolean().optional(),
canViewInvoices: z.boolean().optional(),
})
.optional(),
});
export const ContactListParamsSchema = BaseGetParamsSchema.extend({
q: z.string(),
limit: z.coerce.number().optional(),
offset: z.coerce.number().optional(),
});
export const ContactCustomersParamsSchema = BaseGetParamsSchema.extend({
class5Id: z.string().optional(),
limit: z.coerce.number().optional(),
offset: z.coerce.number().optional(),
q: z.string().optional(),
});
// Contact user-defined fields schema
export const ContactUserDefinedFieldSchema = z.object({
fieldName: z.string(),
fieldValue: z.string(),
fieldType: z.string(),
});
export const ContactUserDefinedFieldsSchema = z.object({
contactId: z.number(),
customFields: z.array(ContactUserDefinedFieldSchema),
lastUpdated: z.string(),
});
// Response schemas using BaseResponseSchema (8-field format)
export const ContactListResponseSchema = BaseResponseSchema(z.array(ContactSchema));
export const ContactResponseSchema = BaseResponseSchema(ContactSchema);
export const ContactCustomersResponseSchema = BaseResponseSchema(z.array(z.object({
customerId: z.number(),
customerName: z.string(),
class5Id: z.string().optional(),
salesRepId: z.string().optional(),
territoryId: z.string().optional(),
lastOrderDate: z.string().optional(),
})));
export const ContactUserDefinedFieldsResponseSchema = BaseResponseSchema(ContactUserDefinedFieldsSchema);
//# sourceMappingURL=contacts.js.map