[FEAT] Sistema Segnalazioni & Risoluzione AI (feedback)
Adattato da alltax.it — il sistema più maturo testato con utenti reali.
Backend:
- FeedbackController: 6 endpoint (submit, mine, list, show, update, resolve)
- FeedbackService: createReport + classifyWithAI + broadcastResolution
- AIService::classifyFeedback() — 10s timeout, 500 token, JSON puro
- EmailService::sendFeedbackResolved() — broadcast email org
- DB migration 014: tabella feedback_reports
Frontend:
- feedback.js: FAB rosso #EF4444, modal 2 fasi (form → AI → password gate)
- Tab "Le mie segnalazioni" con badge status
- Auto-init su tutte le pagine autenticate (common.js::checkAuth)
- api.js: 6 metodi client; style.css: stili completi
Worker:
- scripts/feedback-worker.php: cron ogni 30 min
→ docker exec nis2-agile-devenv + Claude Code CLI
→ risoluzione autonoma con POST /api/feedback/{id}/resolve
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
3b51b5bd95
commit
1382530189
@@ -301,6 +301,17 @@ class NIS2API {
|
||||
updateCapa(capaId, data) { return this.put(`/ncr/capa/${capaId}`, data); }
|
||||
createNCRsFromAssessment(assessmentId) { return this.post('/ncr/from-assessment', { assessment_id: assessmentId }); }
|
||||
getNCRStats() { return this.get('/ncr/stats'); }
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════
|
||||
// Feedback & Segnalazioni
|
||||
// ═══════════════════════════════════════════════════════════════════
|
||||
|
||||
submitFeedback(data) { return this.post('/feedback/submit', data); }
|
||||
getMyFeedback() { return this.get('/feedback/mine'); }
|
||||
listFeedback(params = {}) { return this.get('/feedback/list?' + new URLSearchParams(params)); }
|
||||
getFeedback(id) { return this.get(`/feedback/${id}`); }
|
||||
updateFeedback(id, data) { return this.put(`/feedback/${id}`, data); }
|
||||
resolveFeedback(id, password) { return this.post(`/feedback/${id}/resolve`, { password }); }
|
||||
}
|
||||
|
||||
// Singleton globale
|
||||
|
||||
Reference in New Issue
Block a user