Improve customer order creation with a new frontend schema

Introduce a frontend-compatible schema for customer order creation, allowing for more flexible data input and mapping to backend fields. This change also removes role restrictions for order creation and includes updated test scripts and cookie handling.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: b163d4c0-de5e-4f4e-a9c0-aed4c7049718
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/b163d4c0-de5e-4f4e-a9c0-aed4c7049718/CKKcmBc
This commit is contained in:
michaelschal committed 2025-08-12 14:13:02 +00:00
1 parent bbdeb63b70
commit 9f00702fae
5 files changed
+125 -10

No files matched your search

+20
View File
@@ -450,6 +450,26 @@ export const insertCustomerOrderSchema = createInsertSchema(customerOrders).omit
updatedAt: true,
});
// Frontend-compatible schema with different field names
export const insertCustomerOrderFrontendSchema = z.object({
customerName: z.string().min(1, "Customer name is required"),
contactNumber: z.string().min(1, "Contact number is required"), // Maps to customerPhone
productName: z.string().min(1, "Product name is required"), // Maps to productDesignation
productDescription: z.string().optional(), // Optional description
quantity: z.number().int().positive().default(1),
groupId: z.number().int().positive(),
isPickup: z.boolean().default(false),
notes: z.string().optional(),
// Optional fields with defaults
orderTaker: z.string().optional(), // Will be set to creator name if not provided
gencode: z.string().optional().default(""), // Will be empty if not provided
supplierId: z.number().int().positive().optional().default(1), // Default supplier ID
deposit: z.number().optional().default(0),
isPromotionalPrice: z.boolean().default(false),
customerEmail: z.string().email().optional(),
productReference: z.string().optional(),
});
export const insertDlcProductSchema = createInsertSchema(dlcProducts).omit({
id: true,
createdAt: true,