Terms 2
CI / ci (push) Canceled after 0s

Policies section

New settings: two new dropdowns are under Policies in Manage Business:
Name shown on Terms & Privacy: NextChair, My business name, or NextChair and my business name.
Contact email on Terms & Privacy: NextChair (info@next-chair.co.uk) or My business email.
Fallbacks: both default to NextChair. If you pick the business email but haven’t set one, the form warns you and the pages fall back to the NextChair address.
Where the name appears: the choice changes the name in the header link, footer, “we/us” definition, privacy controller line and intro on both pages.
Business email: it replaces the address in the complaints section and the privacy contact lines.
Database change: this needed a new migration, 20261017120000_add_legal_display_settings. Existing businesses default to NextChair, so nothing changes for them. Run prisma migrate deploy on your server.

Terms and placeholders

Sections 15 (Governing law) and 16 (Contact us) are removed from terms/page.tsx, so the Terms now have 14 sections.
The [LEGAL ENTITY NAME] and [REGISTERED ADDRESS] placeholders are gone, along with the unused governing-law setting. The contact email is now info@next-chair.co.uk in legal-config.ts.

Login page

sign-in-form.tsx now shows “By continuing, you agree to our Terms of Service and Privacy Policy”, with both as links.
This commit is contained in:
Stefan Lazic committed 2026-10-17 10:38:07 +01:00
1 parent 05ea83e059
commit 766a0808ab
14 files changed
+707 -482

No files matched your search

@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE `BusinessSettings` ADD COLUMN `legalContactEmail` ENUM('NEXTCHAIR', 'BUSINESS') NOT NULL DEFAULT 'NEXTCHAIR',
ADD COLUMN `legalNameDisplay` ENUM('NEXTCHAIR', 'BUSINESS', 'BOTH') NOT NULL DEFAULT 'NEXTCHAIR';
+19
View File
@@ -223,6 +223,17 @@ enum CalendarProvider {
GOOGLE
}
enum LegalNameDisplay {
NEXTCHAIR
BUSINESS
BOTH
}
enum LegalContactEmail {
NEXTCHAIR
BUSINESS
}
/// Per-appointment sync outcome, not the connection's overall health (see
/// StaffCalendarConnection.lastSyncError for that).
enum CalendarSyncStatus {
@@ -403,6 +414,14 @@ model BusinessSettings {
bookingTerms String? @db.Text
privacyPolicyUrl String?
/// Who the public Terms of Service / Privacy Policy pages name as "we" —
/// see src/features/legal/legal-identity.ts. NEXTCHAIR is the default so
/// existing businesses keep today's wording.
legalNameDisplay LegalNameDisplay @default(NEXTCHAIR)
/// Which inbox those pages give for legal/privacy requests. BUSINESS uses
/// Business.email and falls back to NextChair's when that is empty.
legalContactEmail LegalContactEmail @default(NEXTCHAIR)
/// Phase 9 — Google reviews visibility policy, applied on top of the
/// per-review Review.isHidden flag. Null minRating = no floor.
reviewsMinRating Int?