// Auteur : Simon-Pierre Boucher — contact@spboucher.ai // Carte de membre IMPRIMABLE au format carte bancaire (CR80 : 85,6 × 54 mm), // recto (identité) / verso (QR + zone NFC). À imprimer à l'échelle 100 %, // avec les arrière-plans activés, puis coller un autocollant NFC (NTAG215) // au dos, programmé avec l'URL d'identification du membre. import type { Metadata } from "next"; import { redirect } from "next/navigation"; import QRCode from "qrcode"; import { getSessionUser } from "@/lib/auth"; import { ensureKaId } from "@/lib/db"; import { roleCard } from "@/lib/roles"; import PrintButton from "./PrintButton"; export const metadata: Metadata = { title: "Carte imprimable | Groupe KA", robots: { index: false }, }; export const dynamic = "force-dynamic"; function fmtDate(iso: string | null): string { if (!iso) return ""; const d = new Date(iso.includes("T") ? iso : iso.replace(" ", "T") + "Z"); if (Number.isNaN(d.getTime())) return ""; return d.toLocaleDateString("fr-CA", { month: "2-digit", year: "numeric" }); } export default async function CarteImprimable() { const user = await getSessionUser(); if (!user) redirect("/connexion?next=%2Fcompte%2Fcarte"); const kaId = user.kaId ?? ensureKaId(user.id); const url = `https://www.groupe-ka.com/m/${kaId}`; const qr = await QRCode.toDataURL(url, { margin: 0, width: 400, color: { dark: "#141814", light: "#ffffff" }, }); return (

Carte physique · à imprimer

Votre carte, en vrai

Format carte bancaire (85,6 × 54 mm). Imprimez à l'échelle 100 % avec les arrière-plans activés, découpez le long des repères, et collez un autocollant NFC au dos (zone indiquée).

← Mon compte
{/* ---------- RECTO ---------- */}
Groupe KA CARTE DE MEMBRE
KA-ID {kaId}
{user.name || user.email} {roleCard(user.role) && ( {roleCard(user.role)} )} MEMBRE DEPUIS {fmtDate(user.createdAt)}
{user.avatarUrl ? ( // eslint-disable-next-line @next/next/no-img-element ) : ( {(user.name || user.email).charAt(0).toUpperCase()} )}
{/* ---------- VERSO ---------- */}
{/* eslint-disable-next-line @next/next/no-img-element */} {`Code

Tapez la carte (NFC)
ou scannez le code

groupe-ka.com/m/{kaId.slice(3)}

Identité vérifiable en ligne · Lou·Ka — Immo·Ka — Vrai-Prix — ValoPlex — Auto·Ka — Fabri·Ka — Food·Ka

Astuce : imprimez sur du papier cartonné (200 g+) ou plastifiez. L'autocollant NFC se colle au dos, dans la zone « NFC ».

); }