feat: add annual billing, free trial, upgrade/downgrade, and ACH invoice support
- Add monthly/annual billing toggle with 25% annual discount on pricing page - Implement 14-day no-card free trial (server-side Stripe subscription creation) - Enable upgrade/downgrade via Stripe Customer Portal - Add admin-initiated ACH/invoice billing for enterprise customers - Add billing card to Settings page with plan info and Manage Billing button - Handle past_due status with read-only grace period access - Add trial ending and trial expired email templates - Add DB migration for billing_interval and collection_method columns - Update ONBOARDING-AND-AUTH.md documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,7 @@ export interface TenantRequest extends Request {
|
||||
orgId?: string;
|
||||
userId?: string;
|
||||
userRole?: string;
|
||||
orgPastDue?: boolean;
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
@@ -41,6 +42,10 @@ export class TenantMiddleware implements NestMiddleware {
|
||||
});
|
||||
return;
|
||||
}
|
||||
// past_due: allow through with read-only flag (WriteAccessGuard enforces)
|
||||
if (orgInfo.status === 'past_due') {
|
||||
req.orgPastDue = true;
|
||||
}
|
||||
req.tenantSchema = orgInfo.schemaName;
|
||||
}
|
||||
req.orgId = decoded.orgId;
|
||||
|
||||
Reference in New Issue
Block a user