import { z } from "zod";
import { createRouter, publicQuery } from "../middleware";
import { getDb } from "../queries/connection";
import { subscribers } from "@db/schema";
import { eq } from "drizzle-orm";

export const subscriberRouter = createRouter({
  subscribe: publicQuery
    .input(z.object({ email: z.string().email() }))
    .mutation(async ({ input }) => {
      const db = getDb();
      const [existing] = await db
        .select()
        .from(subscribers)
        .where(eq(subscribers.email, input.email))
        .limit(1);

      if (existing) {
        return { success: true, message: "Already subscribed" };
      }

      await db.insert(subscribers).values({ email: input.email });
      return { success: true, message: "Subscribed successfully" };
    }),
});
