Refactor billing system: add-ons in wizard, remove business_tier, move to top-level app
- Add add-ons step to plan creation wizard (step 4 of 5) - Remove redundant business_tier field from both billing systems: - commerce.billing.PlanVersion (new system) - platform.admin.SubscriptionPlan (legacy system) - Move billing app from commerce.billing to top-level smoothschedule.billing - Create BillingManagement page at /platform/billing with sidebar link - Update plan matching logic to use plan.name instead of business_tier Frontend: - Add BillingManagement.tsx page - Add BillingPlansTab.tsx with unified plan wizard - Add useBillingAdmin.ts hooks - Update TenantInviteModal, BusinessEditModal, BillingSettings to use plan.name - Remove business_tier from usePlatformSettings, payments.ts types Backend: - Move billing app to smoothschedule/billing/ - Add migrations 0006-0009 for plan version settings, feature seeding, business_tier removal - Add platform_admin migration 0013 to remove business_tier - Update seed_subscription_plans command - Update tasks.py to map tier by plan name 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -63,6 +63,7 @@ const PlatformEmailAddresses = React.lazy(() => import('./pages/platform/Platfor
|
||||
const PlatformUsers = React.lazy(() => import('./pages/platform/PlatformUsers'));
|
||||
const PlatformStaff = React.lazy(() => import('./pages/platform/PlatformStaff'));
|
||||
const PlatformSettings = React.lazy(() => import('./pages/platform/PlatformSettings'));
|
||||
const BillingManagement = React.lazy(() => import('./pages/platform/BillingManagement'));
|
||||
const ProfileSettings = React.lazy(() => import('./pages/ProfileSettings'));
|
||||
const VerifyEmail = React.lazy(() => import('./pages/VerifyEmail'));
|
||||
const EmailVerificationRequired = React.lazy(() => import('./pages/EmailVerificationRequired'));
|
||||
@@ -495,7 +496,10 @@ const AppContent: React.FC = () => {
|
||||
<Route path="/help/plugins" element={<HelpPluginDocs />} />
|
||||
<Route path="/help/email" element={<HelpEmailSettings />} />
|
||||
{user.role === 'superuser' && (
|
||||
<Route path="/platform/settings" element={<PlatformSettings />} />
|
||||
<>
|
||||
<Route path="/platform/settings" element={<PlatformSettings />} />
|
||||
<Route path="/platform/billing" element={<BillingManagement />} />
|
||||
</>
|
||||
)}
|
||||
<Route path="/platform/profile" element={<ProfileSettings />} />
|
||||
<Route path="/verify-email" element={<VerifyEmail />} />
|
||||
|
||||
Reference in New Issue
Block a user