101 lines
2.4 KiB
Markdown
101 lines
2.4 KiB
Markdown
# ServiceManagerWeb - Mesa de Ayuda B2B Copilot Instructions
|
|
|
|
Este proyecto es un sistema multi-tenant de Mesa de Ayuda/Soporte Técnico empresarial.
|
|
|
|
## Contexto del Proyecto
|
|
|
|
- **Empresa**: Aduanasoft (B2B)
|
|
- **Sistema**: Mesa de Ayuda multi-tenant
|
|
- **Arquitectura**: Modular Monolith con Clean Architecture
|
|
- **Target**: MVP enterprise-grade
|
|
|
|
## Stack Tecnológico
|
|
|
|
### Backend
|
|
- Python FastAPI (async)
|
|
- Pydantic v2 para validación
|
|
- SQLAlchemy 2.0 (async ORM)
|
|
- PostgreSQL como base de datos principal
|
|
- Redis para cache y broker Celery
|
|
- Celery para tareas asíncronas
|
|
- Alembic para migraciones
|
|
- Argon2/Bcrypt para hash de passwords
|
|
- PyJWT para autenticación
|
|
|
|
### Frontend
|
|
- SvelteKit + TypeScript
|
|
- Dos aplicaciones: cliente e interna
|
|
- TailwindCSS para estilos
|
|
- Zod para validación del lado cliente
|
|
|
|
### DevOps
|
|
- Docker + Docker Compose
|
|
- Nginx como reverse proxy
|
|
- Variables de entorno para configuración
|
|
- Healthchecks para servicios
|
|
|
|
## Dominios del Sistema
|
|
|
|
1. **auth**: Autenticación, usuarios, roles, 2FA
|
|
2. **tenants**: Multi-tenancy, organizaciones cliente
|
|
3. **tickets**: Core del sistema - tickets, estados, SLAs
|
|
4. **notifications**: Email, plantillas, comunicaciones
|
|
5. **audit**: Bitácora de acciones para compliance
|
|
|
|
## Roles de Usuario
|
|
|
|
- **ADMIN**: Control total (usuarios internos)
|
|
- **SUPPORT_MANAGER**: Gestión equipos y SLAs
|
|
- **AGENT**: Atención de tickets
|
|
- **AUDITOR**: Solo lectura para auditoría
|
|
- **CLIENT_ADMIN**: Gestión organización cliente
|
|
- **CLIENT_USER**: Creación/seguimiento tickets
|
|
|
|
## Reglas de Desarrollo
|
|
|
|
### Seguridad
|
|
- Siempre validar inputs con Pydantic
|
|
- Rate limiting en endpoints críticos
|
|
- Sanitizar archivos adjuntos
|
|
- Correlation ID en logs
|
|
- CORS restrictivo
|
|
|
|
### Código
|
|
- Clean Architecture por dominios
|
|
- Async/await en toda la aplicación
|
|
- Type hints obligatorios
|
|
- Docstrings en funciones públicas
|
|
- Tests unitarios + integración
|
|
|
|
### Base de Datos
|
|
- Migrations solo con Alembic
|
|
- Constraints a nivel de BD
|
|
- Índices para queries frecuentes
|
|
- Soft deletes cuando aplique
|
|
|
|
### API
|
|
- OpenAPI bien documentado
|
|
- Versionado con prefijo /v1/
|
|
- Paginación en listados
|
|
- Responses consistentes
|
|
|
|
## Comandos Útiles
|
|
|
|
```bash
|
|
# Setup inicial
|
|
docker-compose up -d
|
|
alembic upgrade head
|
|
|
|
# Desarrollo backend
|
|
uvicorn app.main:app --reload
|
|
|
|
# Testing
|
|
pytest --cov=app tests/
|
|
|
|
# Linting
|
|
ruff check . --fix
|
|
black .
|
|
mypy .
|
|
```
|
|
|
|
Cuando trabajes en este proyecto, siempre considera la naturaleza multi-tenant y empresarial del sistema. |