# 🛡️ Estándares y Calidad

## Estándares de Código

| Estándar | Herramienta | Configuración |
|----------|------------|---------------|
| **PSR-12** | Laravel Pint | `.styleci.yml` |
| **Type Safety** | PHPStan/Eloquent | strict mode |
| **Code Style** | Pint | `composer pint` |

### Comandos de Calidad

```bash
# Formatear código
composer pint

# Ejecutar tests
composer test
# o
php artisan test

# Tests con coverage
php artisan test --coverage
```

## Git Flow

### Ramas

```
main          → Producción estable
develop       → Desarrollo integrado
feature/*     → Nuevas funcionalidades
bugfix/*      → Corrección de bugs
hotfix/*      → Correcciones urgentes de producción
```

### Conventional Commits

```
tipo(alcance): descripción

Tipos:
- feat: Nueva funcionalidad
- fix: Corrección de bug
- docs: Documentación
- style: Formateo de código
- refactor: Refactorización
- test: Tests
- chore: Mantenimiento

Ejemplos:
feat(inventario): agregar búsqueda por código SAP
fix(prestamos): corregir cálculo de stock al devolver
docs(readme): actualizar instrucciones de instalación
```

## Testing

### Estructura de Tests

```
tests/
├── Feature/           # Tests de integración
│   ├── AuthTest.php
│   ├── InventarioTest.php
│   └── PrestamoTest.php
├── Unit/              # Tests unitarios
│   ├── ItemTest.php
│   └── TransactionTest.php
├── Pest.php           # Configuración de Pest
└── TestCase.php       # Case base
```

### Ejecutar Tests

```bash
# Todos los tests
php artisan test

# Tests específicos
php artisan test --filter=ItemTest

# Con coverage HTML
php artisan test --coverage-html coverage/

# Modo watch (Pest)
php artisan test --watch
```

## Seguridad

| Práctica | Implementación |
|----------|----------------|
| **Contraseñas** | BCrypt con rounds configurables |
| **CSRF** | Tokens CSRF en todos los formularios |
| **SQL Injection** | Eloquent ORM (parametrizado) |
| **XSS** | Blade escaping automático |
| **Auth** | Laravel Breeze + Sanctum (API) |
| **Rate Limiting** | Configurado en rutas |

---

*Última actualización: Marzo 2026*
