Files
iti-technology/prompts/21-api-contatti-showroom-consensi.md
T
Lorenzo SanesiandClaude Opus 5.5 b83ce039fb
Deploy stack su Proxmox / deploy (push) Failing after 3s
Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Monorepo npm con apps/public (Angular SSR), apps/private (Angular SPA),
apps/api (Fastify), packages/shared e packages/styles; Medusa 2.21 in medusa/;
infrastruttura Docker (Postgres PostGIS+pgvector, Redis, Caddy, backup) e
workflow Gitea Actions per il deploy via SSH a ogni push su master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jQyT6dR9czzGwqb7FkG6u
2026-10-20 09:30:48 +02:00

1.1 KiB

21 — API: contatti, showroom, consensi

Leggi CLAUDE.md.

Obiettivo

Form pubblici e registro consensi GDPR.

Cosa fare

  • POST /contact → salva contact_requests, email all'admin. Protezione anti-spam senza servizi terzi: honeypot + tempo minimo di compilazione + rate limit per IP.
  • GET /showroom/slots (slot disponibili da configurazione: giorni/orari di apertura, durata visita, capienza) e POST /showroom/bookings (verifica disponibilità, email di conferma). Admin: elenco e cambio stato prenotazioni.
  • Consensi: ogni form con dati personali richiede consenso privacy; consenso marketing/newsletter separato e facoltativo. Salvati in consents con versione del testo informativo e timestamp.
  • GET /me/consents e revoca consenso marketing.
  • POST /me/delete-account (richiesta cancellazione: disabilita l'account e notifica l'admin; la cancellazione effettiva resta manuale nell'MVP).

Criteri di accettazione

  • Form senza consenso privacy → 400.
  • Due prenotazioni sullo stesso slot oltre la capienza → la seconda rifiutata.
  • Honeypot compilato → richiesta scartata silenziosamente (200, nulla salvato).
  • CLAUDE.md aggiornato.