Skip to main content
Glama
schemas.ts2.71 kB
import { z } from 'zod'; export const ClientSchema = z.object({ nom: z.string().optional(), prenom: z.string().optional(), email: z.string().optional(), telephone: z.string().optional(), adresseligne1: z.string().optional(), adresseligne2: z.string().optional(), commentaireadresse: z.string().optional(), codepostal: z.string().optional(), ville: z.string().optional(), pays: z.string().optional(), numtva: z.string().optional(), rcs: z.string().optional(), codeBarre: z.string().optional(), telephone2: z.string().optional(), lat: z.string().optional(), lng: z.string().optional() }); /*export const DiscountSchema = z.object({ mode: z.enum(['amount', 'percent']), value: z.number().nonnegative() });*/ export const ItemCatalogSchema = z.object({ type: z.literal('catalog'), productId: z.number().int().positive(), quantity: z.number().positive().default(1), titleOverride: z.string().optional(), priceOverride: z.number().nonnegative().optional(), declinaisons: z.array(z.number().int().positive()).max(5).optional(), /*taxRateId: z.number().int().positive().nullable().optional(), discounts: z.array(DiscountSchema).optional(), note: z.string().optional()*/ }); export const ItemDeptSchema = z.object({ type: z.literal('dept'), departmentId: z.number().int().positive(), title: z.string(), price: z.number().nonnegative(), quantity: z.number().positive().default(1) }); export const ItemFreeSchema = z.object({ type: z.literal('free'), title: z.string().optional(), price: z.number().nonnegative() }); export const ItemSchema = z.discriminatedUnion('type', [ItemCatalogSchema, ItemDeptSchema,ItemFreeSchema]); export const SalesCreateInput = z.object({ /*shopId: z.string(), apiKey: z.string(),*/ idUser: z.number().int().optional(), payment: z.union([z.literal(-2), z.literal(-1), z.number()]).optional(), deliveryMethod: z.union([ z.number().int().min(0).max(6), z.enum(['0', '1', '2', '3', '4', '5', '6']) ]).optional(), idtable: z.number().int().optional(), idcaisse: z.number().int().optional(), numcouverts: z.number().int().optional(), publicComment: z.string().optional(), privateComment: z.string().optional(), pagerNum: z.number().int().optional(), idClient: z.number().int().optional(), client: ClientSchema.optional(), items: z.array(ItemSchema).min(1), //orderDiscounts: z.array(DiscountSchema).optional(), //metadata: z.record(z.any()).optional(), idempotencyKey: z.string().optional() }); export type TSalesCreateInput = z.infer<typeof SalesCreateInput>;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/paracetamol951/caisse-enregistreuse-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server