templates2.Landing.Next/lib/server/leads.ts
w4c-templates 36248a675a
Some checks are pending
CI / quality (push) Waiting to run
chore(template): publish Landing.Next
2026-10-11 23:23:51 +03:00

28 lines
764 B
TypeScript

import 'server-only';
import { z } from 'zod';
import { db } from './db';
export const leadSchema = z.object({
email: z.string().email().max(200),
name: z.string().max(120).optional().or(z.literal('')),
message: z.string().max(2000).optional().or(z.literal('')),
source: z.string().max(60).optional().or(z.literal('')),
});
export type LeadInput = z.infer<typeof leadSchema>;
export async function createLead(input: LeadInput) {
return db.lead.create({
data: {
email: input.email.toLowerCase(),
name: input.name || null,
message: input.message || null,
source: input.source || 'contact',
},
});
}
export function listLeads(limit = 100) {
return db.lead.findMany({ orderBy: { createdAt: 'desc' }, take: limit });
}