export interface JsonRpcRequest {
jsonrpc: '2.0';
method: string;
params?: any;
id: string | number | null;
}
export interface JsonRpcResponse {
jsonrpc: '2.0';
result?: any;
error?: {
code: number;
message: string;
data?: any;
};
id: string | number | null;
}
export interface JsonRpcError {
code: number;
message: string;
data?: any;
}
export const methodSchemas = {
// Veeqo methods
'veeqo.createOrder': {
description: 'Create a new order in Veeqo',
params: {
order: {
type: 'object',
description: 'Veeqo order object',
required: ['line_items_attributes', 'deliver_to']
},
idempotency_key: {
type: 'string',
description: 'Idempotency key for the request'
}
},
result: {
id: 'string',
number: 'string',
status: 'string',
channel_order_code: 'string',
created_at: 'string',
updated_at: 'string'
}
},
'veeqo.getOrder': {
description: 'Retrieve a specific order from Veeqo',
params: {
order_id: {
type: 'string',
description: 'ID of the order to retrieve'
}
},
result: {
id: 'string',
number: 'string',
status: 'string',
channel_order_code: 'string',
deliver_to: 'object',
line_items_attributes: 'array',
created_at: 'string',
updated_at: 'string'
}
},
'veeqo.listOrders': {
description: 'List orders from Veeqo',
params: {
page: {
type: 'number',
description: 'Page number (default: 1)'
},
per_page: {
type: 'number',
description: 'Number of orders per page (default: 20)'
}
},
result: {
orders: 'array',
page: 'number',
per_page: 'number',
total_pages: 'number',
total_count: 'number'
}
},
'veeqo.updateOrder': {
description: 'Update an existing order in Veeqo',
params: {
order_id: {
type: 'string',
description: 'ID of the order to update'
},
order: {
type: 'object',
description: 'Partial order object with fields to update'
}
},
result: {
id: 'string',
number: 'string',
status: 'string',
channel_order_code: 'string',
updated_at: 'string'
}
},
'veeqo.deleteOrder': {
description: 'Delete an order from Veeqo',
params: {
order_id: {
type: 'string',
description: 'ID of the order to delete'
}
},
result: {
success: 'boolean'
}
},
'veeqo.syncInventory': {
description: 'Sync inventory from Veeqo',
params: {
product_id: {
type: 'string',
description: 'Optional product ID to filter results'
}
},
result: {
type: 'array',
items: {
id: 'string',
product_id: 'string',
sellable_id: 'string',
quantity: 'number',
allocated: 'number',
available: 'number'
}
}
}
};