BREAKING CHANGE: Stripe environment variables simplified. Check out the new configs to adapt your existing system. Closes #906 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ### Summary by CodeRabbit **New Features:** - Introduced a usage-based billing system, providing more flexibility and options for users. - Integrated with Stripe for a smoother and more secure payment process. - Enhanced the user interface with improvements to the billing, workspace, and pricing pages for a more intuitive experience. **Improvements:** - Simplified the billing logic, removing additional chats and yearly billing for a more streamlined user experience. - Updated email notifications to keep users informed about their usage and limits. - Improved pricing and currency formatting for better clarity and understanding. **Testing:** - Updated tests and specifications to ensure the reliability of new features and improvements. **Note:** These changes aim to provide a more flexible and user-friendly billing system, with clearer pricing and improved notifications. Users should find the new system more intuitive and easier to navigate. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
20 lines
482 B
TypeScript
20 lines
482 B
TypeScript
import { Plan } from '@typebot.io/prisma'
|
|
import { chatsLimits } from './constants'
|
|
import { Workspace } from '@typebot.io/schemas'
|
|
|
|
export const getChatsLimit = ({
|
|
plan,
|
|
customChatsLimit,
|
|
}: Pick<Workspace, 'plan'> & {
|
|
customChatsLimit?: Workspace['customChatsLimit']
|
|
}) => {
|
|
if (
|
|
plan === Plan.UNLIMITED ||
|
|
plan === Plan.LIFETIME ||
|
|
plan === Plan.OFFERED
|
|
)
|
|
return -1
|
|
if (plan === Plan.CUSTOM) return customChatsLimit ?? -1
|
|
return chatsLimits[plan]
|
|
}
|