From 9fecb7d37488de9ff5b552693368040be3593fc0 Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Mon, 20 Apr 2026 13:22:19 +0100 Subject: [PATCH] feat(members): add taxReceiptPreferences schema field (Phase 1 forward-compat) Nested object with filesCanadianTaxes, middleInitial, confirmedAddress (street/city/province/country/postalCode), setupCompletedAt. All default to null/false so existing members read as 'not set up'. Schema-only: no Zod, no API route, no UI. Phase 2 will build the account-page preferences flow and bind to these fields without needing a migration. --- server/models/member.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/models/member.js b/server/models/member.js index 489ffae..65949a4 100644 --- a/server/models/member.js +++ b/server/models/member.js @@ -95,6 +95,19 @@ const memberSchema = new mongoose.Schema({ acceptedAt: Date, }, + taxReceiptPreferences: { + filesCanadianTaxes: { type: Boolean, default: false }, + middleInitial: { type: String, default: null }, + confirmedAddress: { + street: { type: String, default: null }, + city: { type: String, default: null }, + province: { type: String, default: null }, + country: { type: String, default: null }, + postalCode: { type: String, default: null }, + }, + setupCompletedAt: { type: Date, default: null }, + }, + // Magic link single-use enforcement magicLinkJti: String, magicLinkJtiUsed: { type: Boolean, default: false },