// src/lib/onboarding/activation/dismiss.ts — écritures privilégiées, volontairement
// hors "use server" (chaque export "use server" = endpoint non authentifié).
import "server-only";

import { and, eq } from "drizzle-orm";
import { db } from "@/lib/db/client";
import { activationDismissals } from "@/lib/db/domain-schema";

export async function isActivationDismissed(
  userId: string,
  orgId: string,
): Promise<boolean> {
  const rows = await db
    .select({ userId: activationDismissals.userId })
    .from(activationDismissals)
    .where(
      and(
        eq(activationDismissals.userId, userId),
        eq(activationDismissals.orgId, orgId),
      ),
    )
    .limit(1);
  return rows.length > 0;
}

export async function dismissActivation(
  userId: string,
  orgId: string,
): Promise<void> {
  await db
    .insert(activationDismissals)
    .values({ userId, orgId })
    .onConflictDoNothing();
}

export async function restoreActivation(
  userId: string,
  orgId: string,
): Promise<void> {
  await db
    .delete(activationDismissals)
    .where(
      and(
        eq(activationDismissals.userId, userId),
        eq(activationDismissals.orgId, orgId),
      ),
    );
}
