free-admin agregó SEMIANNUAL al enum billing_cycle de membresías, y el contrato en /api/v1/openapi.json ya está regenerado.
Es aditivo: no rompe nada. Un cliente con el enum viejo sigue funcionando para los cuatro ciclos que ya conocía. Pero si valida la respuesta contra su propio enum, un plan semestral le va a fallar la validación o caer en un default.
Valores actuales: MONTHLY, QUARTERLY, SEMIANNUAL, ANNUAL, LIFETIME.
Para actualizar:
freeticket-cli — enum de billing_cycle y la etiqueta que muestra al usuario.
freeticket-mcp — el schema de las herramientas de planes de membresía.
Un detalle que costó caro del lado del server y conviene no repetir: el ciclo nuevo se coló por un switch con default:, y dejó planes que no vencían nunca y que Stripe cobraba como pago único. Si en los clientes hay un switch sobre billing_cycle, vale la pena hacerlo exhaustivo para que el próximo valor rompa en compilación en vez de degradar en silencio.
PR de origen: AppFreeticket/free-admin#462
🤖 Generated with Claude Code
free-adminagregóSEMIANNUALal enumbilling_cyclede membresías, y el contrato en/api/v1/openapi.jsonya está regenerado.Es aditivo: no rompe nada. Un cliente con el enum viejo sigue funcionando para los cuatro ciclos que ya conocía. Pero si valida la respuesta contra su propio enum, un plan semestral le va a fallar la validación o caer en un
default.Valores actuales:
MONTHLY,QUARTERLY,SEMIANNUAL,ANNUAL,LIFETIME.Para actualizar:
freeticket-cli— enum debilling_cycley la etiqueta que muestra al usuario.freeticket-mcp— el schema de las herramientas de planes de membresía.Un detalle que costó caro del lado del server y conviene no repetir: el ciclo nuevo se coló por un
switchcondefault:, y dejó planes que no vencían nunca y que Stripe cobraba como pago único. Si en los clientes hay unswitchsobrebilling_cycle, vale la pena hacerlo exhaustivo para que el próximo valor rompa en compilación en vez de degradar en silencio.PR de origen: AppFreeticket/free-admin#462
🤖 Generated with Claude Code