# 💰 Flujo de Compra de Campaña - CampaignHub

## 🎯 ¿Quién Puede Crear (Comprar) una Campaña?

### ✅ CUALQUIER USUARIO REGISTRADO

**No necesitas un rol especial para crear tu primera campaña.**

1. Te registras con email/password
2. Inicias sesión
3. Vas al dashboard
4. Creas tu campaña (compra)
5. Automáticamente te conviertes en **Campaign Admin** de esa campaña

---

## 🚀 Flujo Completo Paso a Paso

### 1. REGISTRO (Cualquier Usuario)

```
http://localhost:8001/register

→ Llenar formulario
→ No se pide rol específico
→ Por defecto se crea como usuario básico
```

### 2. LOGIN

```
http://localhost:8001/login

→ Ingresar con email/password
→ Redirige al dashboard según rol actual
```

### 3. DASHBOARD - PRIMERA VEZ

**Si NO tienes campaña:**

```
http://localhost:8001/admin/dashboard

Se muestra alerta amarilla:
┌────────────────────────────────────────┐
│ 🚀 ¡Comienza tu Campaña Electoral!    │
│                                        │
│ No tienes ninguna campaña creada.     │
│                                        │
│ [✨ Crear Mi Primera Campaña]         │
└────────────────────────────────────────┘
```

**Si YA tienes campaña:**

```
Se muestra:
- Nombre de campaña actual
- Botón "➕ Nueva Campaña"
- Botón "📋 Mis Campañas"
- Botón "⚙️ Configurar Campaña"
```

### 4. CREAR CAMPAÑA (COMPRA)

```
http://localhost:8001/campaigns/create

┌─────────────────────────────────────────┐
│  PLANES                                 │
│  ○ Starter  $99/mes                     │
│  ○ Pro      $299/mes  ← Recomendado    │
│  ○ Enterprise $999/mes                  │
│                                         │
│  FORMULARIO                             │
│  - Nombre de la Campaña                 │
│  - Nombre del Candidato                 │
│  - Email                                │
│  - Nivel (Municipal/Regional/Nacional)  │
│  - Jurisdicción                         │
│                                         │
│  [🚀 Crear Campaña]                     │
│                                         │
│  ✨ 14 días de prueba gratis            │
│  No se requiere tarjeta                 │
└─────────────────────────────────────────┘

→ Al crear:
  1. Se crea la campaña
  2. Tú te conviertes en Campaign Admin (owner)
  3. Se te asigna automáticamente a la campaña
  4. Tienes 14 días de prueba gratis
```

### 5. DESPUÉS DE CREAR

```
Automáticamente redirige a:
http://localhost:8001/campaigns/1/settings

Aquí configuras:
- Tab General: Datos básicos
- Tab APIs: WhatsApp, Email, Redes
- Tab Equipo: Invitar coordinadores/voluntarios
- Tab Branding: Logo, colores
```

---

## 🔑 Roles Automáticos

### Al Registrarte
```
Usuario nuevo → Sin rol específico de campaña
```

### Al Crear Tu Primera Campaña
```
Usuario → Campaign Admin (owner) de tu campaña
```

### Al Invitar a Alguien
```
Invitado → Rol asignado por ti (coordinator/volunteer)
```

---

## 💡 Casos de Uso

### Caso 1: Usuario Nuevo (Candidato)

```
1. Me registro: juan@email.com
2. Inicio sesión → Voy a dashboard
3. Veo: "No tienes campaña"
4. Clic en "Crear Mi Primera Campaña"
5. Elijo Plan Pro ($299)
6. Lleno formulario: "Alcaldía Medellín 2024"
7. Click "Crear Campaña"
8. ✅ Ahora soy Campaign Admin
9. Configuro WhatsApp, Email, etc.
10. Invito mi equipo
```

### Caso 2: Coordinador Invitado

```
1. Me registro: maria@email.com
2. Juan me invita a su campaña como "coordinator"
3. Recibo email con link
4. Inicio sesión
5. Voy a mi dashboard
6. Veo la campaña de Juan
7. Puedo gestionar voluntarios, GOTV
8. NO puedo crear campañas
9. NO puedo configurar APIs
```

### Caso 3: Usuario con Múltiples Campañas

```
1. Soy Campaign Admin de Campaña 1
2. Creo Campaña 2 (otra elección)
3. Me invitan a Campaña 3 como coordinator
4. En mi dashboard:
   - Botón "📋 Mis Campañas"
   - Puedo cambiar entre las 3
   - En cada una tengo diferente rol
```

---

## 🎨 Interfaz del Dashboard

### Dashboard sin Campaña

