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:
@@ -1,7 +1,7 @@
|
||||
import React from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Link, useLocation } from 'react-router-dom';
|
||||
import { LayoutDashboard, Building2, MessageSquare, Settings, Users, Shield, HelpCircle, Code, Mail } from 'lucide-react';
|
||||
import { LayoutDashboard, Building2, MessageSquare, Settings, Users, Shield, HelpCircle, Code, Mail, CreditCard } from 'lucide-react';
|
||||
import { User } from '../types';
|
||||
import SmoothScheduleLogo from './SmoothScheduleLogo';
|
||||
|
||||
@@ -75,6 +75,10 @@ const PlatformSidebar: React.FC<PlatformSidebarProps> = ({ user, isCollapsed, to
|
||||
<Shield size={18} className="shrink-0" />
|
||||
{!isCollapsed && <span>{t('nav.staff')}</span>}
|
||||
</Link>
|
||||
<Link to="/platform/billing" className={getNavClass('/platform/billing')} title="Billing Management">
|
||||
<CreditCard size={18} className="shrink-0" />
|
||||
{!isCollapsed && <span>Billing</span>}
|
||||
</Link>
|
||||
<Link to="/platform/settings" className={getNavClass('/platform/settings')} title={t('nav.platformSettings')}>
|
||||
<Settings size={18} className="shrink-0" />
|
||||
{!isCollapsed && <span>{t('nav.platformSettings')}</span>}
|
||||
|
||||
Reference in New Issue
Block a user