Análisis del esquema actual vs tu necesidad
Problema principal: planes es global, sin dueño
El esquema actual de planes no tiene empresa_id — los planes son globales del sistema, no pertenecen a ninguna empresa. Esto impide que holdings o resellers creen sus propios planes.

Lo que ya tenés a favor
La tabla limites_reseller ya tiene campos muy útiles:

planes_permitidos (Json) — podría controlar qué planes puede usar/vender un reseller
modulos_permitidos (Json) — qué módulos puede incluir
comision_minima / comision_maxima — rango de comisión permitido
max_subsidiarios, max_suscripciones_activas — límites operativos
Lo que falta en el esquema
Tabla `planes` — necesita estos campos nuevos:
├── empresa_id        → Quién creó este plan (holding o reseller). NULL = plan del sistema
├── tipo_destino      → Para quién: 'subsidiario' | 'reseller' | 'todos'
├── visibilidad       → 'privado' (solo mi red) | 'publico'
└── plan_padre_id     → Si un reseller personaliza un plan del holding, referencia al original
 
Tabla `empresas` — necesita:
└── puede_crear_planes → Boolean. El holding controla si el reseller puede crear planes propios
 
Tabla `limites_reseller` — ya tiene lo necesario, solo falta usar:
├── planes_permitidos  → Ya existe (Json[]) — IDs de planes que puede vender
├── modulos_permitidos → Ya existe (Json[]) — módulos que puede incluir en planes propios
└── puede_crear_planes → Agregar como Boolean explícito
Flujo propuesto
HOLDING (crea planes globales)
│
├── Plan Básico 50K    → tipo_destino: 'todos'
├── Plan Pro 150K      → tipo_destino: 'subsidiario'  (solo para subsidiarios directos)
├── Plan Reseller 80K  → tipo_destino: 'reseller'      (plan especial para resellers)
│
├── SUBSIDIARIO DIRECTO
│   └── Se le asigna cualquier plan con tipo_destino 'subsidiario' o 'todos'
│
└── RESELLER (puede_crear_planes: true/false)
    │
    ├── SI puede_crear_planes = true:
    │   ├── Puede crear planes propios (limitado por modulos_permitidos del holding)
    │   ├── Precio mínimo/máximo controlado por holding
    │   └── Solo puede incluir módulos de modulos_permitidos
    │
    ├── SI puede_crear_planes = false:
    │   └── Solo puede vender los planes del holding (filtrado por planes_permitidos)
    │
    └── SUBSIDIARIO DEL RESELLER
        └── Se le asigna plan del reseller o plan del holding (según configuración)
Cambios concretos necesarios
1. Migración DB (2 columnas en planes, 1 en empresas):

sql
ALTER TABLE planes ADD COLUMN empresa_id UUID REFERENCES empresas(id);
ALTER TABLE planes ADD COLUMN tipo_destino VARCHAR(20) DEFAULT 'todos';
ALTER TABLE planes ADD COLUMN visibilidad VARCHAR(20) DEFAULT 'privado';
ALTER TABLE planes ADD COLUMN plan_padre_id UUID REFERENCES planes(id);
ALTER TABLE empresas ADD COLUMN puede_crear_planes BOOLEAN DEFAULT false;
2. Backend: CRUD en PlanesController con validaciones de permisos 3. Frontend: Tab "Planes" en Suscripciones para holdings, y sección de planes para resellers habilitados

Preguntas para definir antes de implementar
¿Un reseller puede modificar el precio de un plan del holding? (ej: Holding tiene Plan Pro a 150K, el reseller lo vende a 200K) — o solo puede crear planes nuevos?
¿Los planes del sistema actual (Plan 1, Plan 2) serían ahora propiedad de tu holding? (migrar los planes existentes con empresa_id = tu_holding_id)
¿Querés que implemente todo de una vez (migración + backend CRUD + frontend UI) o primero la migración + backend y después el frontend?