26 lines
894 B
TypeScript
26 lines
894 B
TypeScript
/**
|
|
* `leads delete --id <leadId>` — hard-delete a single lead and its events.
|
|
* Use for DSGVO right-to-be-forgotten requests.
|
|
*/
|
|
import { defineCommand } from "citty";
|
|
import consola from "consola";
|
|
|
|
export const leadsDeleteCommand = defineCommand({
|
|
meta: { name: "delete", description: "Delete a lead (DSGVO right-to-be-forgotten)." },
|
|
args: {
|
|
id: { type: "string", required: true, description: "Lead id." },
|
|
},
|
|
async run({ args }) {
|
|
const { getDbClient } = await import("@toolctrl/db/client.server");
|
|
const prisma = getDbClient();
|
|
const id = String(args.id);
|
|
const existing = await prisma.lead.findUnique({ where: { id }, select: { email: true } });
|
|
if (!existing) {
|
|
consola.warn(`Lead ${id} not found.`);
|
|
return;
|
|
}
|
|
await prisma.lead.delete({ where: { id } });
|
|
consola.success(`Deleted lead ${id} (${existing.email}).`);
|
|
},
|
|
});
|