feat: reconcile application vertical slices
Backfill the completed acquisitions, sales, dashboard, pricing, search, public detail, worker, migration, contracts, validation, tests, and implementation-status changes into one verified application slice.
This commit is contained in:
+40
-34
@@ -1,4 +1,4 @@
|
||||
import { z } from 'zod';
|
||||
import { z } from "zod";
|
||||
|
||||
const isoDate = /^\d{4}-\d{2}-\d{2}$/;
|
||||
const currencyCode = /^[A-Za-z]{3}$/;
|
||||
@@ -8,38 +8,44 @@ const saleItemSchema = z.object({
|
||||
costBasisMinor: z.int().nonnegative(),
|
||||
});
|
||||
|
||||
export const createSaleSchema = z.object({
|
||||
inventoryItemId: z.uuid(),
|
||||
costBasisMinor: z.int().nonnegative(),
|
||||
saleDate: z.string().trim().regex(isoDate),
|
||||
saleLocation: z.string().trim().max(255).optional(),
|
||||
soldPriceMinor: z.int().positive(),
|
||||
currency: z.string().trim().regex(currencyCode).optional(),
|
||||
platformFeesMinor: z.int().nonnegative().optional(),
|
||||
paymentProcessingFeesMinor: z.int().nonnegative().optional(),
|
||||
shippingCostMinor: z.int().nonnegative().optional(),
|
||||
taxesMinor: z.int().nonnegative().optional(),
|
||||
otherFeesMinor: z.int().nonnegative().optional(),
|
||||
buyerName: z.string().trim().max(255).optional(),
|
||||
buyerContact: z.string().trim().max(255).optional(),
|
||||
notes: z.string().trim().max(10000).optional(),
|
||||
}).strict();
|
||||
export const createSaleSchema = z
|
||||
.object({
|
||||
inventoryItemId: z.uuid(),
|
||||
costBasisMinor: z.int().nonnegative(),
|
||||
saleDate: z.string().trim().regex(isoDate),
|
||||
saleLocation: z.string().trim().max(255).optional(),
|
||||
soldPriceMinor: z.int().positive(),
|
||||
currency: z.string().trim().regex(currencyCode).optional(),
|
||||
platformFeesMinor: z.int().nonnegative().optional(),
|
||||
paymentProcessingFeesMinor: z.int().nonnegative().optional(),
|
||||
shippingCostMinor: z.int().nonnegative().optional(),
|
||||
taxesMinor: z.int().nonnegative().optional(),
|
||||
otherFeesMinor: z.int().nonnegative().optional(),
|
||||
buyerName: z.string().trim().max(255).optional(),
|
||||
buyerContact: z.string().trim().max(255).optional(),
|
||||
notes: z.string().trim().max(10000).optional(),
|
||||
})
|
||||
.strict();
|
||||
|
||||
export const createMultiItemSaleSchema = z.object({
|
||||
items: z.array(saleItemSchema).min(2),
|
||||
saleDate: z.string().trim().regex(isoDate),
|
||||
saleLocation: z.string().trim().max(255).optional(),
|
||||
currency: z.string().trim().regex(currencyCode).optional(),
|
||||
platformFeesMinor: z.int().nonnegative().optional(),
|
||||
paymentProcessingFeesMinor: z.int().nonnegative().optional(),
|
||||
shippingCostMinor: z.int().nonnegative().optional(),
|
||||
taxesMinor: z.int().nonnegative().optional(),
|
||||
otherFeesMinor: z.int().nonnegative().optional(),
|
||||
buyerName: z.string().trim().max(255).optional(),
|
||||
buyerContact: z.string().trim().max(255).optional(),
|
||||
notes: z.string().trim().max(10000).optional(),
|
||||
}).strict();
|
||||
export const createMultiItemSaleSchema = z
|
||||
.object({
|
||||
items: z.array(saleItemSchema).min(2),
|
||||
saleDate: z.string().trim().regex(isoDate),
|
||||
saleLocation: z.string().trim().max(255).optional(),
|
||||
currency: z.string().trim().regex(currencyCode).optional(),
|
||||
platformFeesMinor: z.int().nonnegative().optional(),
|
||||
paymentProcessingFeesMinor: z.int().nonnegative().optional(),
|
||||
shippingCostMinor: z.int().nonnegative().optional(),
|
||||
taxesMinor: z.int().nonnegative().optional(),
|
||||
otherFeesMinor: z.int().nonnegative().optional(),
|
||||
buyerName: z.string().trim().max(255).optional(),
|
||||
buyerContact: z.string().trim().max(255).optional(),
|
||||
notes: z.string().trim().max(10000).optional(),
|
||||
})
|
||||
.strict();
|
||||
|
||||
export const voidSaleSchema = z.object({
|
||||
reason: z.string().trim().min(3).max(1000),
|
||||
}).strict();
|
||||
export const voidSaleSchema = z
|
||||
.object({
|
||||
reason: z.string().trim().min(3).max(1000),
|
||||
})
|
||||
.strict();
|
||||
|
||||
Reference in New Issue
Block a user