/** * Near-Me Lead Schemas * ==================== * Direct-lead model: a seeker sends ONE enquiry / quote / callback / etc. to * ONE business (the owner sees it in their plan-gated Leads inbox). Create is * public (name + phone captured); listing/updating is owner-scoped. */ import { z } from 'zod'; import type { NearMeLeadStatus, NearMeLeadType } from './enums.js'; /** Create a lead (public — the seeker leaves their contact). */ export declare const createLeadBodySchema: z.ZodObject<{ businessId: z.ZodString; type: z.ZodEnum<{ readonly CALL: "call"; readonly WHATSAPP: "whatsapp"; readonly ENQUIRY: "enquiry"; readonly QUOTE: "quote"; readonly CALLBACK: "callback"; readonly APPOINTMENT: "appointment"; }>; name: z.ZodString; phone: z.ZodString; message: z.ZodPreprocess>; serviceInterested: z.ZodPreprocess>; }, z.core.$strip>; export type CreateLeadInput = z.infer; /** Statuses an owner can set (everything except the system-initial `new`). */ export declare const OWNER_LEAD_STATUSES: readonly ["viewed", "contacted", "converted", "closed", "spam"]; export declare const updateLeadStatusBodySchema: z.ZodObject<{ status: z.ZodEnum<{ closed: "closed"; spam: "spam"; viewed: "viewed"; contacted: "contacted"; converted: "converted"; }>; }, z.core.$strip>; export type UpdateLeadStatusInput = z.infer; /** Owner's leads inbox query. */ export declare const myLeadsQuerySchema: z.ZodObject<{ page: z.ZodDefault>; limit: z.ZodDefault>; status: z.ZodOptional>; businessId: z.ZodOptional; }, z.core.$strip>; export type MyLeadsQuery = z.infer; export interface NearMeLead { _id: string; businessId: string; businessName?: string; ownerId: string; type: NearMeLeadType; name: string; phone: string; message?: string; serviceInterested?: string; status: NearMeLeadStatus; source: string; seekerUserId?: string; createdAt: string; updatedAt: string; } export interface NearMeLeadListResult { items: NearMeLead[]; total: number; page: number; limit: number; totalPages: number; } //# sourceMappingURL=lead.schema.d.ts.map