export const auth = betterAuth({
emailAndPassword: {
enabled: false,
},
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
plugins: [
magicLink({
sendMagicLink: async ({ email, url }) => {
await resend.emails.send({
from: "LGC <contact@lgc-supervision.site>",
to: email,
subject: "Lien de connexion Ć LGC Supervision",
react: await EmailTemplate({ url }),
});
},
}),
nextCookies(),
],
callbacks: {
async session({
session,
user,
}: {
session: CustomSession;
user: { id: string };
}) {
const fullUser = await prisma.user.findUnique({
where: { id: user.id },
include: { company: true },
}) as User & { company: Company | null };
session.user.name = fullUser.name;
session.user.email = fullUser.email;
session.user.role = fullUser.role;
if (fullUser.company) {
session.user.company = {
name: fullUser.company.name,
color: fullUser.company.color,
};
}
return session;
},
},
});
export const auth = betterAuth({
emailAndPassword: {
enabled: false,
},
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
plugins: [
magicLink({
sendMagicLink: async ({ email, url }) => {
await resend.emails.send({
from: "LGC <contact@lgc-supervision.site>",
to: email,
subject: "Lien de connexion Ć LGC Supervision",
react: await EmailTemplate({ url }),
});
},
}),
nextCookies(),
],
callbacks: {
async session({
session,
user,
}: {
session: CustomSession;
user: { id: string };
}) {
const fullUser = await prisma.user.findUnique({
where: { id: user.id },
include: { company: true },
}) as User & { company: Company | null };
session.user.name = fullUser.name;
session.user.email = fullUser.email;
session.user.role = fullUser.role;
if (fullUser.company) {
session.user.company = {
name: fullUser.company.name,
color: fullUser.company.color,
};
}
return session;
},
},
});