UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

118 lines 4.03 kB
import { z } from 'zod'; import { BaseResponseSchema } from '../../core/schemas'; // Health check schemas export const HealthCheckResponseSchema = BaseResponseSchema(z.string()); // Tax rates request parameters schema export const RatesRequestParamsSchema = z .object({ // Common tax calculation parameters lines: z .array(z.object({ amount: z.number().min(0), description: z.string().optional(), taxCode: z.string().optional(), customerUsageType: z.string().optional(), itemCode: z.string().optional(), quantity: z.number().min(0).optional(), discount: z.number().min(0).optional(), })) .min(1), addresses: z .object({ shipFrom: z .object({ line1: z.string().optional(), city: z.string().optional(), region: z.string().optional(), country: z.string().optional(), postalCode: z.string().optional(), }) .optional(), shipTo: z.object({ line1: z.string().optional(), city: z.string().optional(), region: z.string().optional(), country: z.string().optional(), postalCode: z.string().optional(), }), }) .optional(), date: z.string().optional(), type: z .enum(['SalesOrder', 'SalesInvoice', 'ReturnInvoice', 'InventoryTransferOrder']) .optional(), companyCode: z.string().optional(), customerCode: z.string().optional(), businessIdentificationNo: z.string().optional(), commit: z.boolean().optional(), currencyCode: z.string().optional(), }) .passthrough(); // Tax rate calculation response schemas export const TaxLineSchema = z .object({ lineNumber: z.string().optional(), taxableAmount: z.number().optional(), tax: z.number().optional(), taxCalculated: z.number().optional(), rate: z.number().optional(), exemptAmount: z.number().optional(), details: z .array(z.object({ jurisdictionName: z.string().optional(), rate: z.number().optional(), tax: z.number().optional(), taxableAmount: z.number().optional(), taxType: z.string().optional(), jurisdictionType: z.string().optional(), })) .optional(), }) .passthrough(); export const TaxCalculationResultSchema = z .object({ totalAmount: z.number().optional(), totalExempt: z.number().optional(), totalTaxable: z.number().optional(), totalTax: z.number().optional(), totalTaxCalculated: z.number().optional(), taxDate: z.string().optional(), lines: z.array(TaxLineSchema).optional(), addresses: z .array(z.object({ addressType: z.string().optional(), line1: z.string().optional(), city: z.string().optional(), region: z.string().optional(), country: z.string().optional(), postalCode: z.string().optional(), latitude: z.number().optional(), longitude: z.number().optional(), })) .optional(), summary: z .array(z.object({ country: z.string().optional(), region: z.string().optional(), jurisType: z.string().optional(), jurisCode: z.string().optional(), jurisName: z.string().optional(), taxAuthorityType: z.number().optional(), stateAssignedNo: z.string().optional(), taxType: z.string().optional(), taxName: z.string().optional(), taxGroup: z.string().optional(), rateType: z.string().optional(), taxable: z.number().optional(), rate: z.number().optional(), tax: z.number().optional(), taxCalculated: z.number().optional(), nonTaxable: z.number().optional(), exemption: z.number().optional(), })) .optional(), }) .passthrough(); // Response schemas export const RatesResponseSchema = BaseResponseSchema(TaxCalculationResultSchema); //# sourceMappingURL=schemas.js.map