```
┌───────────────────────────────────────────────┐
│ 🏛️ CampaignHub              Juan Pérez  🚪   │
├───────────────────────────────────────────────┤
│                                               │
│  🚀 ¡Comienza tu Campaña Electoral!          │
│                                               │
│  No tienes ninguna campaña creada.           │
│  Crea tu primera campaña para empezar        │
│                                               │
│  [✨ Crear Mi Primera Campaña]               │
│                                               │
│                                         🏛️   │
└───────────────────────────────────────────────┘
```

### Dashboard con Campaña

```
┌───────────────────────────────────────────────┐
│ 🏛️ CampaignHub              Juan Pérez  🚪   │
├───────────────────────────────────────────────┤
│                                               │
│  ¡Bienvenido al Panel de Administración!     │
│  📍 Campaña Actual: Alcaldía Medellín 2024   │
│                                               │
│  [➕ Nueva Campaña]                           │
│  [📋 Mis Campañas]                            │
│  [⚙️ Configurar Campaña]                      │
│                                               │
├───────────────────────────────────────────────┤
│                                               │
│  💬 WhatsApp    📧 Email     🔍 Social        │
│  🗳️ GOTV       📊 Stats     🤖 IA            │
│  ⚙️ Config     👥 Usuarios  🔐 Permisos       │
│                                               │
└───────────────────────────────────────────────┘
```

---

## 🔄 Estado Actual de la Implementación

### ✅ YA FUNCIONA

- [x] Cualquier usuario puede crear campaña
- [x] Al crear → Se convierte en Campaign Admin
- [x] Dashboard detecta si tiene campaña
- [x] Muestra alerta si no tiene campaña
- [x] Botón "Crear Primera Campaña"
- [x] Botones de gestión (Nueva, Mis Campañas, Configurar)
- [x] 14 días de prueba gratis

### 🔄 PRÓXIMOS PASOS

- [ ] Modal "Mis Campañas" para ver todas
- [ ] Cambiar entre campañas fácilmente
- [ ] Sistema de pagos (después del trial)
- [ ] Notificación cuando expira trial
- [ ] Upgrade/downgrade de planes

---

## 💳 Sistema de Pagos (Pendiente)

### Actualmente

```
Crear Campaña → 14 días GRATIS → Después... ❓
```

### A Implementar

```
Crear Campaña → 14 días GRATIS → Día 14:

┌────────────────────────────────┐
│ ⚠️ Tu prueba ha expirado       │
│                                │
│ Para continuar, activa tu      │
│ suscripción:                   │
│                                │
│ [💳 Pagar $299/mes]            │
└────────────────────────────────┘
```

O con Stripe:

```
Crear Campaña → Elegir Plan → Pagar con Stripe → Activar
```

---

## 🎯 Respuesta a tu Pregunta

### "¿Qué tipo de usuario puede comprar?"

**RESPUESTA:** ✅ **CUALQUIER USUARIO REGISTRADO**

No necesitas rol especial. El flujo es:

1. ✅ Registrarte (email/password)
2. ✅ Iniciar sesión
3. ✅ Ir al dashboard
4. ✅ Ver botón "Crear Mi Primera Campaña"
5. ✅ Crear campaña (aquí "compras")
6. ✅ Automáticamente eres Campaign Admin

### "¿Por qué no aparece donde crear campaña al hacer login?"

**RESPUESTA:** Ahora SÍ aparece:

1. ✅ Login
2. ✅ Te lleva al dashboard
3. ✅ Si no tienes campaña → Gran alerta amarilla
4. ✅ Botón destacado "✨ Crear Mi Primera Campaña"

---

## 📊 Prueba el Flujo

### Paso 1: Registrarse
```bash
http://localhost:8001/register

Email: test@campaign.com
Nombre: Test User
Password: password
```

### Paso 2: Login
```bash
http://localhost:8001/login

Email: test@campaign.com
Password: password
```

### Paso 3: Ver Dashboard
```bash
Automático: http://localhost:8001/admin/dashboard

Verás: "🚀 ¡Comienza tu Campaña Electoral!"
```

### Paso 4: Crear Campaña
```bash
Click en "✨ Crear Mi Primera Campaña"
→ http://localhost:8001/campaigns/create

Llenar formulario
Click "🚀 Crear Campaña"
```

### Paso 5: Configurar
```bash
Automático: http://localhost:8001/campaigns/1/settings

Configura:
- APIs (WhatsApp, Email)
- Branding (Logo, colores)
- Equipo (Invitar usuarios)
```

---

## ✅ Conclusión

**AHORA SÍ FUNCIONA EL FLUJO COMPLETO:**

1. ✅ Registro
2. ✅ Login
3. ✅ Dashboard muestra "Crear Campaña"
4. ✅ Crear campaña (compra con trial gratis)
5. ✅ Configurar ambiente
6. ✅ Invitar equipo
7. ✅ Usar sistema

**¡Pruébalo ahora!** 🚀







