# API de Beta Testing y Feedback - Fase 7.2 Esta API permite gestionar el sistema de beta testing y feedback de la aplicación Padel. ## Autenticación Todas las rutas requieren autenticación mediante Bearer token en el header: ``` Authorization: Bearer ``` Las rutas marcadas como **(Admin)** requieren rol de ADMIN o SUPERADMIN. --- ## Endpoints de Beta Testing ### Registrarse como Beta Tester ``` POST /api/v1/beta/register ``` **Body:** ```json { "platform": "WEB" | "IOS" | "ANDROID", "appVersion": "1.0.0-beta" } ``` ### Ver mi estado de Beta Tester ``` GET /api/v1/beta/me ``` ### Listar todos los Beta Testers (Admin) ``` GET /api/v1/beta/testers?limit=50&offset=0 ``` ### Estadísticas de Beta Testing (Admin) ``` GET /api/v1/beta/stats ``` ### Actualizar estado de Beta Tester (Admin) ``` PUT /api/v1/beta/testers/:id/status ``` **Body:** ```json { "status": "ACTIVE" | "INACTIVE" } ``` --- ## Endpoints de Feedback ### Enviar Feedback ``` POST /api/v1/beta/feedback ``` **Body:** ```json { "type": "BUG" | "FEATURE" | "IMPROVEMENT" | "OTHER", "category": "UI" | "PERFORMANCE" | "BOOKING" | "PAYMENT" | "TOURNAMENT" | "LEAGUE" | "SOCIAL" | "NOTIFICATIONS" | "ACCOUNT" | "OTHER", "title": "Título del feedback", "description": "Descripción detallada", "severity": "LOW" | "MEDIUM" | "HIGH" | "CRITICAL", "screenshots": ["https://example.com/screenshot1.png"], "deviceInfo": { "userAgent": "Mozilla/5.0...", "platform": "MacIntel", "screenResolution": "1920x1080", "browser": "Chrome", "os": "macOS", "appVersion": "1.0.0" } } ``` ### Ver mi Feedback ``` GET /api/v1/beta/feedback/my?limit=20&offset=0 ``` ### Listar todo el Feedback (Admin) ``` GET /api/v1/beta/feedback/all?type=BUG&category=BOOKING&status=PENDING&severity=HIGH&limit=20&offset=0 ``` ### Estadísticas de Feedback (Admin) ``` GET /api/v1/beta/feedback/stats ``` ### Actualizar Estado de Feedback (Admin) ``` PUT /api/v1/beta/feedback/:id/status ``` **Body:** ```json { "status": "PENDING" | "IN_PROGRESS" | "RESOLVED" | "CLOSED", "resolution": "Notas sobre la resolución (opcional)" } ``` --- ## Endpoints de Issues Beta (Admin) ### Listar todos los Issues ``` GET /api/v1/beta/issues?limit=20&offset=0 ``` ### Crear Issue ``` POST /api/v1/beta/issues ``` **Body:** ```json { "title": "Título del issue", "description": "Descripción detallada", "priority": "LOW" | "MEDIUM" | "HIGH" | "CRITICAL", "assignedTo": "uuid-del-usuario" } ``` ### Vincular Feedback a Issue ``` POST /api/v1/beta/issues/link ``` **Body:** ```json { "feedbackId": "uuid-del-feedback", "issueId": "uuid-del-issue" } ``` --- ## Datos de Prueba El script `prisma/seed-beta.ts` crea 8 usuarios de prueba: | Email | Nombre | Plataforma | Nivel | |-------|--------|------------|-------| | beta1@padelapp.com | Carlos Rodriguez | WEB | ADVANCED | | beta2@padelapp.com | María González | IOS | INTERMEDIATE | | beta3@padelapp.com | Juan Pérez | ANDROID | ELEMENTARY | | beta4@padelapp.com | Ana Martínez | WEB | COMPETITION | | beta5@padelapp.com | Diego López | IOS | ADVANCED | | beta6@padelapp.com | Lucía Fernández | ANDROID | BEGINNER | | beta7@padelapp.com | Martín Silva | WEB | INTERMEDIATE | | beta8@padelapp.com | Valentina Torres | IOS | PROFESSIONAL | **Contraseña:** `BetaTester123!` --- ## Comandos Útiles ```bash # Ejecutar seed de beta testers npx tsx prisma/seed-beta.ts # Migrar base de datos npx prisma migrate dev --name add_beta_testing # Validar schema npx prisma validate # Generar cliente Prisma npx prisma generate ```