import { z } from 'zod'; export const groupBuyCampaignStatusEnum = z.enum(['active', 'threshold_met', 'expired', 'cancelled']); export const groupBuyParticipantStatusEnum = z.enum(['opted_in', 'withdrawn', 'confirmed']); export const groupBuyCampaignSchema = z.object({ id: z.string(), normalizedName: z.string(), market: z.string(), thresholdQty: z.number(), deadline: z.coerce.date(), status: groupBuyCampaignStatusEnum, totalDemand: z.number(), participantCount: z.number(), }); export const groupBuyOptInSchema = z.object({ campaignId: z.string(), quantity: z.number().positive(), }); export const groupBuyOptInResponseSchema = z.object({ participantId: z.string(), campaignId: z.string(), quantity: z.number(), status: groupBuyParticipantStatusEnum, }); export type GroupBuyCampaign = z.infer;