Add green-bean inventory and cupping features
Ports inventory management and SCA-style cupping scoring from hope_roaster: lot tracking with audit-logged consumption, cupping sessions with server-authoritative scoring and a live radar chart, and links from the planner (draw-from-lot, open-cupping-session). Also fixes the Blend/Single-origin toggle layout, replaces tooltips with an in-context "why" teaching layer, and stages the planner UI into pre-roast vs. post-roast phases.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
/** Sends transactional email via SMTP when configured; the caller decides what to do when this
|
||||
* returns false (e.g. log the link so an admin can hand it to the user manually). */
|
||||
export async function sendMail({ smtpUrl, from, to, subject, text }) {
|
||||
if (!smtpUrl) return false;
|
||||
const { default: nodemailer } = await import("nodemailer");
|
||||
const transporter = nodemailer.createTransport(smtpUrl);
|
||||
await transporter.sendMail({ from, to, subject, text });
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user