Personales y de equipo juntos
Por qué el plan del equipo va en la organización y no en el cliente del usuario.
Si tu producto tiene planes personales y planes de equipo, cada uno vive en su propio cliente: el usuario user_42 con Hobby, Plus o Pro, y la organización org_7 con Business. El usuario es además miembro de org_7. Son dos clientes con una suscripción cada uno, y ninguno toca al otro.
Por qué no en el mismo cliente
Poner Business en el cliente user_42, junto a su plan personal, parece más simple, pero un cliente es una sola bolsa de puestos y cuotas:
- Los puestos de todas sus suscripciones se suman, y son ilimitados si alguna lo es. Hobby incluye puestos ilimitados por defecto, así que el límite de puestos de Business dejaría de limitar algo. Aunque no lo fueran, los puestos de un plan personal terminarían sumándose a los del equipo.
- Las cuotas se mezclan. Por cada cuota, el cliente recibe la mayor que le da alguna de sus suscripciones: no habría forma de separar lo que gasta el equipo de lo que gasta la persona.
- Un cliente tiene una sola suscripción en curso por plan.
subscriptions.create, los cambios y los checkouts rechazan una segunda (subscription_exists), así que quien administra dos equipos no podría pagar Business para el segundo. - El equipo quedaría atado a una persona. Si quien pagó se va de la organización, la suscripción, los puestos y los miembros se van con su cliente.
Cómo conviven
Tu aplicación elige el cliente según dónde está trabajando la persona: en su espacio personal consulta su cliente; en el del equipo, el de la organización con la persona como miembro.
const access = workspace.type === "team"
? await billete.features.check(workspace.orgId, "mensajes", { member: user.id })
: await billete.features.check(user.id, "mensajes");Cada lado escucha sus propios eventos: los del cliente user_42 actualizan el plan del usuario y los de org_7 el estado del equipo. Una suspensión del equipo no cambia el plan personal de nadie, y cancelar Plus no afecta al equipo.
Un plan por puesto en el mismo cliente sí tiene sentido cuando suma puestos al mismo equipo: por ejemplo, «Puestos extra» como complemento de un plan con puestos incluidos. Mira puestos y respaldo.