MemberFlow es una plataforma integral para la gestión de academias de artes marciales, con funcionalidades que cubren usuarios, clases, asistencias, membresías, pagos y facturación. Este repositorio corresponde al **backend API** desarrollado en **Java + Spring Boot**.
Se utiliza Spring Security con JWT para autenticar y autorizar usuarios. El token se genera mediante el `AuthController` y se debe incluir en las peticiones siguientes vía header:
spring.profiles.active=dev (opcional para datos de prueba)
```
---
## 🧪 Datos de prueba
La clase `TestDataSeeder` inserta automáticamente entidades para facilitar pruebas: usuarios, roles, permisos, clases, facturas, etc. Se activa con el perfil `dev`.
---
## 🧾 Uso y construcción
### En desarrollo local:
```bash
mvn clean install
```
Luego ejecutar `MemberFlowApplication` desde tu IDE.
### Docker:
Integrado en `docker-compose`, se despliega junto a MySQL y frontend automáticamente.
---
## ✅ Pruebas
```bash
mvn test
```
Incluye pruebas unitarias para cada servicio (`UserService`, `InvoiceService`, `MembershipService`, etc.).
Cada entidad tiene su correspondiente DTO con validaciones `javax.validation`, mapeo bidireccional y lógica encapsulada. Esto asegura una capa REST limpia y desacoplada del modelo de base de datos.