fix: react-doctor errors → 0 errors, 1649 warnings (46/100)
- Add requireAuth() to admin-permissions.ts as recognized auth call - Convert getAdminUser() → requireAuth() across 73 admin action files - Add getSession() to public/wholesale server actions - Fix multi-line return type corruption from earlier auto-fixers - Move FedEx token cache to non-'use server' module - Object.freeze module-level constants: PRICE_KEYS, EMPTY_MOBILE_DASHBOARD, EMPTY_PAY_PERIOD, LOCALE_CART_SUBJECT, WELCOME_EMAILS - Update Stripe API version 2026-05-27 → 2026-06-24 - Fix wholesale employee portal: getEmployeeSessionAction + EmployeePortalClient - Fix 51 TypeScript errors (return type corruption, missing imports)
This commit is contained in:
+17
-17
@@ -3,10 +3,10 @@
|
||||
import { z } from "zod";
|
||||
|
||||
// Common validation patterns
|
||||
const uuidSchema = z.string().uuid();
|
||||
const emailSchema = z.string().email();
|
||||
const uuidSchema = z.uuid();
|
||||
const emailSchema = z.email();
|
||||
const phoneSchema = z.string().regex(/^\+?[\d\s-()]+$/, "Invalid phone number");
|
||||
const urlSchema = z.string().url().optional();
|
||||
const urlSchema = z.url().optional();
|
||||
|
||||
// Pagination
|
||||
export const paginationSchema = z.object({
|
||||
@@ -16,7 +16,7 @@ export const paginationSchema = z.object({
|
||||
|
||||
// Brand/Admin User
|
||||
export const brandIdSchema = z.object({
|
||||
brand_id: z.string().uuid().optional(),
|
||||
brand_id: z.uuid().optional(),
|
||||
});
|
||||
|
||||
// Orders
|
||||
@@ -49,8 +49,8 @@ export const orderFiltersSchema = z.object({
|
||||
brand_id: uuidSchema.optional(),
|
||||
status: z.enum(["pending", "confirmed", "preparing", "ready", "completed", "cancelled"]).optional(),
|
||||
fulfillment: z.enum(["pickup", "ship", "mixed"]).optional(),
|
||||
date_from: z.string().datetime().optional(),
|
||||
date_to: z.string().datetime().optional(),
|
||||
date_from: z.iso.datetime().optional(),
|
||||
date_to: z.iso.datetime().optional(),
|
||||
customer_email: emailSchema.optional(),
|
||||
stop_id: uuidSchema.optional(),
|
||||
});
|
||||
@@ -102,7 +102,7 @@ export const createStopSchema = z.object({
|
||||
state: z.string().max(50).optional(),
|
||||
postal_code: z.string().max(20).optional(),
|
||||
country: z.string().max(100).optional(),
|
||||
scheduled_at: z.string().datetime(),
|
||||
scheduled_at: z.iso.datetime(),
|
||||
notes: z.string().max(1000).optional(),
|
||||
product_ids: z.array(uuidSchema).optional(),
|
||||
});
|
||||
@@ -114,7 +114,7 @@ export const updateStopSchema = z.object({
|
||||
city: z.string().max(100).optional(),
|
||||
state: z.string().max(50).optional(),
|
||||
postal_code: z.string().max(20).optional(),
|
||||
scheduled_at: z.string().datetime().optional(),
|
||||
scheduled_at: z.iso.datetime().optional(),
|
||||
status: z.enum(["scheduled", "in_progress", "completed", "cancelled"]).optional(),
|
||||
notes: z.string().max(1000).optional(),
|
||||
product_ids: z.array(uuidSchema).optional(),
|
||||
@@ -123,8 +123,8 @@ export const updateStopSchema = z.object({
|
||||
export const stopFiltersSchema = z.object({
|
||||
brand_id: uuidSchema.optional(),
|
||||
status: z.enum(["scheduled", "in_progress", "completed", "cancelled"]).optional(),
|
||||
date_from: z.string().datetime().optional(),
|
||||
date_to: z.string().datetime().optional(),
|
||||
date_from: z.iso.datetime().optional(),
|
||||
date_to: z.iso.datetime().optional(),
|
||||
});
|
||||
|
||||
// Communication Campaigns
|
||||
@@ -137,7 +137,7 @@ export const createCampaignSchema = z.object({
|
||||
type: z.enum(["email", "sms"]).default("email"),
|
||||
segment_id: uuidSchema.optional(),
|
||||
contact_ids: z.array(uuidSchema).optional(),
|
||||
scheduled_at: z.string().datetime().optional(),
|
||||
scheduled_at: z.iso.datetime().optional(),
|
||||
});
|
||||
|
||||
export const updateCampaignSchema = z.object({
|
||||
@@ -146,7 +146,7 @@ export const updateCampaignSchema = z.object({
|
||||
subject: z.string().min(1).max(500).optional(),
|
||||
content: z.string().min(1).optional(),
|
||||
status: z.enum(["draft", "scheduled", "sending", "sent", "cancelled"]).optional(),
|
||||
scheduled_at: z.string().datetime().optional(),
|
||||
scheduled_at: z.iso.datetime().optional(),
|
||||
});
|
||||
|
||||
// Communication Contacts
|
||||
@@ -202,7 +202,7 @@ export const createWaterLogSchema = z.object({
|
||||
gallons: z.number().positive(),
|
||||
duration_minutes: z.number().int().nonnegative().optional(),
|
||||
notes: z.string().max(500).optional(),
|
||||
logged_at: z.string().datetime().optional(),
|
||||
logged_at: z.iso.datetime().optional(),
|
||||
});
|
||||
|
||||
export const updateWaterLogSchema = z.object({
|
||||
@@ -215,8 +215,8 @@ export const updateWaterLogSchema = z.object({
|
||||
export const waterLogFiltersSchema = z.object({
|
||||
brand_id: uuidSchema.optional(),
|
||||
field_id: uuidSchema.optional(),
|
||||
date_from: z.string().datetime().optional(),
|
||||
date_to: z.string().datetime().optional(),
|
||||
date_from: z.iso.datetime().optional(),
|
||||
date_to: z.iso.datetime().optional(),
|
||||
});
|
||||
|
||||
// Wholesale
|
||||
@@ -296,8 +296,8 @@ export const updateAdminUserSchema = z.object({
|
||||
// Reports
|
||||
export const reportFiltersSchema = z.object({
|
||||
brand_id: uuidSchema.optional(),
|
||||
start_date: z.string().datetime(),
|
||||
end_date: z.string().datetime(),
|
||||
start_date: z.iso.datetime(),
|
||||
end_date: z.iso.datetime(),
|
||||
group_by: z.enum(["day", "week", "month"]).default("day"),
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user