# US-MGN-002-003-001: Asignar Usuarios a Empresas (Multi-Company Access)

**RF Asociado:** [RF-MGN-002-003](../../02-modelado/requerimientos-funcionales/mgn-002/RF-MGN-002-003-asignacion-usuarios-empresas.md)
**Módulo:** MGN-002 - Empresas y Organizaciones
**Epic:** Multi-Empresa
**Prioridad:** P0 (MVP)
**Story Points:** 5
**Sprint:** Sprint 4
**Fecha:** 2025-11-24

---

## User Story

**Como** administrador,
**Quiero** asignar usuarios a una o múltiples empresas,
**Para** controlar a qué datos empresariales tiene acceso cada usuario.

---

## Criterios de Aceptación

### Escenario 1: Asignar usuario a empresa
**Cuando** asigno usuario a empresa A,
**Entonces** usuario puede ver/editar datos de empresa A según sus permisos.

### Escenario 2: Usuario multi-empresa
**Cuando** asigno usuario a empresas A y B,
**Entonces** usuario puede cambiar contexto entre empresas (company switcher).

### Escenario 3: Revocar acceso a empresa
**Cuando** elimino asignación de empresa,
**Entonces** usuario ya no ve datos de esa empresa.

---

## Reglas de Negocio

- **RN-1:** Un usuario puede tener acceso a múltiples empresas del mismo tenant
- **RN-2:** Usuario debe tener al menos 1 empresa asignada
- **RN-3:** Queries filtran por company_id de empresa activa
- **RN-4:** Al login, establecer empresa por defecto

---

## Tareas Técnicas

- [ ] POST /api/v1/users/:id/companies - Asignar empresa
- [ ] DELETE /api/v1/users/:id/companies/:companyId - Revocar
- [ ] GET /api/v1/users/:id/companies - Listar empresas del usuario
- [ ] Tabla: org.user_companies (user_id, company_id, is_default)
- [ ] Tests

---

## Estimación: 5 SP

---

## Referencias

- [RF-MGN-002-003](../../02-modelado/requerimientos-funcionales/mgn-002/RF-MGN-002-003-asignacion-usuarios-empresas.md)
