import { userRepo } from "@/server/repositories/user.repo";

/**
 * Pastikan user session aktif (tidak suspended) sebelum lanjut aksi mutatif.
 * Dipanggil di awal server action yang menulis ke DB (joinTrip, createTrip,
 * createReview, dll). Lookup fresh dari DB — jangan trust JWT karena suspend
 * bisa di-trigger sejak token dibuat.
 *
 * Throw Error dengan pesan user-friendly kalau suspended.
 */
export async function requireActiveUser(userId: string): Promise<void> {
  const suspended = await userRepo.isSuspended(userId);
  if (suspended) {
    throw new Error(
      "Akun kamu sedang ditangguhkan. Hubungi support@setrip.id untuk klarifikasi."
    );
  }
}
