// apps/<app>/src/api/importCustomers.ts
import { z } from 'zod';
import { createEndpoint } from 'zitejs/backend';
import { zite } from 'zitejs/db';
export default createEndpoint({
description: 'Import customer rows from a parsed spreadsheet',
inputSchema: z.object({
rows: z.array(z.object({ email: z.string().email(), name: z.string(), plan: z.string() })),
}),
outputSchema: z.object({ imported: z.number() }),
execute: async ({ input }) => {
const result = await zite.Customers.bulkCreate({
records: input.rows.map(r => ({ email: r.email, fullName: r.name, plan: r.plan })),
matchOn: ['email'], // upsert on email so re-imports don't duplicate
});
return { imported: result.records.length };
},
});