# _MAP: MGN-006 - Settings

**Modulo:** MGN-006
**Nombre:** Configuraciones del Sistema
**Fase:** 02 - Core Business
**Story Points:** 25 SP
**Estado:** Implementado
**Sprint:** 6
**Ultima actualizacion:** 2026-01-07

---

## Resumen

Sistema de configuraciones de 3 niveles (Sistema -> Tenant -> Usuario) que gestiona parametros globales con herencia y override por nivel.

---

## Metricas

| Metrica | Valor |
|---------|-------|
| Story Points | 25 SP |
| Requerimientos (RF) | 4 |
| Especificaciones (ET) | 3 |
| User Stories (US) | 4 |
| Tablas DB | 3 |
| Endpoints API | 12 |
| Tests | 28 |

---

## Requerimientos Funcionales

| ID | Titulo | Prioridad | SP |
|----|--------|-----------|---:|
| [RF-SETTINGS-001](./requerimientos/RF-SETTINGS-001.md) | Configuracion del Sistema | P0 | 8 |
| [RF-SETTINGS-002](./requerimientos/RF-SETTINGS-002.md) | Configuracion por Tenant | P0 | 8 |
| [RF-SETTINGS-003](./requerimientos/RF-SETTINGS-003.md) | Preferencias de Usuario | P1 | 5 |
| [RF-SETTINGS-004](./requerimientos/RF-SETTINGS-004.md) | Feature Flags | P1 | 5 |

**Indice completo:** [INDICE-RF-SETTINGS.md](./requerimientos/INDICE-RF-SETTINGS.md)

---

## Especificaciones Tecnicas

| ID | Archivo | Titulo |
|----|---------|--------|
| ET-SETTINGS-backend | [ET-SETTINGS-backend.md](./especificaciones/ET-SETTINGS-backend.md) | Backend Services |
| ET-SETTINGS-frontend | [ET-SETTINGS-frontend.md](./especificaciones/ET-SETTINGS-frontend.md) | Frontend Components |
| ET-SETTINGS-database | [ET-SETTINGS-database.md](./especificaciones/ET-SETTINGS-database.md) | Database Schema |

---

## Historias de Usuario

| ID | Titulo | Estado |
|----|--------|--------|
| US-MGN006-001 | Configuracion Sistema | Implementado |
| US-MGN006-002 | Configuracion Tenant | Implementado |
| US-MGN006-003 | Preferencias Usuario | Implementado |
| US-MGN006-004 | Cascada 3 Niveles | Implementado |

---

## Implementacion

### Database (DDL: 09-system-extensions.sql)

| Objeto | Tipo | Schema |
|--------|------|--------|
| system_settings | Tabla | system |
| tenant_settings | Tabla | tenants |
| user_preferences | Tabla | auth |

### Backend (src/modules/system/)

| Objeto | Tipo | Path |
|--------|------|------|
| SettingsService | Service | src/modules/system/settings.service.ts |
| SettingsController | Controller | src/modules/system/settings.controller.ts |
| SettingsRoutes | Routes | src/modules/system/settings.routes.ts |

### Entities

| Entity | Path |
|--------|------|
| SystemSetting | src/modules/system/entities/system-setting.entity.ts |
| TenantSetting | src/modules/system/entities/tenant-setting.entity.ts |
| UserPreference | src/modules/system/entities/user-preference.entity.ts |

### Tests (28 tests)

| Test File | Tests |
|-----------|-------|
| settings.service.spec.ts | 28 |

### Caracteristicas Implementadas

- **Cascada de 3 niveles:** User -> Tenant -> System (con fallback)
- **Cache con TTL:** 5 minutos para optimizar queries
- **RLS Policies:** Aislamiento por tenant y usuario
- **Seed Data:** Configuraciones base del sistema

---

## Dependencias

**Depende de:** MGN-001 (Auth), MGN-004 (Tenants)

**Requerido por:** Todos los modulos

---

## Trazabilidad

Ver: [TRACEABILITY.yml](./implementacion/TRACEABILITY.yml)

---

## Changelog

| Fecha | Sprint | Cambios |
|-------|--------|---------|
| 2026-01-07 | Sprint 6 | Implementacion completa: Settings Service 3-level cascade |
| 2025-12-05 | - | Documentacion RF inicial |

---

**Generado por:** Requirements-Analyst
**Implementado por:** Backend-Agent (Sprint 6)
**Fecha:** 2026-01-07
