DressAI.info

The Vitruvian Horse Project — Documentazione Tecnica
Architettura del sistema, pipeline di analisi video, costi operativi e integrazioni dei servizi DressAI.
3
Tier
2
AI Engine
6
Tipi Email
34
Riprese
17
Pagine IT
7
Pagine EN

1. Architettura del Sistema

DressAI utilizza un'architettura serverless composta da un frontend statico (HTML/CSS/JS) ospitato su Cloudflare Pages e un backend Python su Google Cloud Run. Il backend orchestra una pipeline di analisi video che combina Google Gemini per l'analisi visiva primaria e Claude (Anthropic) per la cross-validazione.

🌐

Frontend

Sito statico HTML/CSS/JS su Cloudflare Pages. Nessun framework, puro vanilla JS. Deploy automatico da Git.

Backend

Google Cloud Run con Python 3.12 + ffmpeg. Due servizi: dressai-checkout e dressai-webhook.

🤖

AI Engine

Google Gemini (2.5 Flash / Pro) per analisi video primaria. Claude Sonnet (Anthropic) per cross-validazione (Pro/Premium).

💰

Pagamenti

Stripe Checkout con webhook per attivazione automatica della pipeline. Supporto Promotion Codes.

Flusso Completo

Cliente compila form
Stripe Checkout
Webhook (pagamento ok)
Download video GDrive
ffmpeg compress
Gemini analisi
Claude validazione
Report HTML
GCS upload
Email + allegato

2. Pipeline di Analisi Video

La pipeline si attiva automaticamente al ricevimento del webhook checkout.session.completed da Stripe. Ogni step ha gestione degli errori con notifica email al cliente in caso di fallimento.

Resilienza e Retry

🔄

Retry Gemini API

5 tentativi con backoff esponenziale (30s, 60s, 120s, 240s, 480s) per errori transient 503 e 429.

🛡

Idempotenza Webhook

Session ID tracciato in set in-memory (_processed_sessions) per evitare pipeline duplicate.

📨

Email di Errore

In caso di fallimento, il cliente riceve email con dettaglio errore. Per errori non risolvibili, rimborso automatico.

Fallback Key Frames

Se l'estrazione keyframe (Premium) fallisce, la pipeline continua con i soli frame a 4fps.

🕑

Retry Queue (GCS)

Errori transient salvano il job come pending/session_id.json su GCS. Cloud Scheduler chiama POST /retry ogni 30 min.

💰

Auto-Refund

Job pendenti da più di 12 ore vengono rimborsati automaticamente via stripe.Refund.create().

🔒

Retry Lock Distribuito

Lock su GCS (locks/retry_running.lock) per evitare esecuzioni concorrenti. Timeout 20 min per lock stale.

📸

Upload Frame Resiliente

3 tentativi per frame con backoff. Analisi prosegue se almeno il 50% dei frame caricato.

Fail-Fast Env Vars

Variabili d'ambiente critiche validate all'avvio. Su Cloud Run: crash immediato se mancanti.

Step della Pipeline

StepOperazioneModuloDettaglio
1 Download video gemini_analyzer.py Download da Google Drive via drive.usercontent.google.com con confirm=t. Timeout: 600s.
2 Probe video video_processor.py ffprobe estrae metadati: risoluzione, fps, codec, durata, rotazione. Validazione: 30s–600s, max 4GB.
3 Compressione / Frame video_processor.py Base Comprimi a 720p, CRF 28 → upload video singolo
Pro Premium Estrai frame JPEG a 4 fps, 1080p
Premium + 10 keyframe ai cambi di scena
4 Upload a Gemini gemini_analyzer.py Upload e attesa processing (polling ogni 15s, max 8 min).
5 Identificazione ripresa gemini_analyzer.py Gemini 2.5 Flash identifica la ripresa (E50–E410, F100–F400, M100–M600, D1–D6). Fallback a E100.
6 Analisi completa gemini_analyzer.py Analisi con prompt tier-specifico. Flash (Base) o Pro (Pro/Premium). Output: JSON strutturato.
7 Cross-validazione claude_validator.py Pro Premium Claude Sonnet 4 verifica coerenza. Non-bloccante.
8 Generazione report report_generator.py Template Jinja2 con CSS inline. Report HTML self-contained, responsive.
9 Certificato PDF pdf_generator.py Certificato A4 landscape con weasyprint 68. ~400–500 KB.
10 Upload report report_generator.py Google Cloud Storage (dressai-reports). URL pubblico UUID. Auto-delete 90 giorni.
11 Invio email email_sender.py Resend API con link report + certificato PDF allegato. 6 tipi email.

3. Piani e Tier

Caratteristica Base — 49€ Pro — 79€ Premium — 129€
Modello Gemini2.5 Flash2.5 Pro2.5 Pro
Modalità analisiVideo compresso (720p)Sequenza frame (4fps, 1080p)Frame (4fps, 1080p) + keyframe
Campionamento effettivo~1 fps (interno Gemini)4 fps (controllato)4 fps + scene detection
Cross-validazione ClaudeClaude Sonnet 4Claude Sonnet 4
Analisi mio-fascialeOsservazione visivaOsservazione visiva + protocollo
Postura cavaliereAnalisi visivaAnalisi visiva + correzioni
Simmetria incrociataAnalisi assiAnalisi assi + correlazione
Protocollo riabilitativo3 fasi personalizzate
Proiezione miglioramentoStima a 2–3 mesi
Allegato emailCertificato PDFCertificato PDFCertificato PDF
Link report online90 giorni90 giorni90 giorni

4. Specifiche Video e Compressione

Requisiti Video in Ingresso

ParametroMinimoConsigliatoMassimo
Risoluzione720p (HD)1080p (Full HD)4K (opzionale)
Frame rate24 fps30 fps60 fps (non necessario)
Durata30 secondi2–6 minuti10 minuti
Dimensione file< 500 MB4 GB
FormatoMP4, MOV, WebM (codec H.264, H.265/HEVC)
SorgenteGoogle Drive (link condiviso con “Chiunque abbia il link”)

Compressione ffmpeg per Tier

Nota: Per il tier Base, il video viene compresso a 4 fps, ma Gemini campiona internamente ~1 fps. Per Pro/Premium la compressione è usata solo per l'identificazione (Flash); l'analisi usa frame JPEG a 4 fps.
ParametroBasePro / PremiumFallback
Risoluzione target720p1080p720p
Frame rate (ffmpeg)4 fps*4 fps2 fps
Frame rate analisi~1 fps (Gemini)4 fps (JPEG)~1 fps
CodecH.264H.264H.264
CRF282332
Presetfastfastfast
AudioAAC 64kAAC 128kAAC 48k
Limite1.8 GB (Gemini File API limit ~2GB)

Estrazione Frame (Pro/Premium)

Invece di caricare il video compresso, per Pro e Premium estraiamo frame JPEG a 4 fps con risoluzione massima 1080p. Questo bypassa il limite interno di Gemini e fornisce 4x più frame.

Per Premium: anche 10 keyframe ai cambi di scena (soglia > 0.3).

Upload parallelizzato: ThreadPoolExecutor(max_workers=10) → ~20s per 740 frame (5x speedup).

5. Modelli AI Utilizzati

ModelloFornitoreUtilizzoTier
Gemini 2.5 Flash Google Identificazione ripresa (sempre) + Analisi completa (Base) Base
Gemini 2.5 Pro Google Analisi completa con frame sequence + mio-fasciale + postura + correlazione Pro Premium
Claude Sonnet 4 Anthropic Cross-validazione: coerenza dati, arricchimento suggerimenti, incongruenze Pro Premium
⚡ Nota sulla Trasparenza AI — Tutti i dati numerici nei report (punteggi, gradi, percentuali) sono stime generate dall'AI basate su inferenza visiva dai frame del video. Non sono misurazioni strumentali. L'analisi mio-fasciale si basa sull'osservazione visiva, non su sensori.

6. Costi in Token

Gemini calcola ~258 token per immagine. Per un video tipico di dressage (3–4 minuti), il conteggio varia significativamente tra i tier.

Parametro Base Pro Premium
Modalità inputVideo compresso~880 frame JPEG~880 frame + 10 keyframe
Campionamento~1 fps (Gemini)4 fps4 fps + scene detection
Frame analizzati (video 3:40)~220~880~890
Token input (immagini)~57.000~227.000~230.000
Token input (prompt)~5.000~8.000~10.000
Token input totali~62.000~235.000~240.000
Token output (JSON)~3.000~8.000~10.000
Identificazione (Flash)~60K in + ~500 out~60K in + ~500 out~60K in + ~500 out
Claude cross-validazione~10K in + ~2K out~12K in + ~2.5K out

7. Costi in Euro per Analisi

Prezzi basati su listino API febbraio 2026. Video di riferimento: ripresa dressage ~3:40 minuti.

Voce di costo Base (49€) Pro (79€) Premium (129€)
Gemini (identificazione, Flash)€ 0,005€ 0,005€ 0,005
Gemini (analisi completa)€ 0,01
Flash: 62K tok
€ 1,30
Pro: 235K tok
€ 1,35
Pro: 240K tok
Claude Sonnet (cross-validazione)€ 0,10
~10K in + ~2K out
€ 0,12
~12K in + ~2.5K out
Cloud Run (compute)€ 0,005€ 0,02€ 0,03
Cloud Storage (report 90gg)< € 0,001< € 0,001< € 0,001
Resend (email + allegato)gratuito*gratuito*gratuito*
Stripe (1,5% + 0,25€)€ 0,99€ 1,44€ 2,19
Costo totale per analisi € 1,01 € 2,87 € 3,70
Margine € 47,99 (97,9%) € 76,13 (96,4%) € 125,30 (97,1%)

* Resend: 3.000 email/mese gratuite. Stripe: commissione EU standard carta.

Prezzi API di Riferimento (Feb 2026)

ModelloInput (per 1M token)Output (per 1M token)
Gemini 2.5 Flash$0,075$0,30
Gemini 2.5 Pro$1,25 (≤200K) / $2,50 (>200K)$10,00 (≤200K) / $15,00 (>200K)
Claude Sonnet 4$3,00$15,00

8. Sistema Gift (Regalo)

Il sistema Gift permette di acquistare un'analisi DressAI come regalo per un altro utente. Il flusso gestisce la separazione tra acquirente e destinatario, con possibilità di schedulare la consegna.

Flusso Gift

Buyer compila form + gift
Stripe Checkout
Conferma pagamento
Pipeline analisi
Email regalo
Conferma al buyer

Metadata Gift (Stripe)

CampoDescrizioneEsempio
is_giftFlag regalo"true"
gift_recipient_nameNome destinatarioAnna Rossi
gift_recipient_emailEmail destinatario[email protected]
gift_messageMessaggio personale (max 500 char)Buon compleanno!
gift_delivery_dateData consegna (opzionale)2026-03-01
gift_delivery_timeOra consegna (opzionale)09:00

Email Generate nel Flusso Gift

EmailDestinatarioQuandoAllegati
Conferma pagamentoBuyerSubito dopo il pagamento
Regalo (gift email)DestinatarioA pipeline completata (o schedulato)PDF
Conferma regaloBuyerA pipeline completata
Consegna schedulata: se il buyer specifica data e ora, l'email regalo viene schedulata tramite scheduled_at dell'API Resend. Una copia immediata viene inviata all'archivio ([email protected]).

9. Architettura Email

Tutte le email vengono inviate tramite Resend API con dominio verificato dressai.info.

ParametroValore
MittenteDressAI <[email protected]>
Reply-To[email protected]
BCC archivio[email protected] (su tutte le email)
Template engineJinja2 (report) / inline HTML (altre)

Tipi di Email

TipoSubjectTemplateAllegati
Conferma pagamentoDressAI - Pagamento ricevuto, analisi in corsoInline HTML
Report prontoDressAI - La tua Analisi {tier} e prontaemail.htmlPDF
RegaloDressAI - Un regalo per te: Analisi {tier}gift_email.htmlPDF
Conferma regaloDressAI - Il tuo regalo e prontoInline HTML
In codaDressAI - Analisi in codaInline HTML
ErroreDressAI - Problema con l'analisi del tuo videoInline HTML
RimborsoDressAI - Rimborso effettuatoInline HTML

Tempi di Consegna Stimati

TierTempo dalla conferma pagamento
Base3–4 minuti
Pro~50 minuti
Premium~60 minuti

10. Integrazioni e Servizi

ServizioRuoloConfigurazione
Stripe Pagamenti LIVE Live (Feb 2026). 3 price ID: Base 49€, Pro 79€, Premium 129€.
Evento: checkout.session.completed. Auto-refund > 12h.
allow_promotion_codes=True per codici sconto.
Google Gemini Analisi video AI SDK: google-genai. Chiave: GOOGLE_API_KEY.
File API per upload video/immagini. Modelli: Flash, Pro.
Anthropic Claude Cross-validazione SDK: anthropic. Chiave: ANTHROPIC_API_KEY.
Modello: claude-sonnet-4-20250514. Max tokens: 4096.
Google Cloud Storage Report + retry queue Bucket: dressai-reports. URL pubblico UUID.
Lifecycle: 90gg su reports/. Retry: pending/. Lock: locks/.
Resend Email transazionali Chiave: RESEND_API_KEY. Dominio: dressai.info.
Allegato: PDF. 6 tipi email.
Cloudflare Pages Hosting frontend Deploy da Git (main). SSL automatico. Dominio: dressai.info.
Google Cloud Run Backend serverless europe-west1. 2 servizi: checkout, webhook.
Docker: Python 3.12 + ffmpeg + weasyprint. Timeout: 3600s, 2Gi, 2 CPU.
Cloud Scheduler Retry cron dressai-retry-pending — ogni 30 min → POST /retry.

11. Codici Sconto (Promotion Codes)

Il sistema utilizza Stripe Promotion Codes nativi, attivati tramite allow_promotion_codes=True nella Checkout Session. I codici sono gestiti interamente lato Stripe.

Architettura

Stripe Coupon (% o fisso)
Promotion Code (alfanumerico)
Cliente inserisce al checkout
Sconto applicato

Codici Attivi

Promotion CodeScontoUtilizziScopo
XTEST-ARA2026 100% Max 20 Testing interno — ordini gratuiti per pipeline end-to-end
WELCOME-DRS7K 30% Illimitati Sconto promozionale per nuovi clienti

Implementazione Backend

L'unica modifica al codice è nel servizio dressai-checkout (main.py):

session = stripe.checkout.Session.create(
    payment_method_types=["card"],
    line_items=[{"price": price_id, "quantity": 1}],
    mode="payment",
    allow_promotion_codes=True,   # abilita codici sconto
    success_url=f"{SITE_URL}/grazie.html?...",
    cancel_url=f"{SITE_URL}/servizio.html?cancelled=1",
    customer_email=email,
    metadata=checkout_metadata,
)
I coupon e i promotion code vengono creati dalla Stripe Dashboard o via Stripe CLI. Non richiedono modifiche al backend.

12. Report di Esempio

La cartella samples/ contiene report HTML di esempio (dati simulati) per ciascun tier e variante.

FileTierDescrizione
samples/esempio-base.html Base Report standard: punteggio, frame analysis, errori, suggerimenti
samples/esempio-pro.html Pro Con cross-validazione Claude, mio-fasciale, postura, simmetria
samples/esempio-premium.html Premium Completo: protocollo riabilitativo, proiezione, correzioni
samples/esempio-premium-gift.html Gift Variante regalo con messaggio del mittente e banner dedicato

Usano lo stesso template Jinja2 (templates/report.html) del backend, renderizzati con dati fittizi. Sono self-contained (CSS inline).

13. Infrastruttura Cloud

Google Cloud Run — Servizi

ServizioFunzioneEntry PointAccesso
dressai-checkout Crea Stripe Checkout Session create_checkout Pubblico (CORS: dressai.info)
dressai-webhook Riceve webhook Stripe, avvia pipeline handle_webhook Pubblico (verifica firma Stripe)

Variabili d'Ambiente (Cloud Run)

VariabileDescrizione
STRIPE_SECRET_KEYChiave segreta Stripe (sk_test_... o sk_live_...)
STRIPE_WEBHOOK_SECRETSigning secret del webhook (whsec_...)
STRIPE_PRICE_BASEPrice ID Stripe per il piano Base
STRIPE_PRICE_PROPrice ID Stripe per il piano Pro
STRIPE_PRICE_PREMIUMPrice ID Stripe per il piano Premium
GOOGLE_API_KEYAPI key per Gemini
RESEND_API_KEYAPI key per Resend (email)
ANTHROPIC_API_KEYAPI key per Claude
CLAUDE_MODELModello Claude (default: claude-sonnet-4-20250514)
EMAIL_FROMIndirizzo mittente email
GCS_BUCKETBucket GCS per i report
SITE_URLURL del sito (per CORS e redirect)

Docker (Dockerfile)

FROM python:3.12-slim

# ffmpeg + weasyprint dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
    ffmpeg \
    libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 \
    libgdk-pixbuf-2.0-0 libffi-dev libcairo2 \
    fonts-liberation \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .

ENV PORT=8080
CMD ["functions-framework", "--target=handle_webhook", "--port=8080"]

Dipendenze Python

functions-framework==3.*    # HTTP framework per Cloud Run
stripe==8.*                # Stripe SDK
google-genai==1.*          # Google Gemini SDK (nuova API)
anthropic==0.40.*          # Claude SDK
jinja2==3.*                # Template engine per report
requests==2.*              # HTTP client (download GDrive)
google-cloud-storage==2.*  # GCS per upload report
resend==2.*                # Email transazionali
weasyprint==68.*           # Generazione PDF certificato

14. Sicurezza e Privacy

🔒

Autenticazione Webhook

Ogni webhook Stripe verificato con stripe.Webhook.construct_event(). Firma non valida → HTTP 400.

🔒

CORS

Endpoint checkout accetta solo richieste da https://dressai.info.

🔒

Chiavi API

Variabili d'ambiente su Cloud Run, mai nel codice sorgente. Rotazione senza re-deploy.

🔒

Video dei Clienti

Scaricati, analizzati e cancellati immediatamente (blocco finally). Mai salvati permanentemente.

🔒

Report

URL pubblici con filename UUID (non indovinabile). Auto-delete 90 giorni. PDF nell'email del cliente.

🔒

Dati AI

Video inviati a Gemini e Claude per analisi. Consenso esplicito del cliente prima del pagamento.

🔒

Cleanup Gemini

File su Gemini File API eliminati automaticamente post-analisi via cleanup_gemini_files().

15. Struttura del Progetto

Frontend (Cloudflare Pages)

dressai/
├── index.html # Home: metodologia, binomio, SVG routes
├── history.html # Archivio gare (card cliccabili)
├── gara-20260207.html # Analisi gara 07/02 (solo AI, 66.80%)
├── gara-20260208.html # Analisi gara 08/02 (giudice+AI, 78.25%)
├── confronto.html # Confronto tra le due gare
├── training.html # Allenamento e riabilitazione
├── gallery.html # Gallery AI: 20 frame 4K con overlay
├── riprese-e.html # Riprese categoria E (13 riprese)
├── riprese-f.html # Riprese categoria F (5 riprese)
├── riprese-m.html # Riprese categoria M (4 riprese)
├── riprese-d.html # Riprese categoria D FEI (10 riprese)
├── andature.html # Andature del dressage
├── servizio.html # Ordine servizio AI (form + Stripe)
├── grazie.html # Thank you post-pagamento
├── privacy.html # Privacy Policy
├── cookie.html # Cookie Policy
├── documentazione-tecnica.html # Questa pagina
├── css/
│ └── style.css # CSS condiviso (tutte le pagine)
├── en/ # Versione inglese
│ ├── index.html # Home EN
│ ├── history.html # Archive EN
│ ├── comparison.html # Comparison EN
│ ├── training.html # Training EN
│ ├── service.html # AI Service EN
│ ├── thank-you.html # Thank you EN
│ └── upload.html # Upload page EN
├── samples/ # Report di esempio
│ ├── esempio-base.html # Report Base
│ ├── esempio-pro.html # Report Pro
│ ├── esempio-premium.html # Report Premium
│ └── esempio-premium-gift.html # Report Premium Gift
├── DressageTest/ # PDF ufficiali FISE/SEF (34 file)
│ └── tmp_*.pdf # Riprese E/F/M/D
└── img/
├── Logo.png
├── gallery/ # 20 frame estratti dal video 4K
└── ...

Backend (Google Cloud Run)

backend/
├── main.py # Entry points: create_checkout, handle_webhook
├── config.py # Variabili d'ambiente, fail-fast validation
├── gemini_analyzer.py # Download GDrive + Gemini File API + analisi
├── video_processor.py # ffmpeg: probe, compress, extract frames
├── claude_validator.py # Cross-validazione Claude (Pro/Premium)
├── report_generator.py # Jinja2 rendering + upload GCS
├── pdf_generator.py # Certificato PDF A4 landscape (weasyprint 68)
├── email_sender.py # Invio email via Resend (6 tipi)
├── Dockerfile # Python 3.12-slim + ffmpeg + weasyprint
├── requirements.txt # Dipendenze Python
└── templates/
├── report.html # Template report (CSS inline)
├── certificate.html # Template certificato PDF
├── email.html # Template email report
└── gift_email.html # Template email regalo

16. Proprietà Intellettuale e Protezione del Marchio

Stato attuale

Il nome DressAI, il logo (cavallo vitruviano) e il dominio dressai.info sono attualmente protetti solo dal diritto d'autore automatico (Legge 633/1941 e Direttiva UE 2019/790). Il copyright tutela il codice sorgente, i contenuti editoriali e il design grafico, ma non protegge il nome commerciale dall'uso da parte di terzi.

Opzioni di registrazione del marchio

🇮🇹

Marchio italiano (UIBM)

Costo: €101 tassa base + €34 classe aggiuntiva + €42 bollo = €177 (fai-da-te, 2 classi).

Tramite professionista: €183 + onorari (€300-600).

Durata: 10 anni, rinnovabile (€67 + €34/classe).

Tempi: 6-8 mesi se nessuna opposizione.

🇪🇺

Marchio europeo (EUIPO)

Costo: €850 (1 classe) + €50 seconda = €900 per 2 classi.

Tramite professionista: €1.100-1.600 totali.

Durata: 10 anni. Validità in tutti i 27 Stati UE.

SME Fund: fino al 75% rimborsabile per PMI.

Classi di Nizza rilevanti

ClasseDescrizioneApplicazione DressAI
Classe 9 Software, strumenti di misurazione Software di analisi video, algoritmi AI, app web
Classe 42 Servizi scientifici e tecnologici, SaaS, AIaaS Servizio cloud di analisi video dressage con AI
Raccomandazione: registrare in entrambe le classi (9 + 42) per proteggere sia il software come prodotto che il servizio cloud.

Cosa registrare

Marchio denominativo

"DressAI" — protegge il nome in qualsiasi forma grafica. Protezione più ampia e prioritaria.

Marchio figurativo

Logo (cavallo vitruviano) — protegge il design specifico. Complementare al denominativo.

Dominio

dressai.info — già registrato. Considerare anche .com, .it, .eu.

Procedura consigliata — UIBM (Italia)

Registrazione marchio denominativo "DressAI"

  1. Ricerca di anteriorità — Verificare sulla banca dati UIBM e su eSearch Plus (EUIPO) che "DressAI" non sia già registrato.
  2. Deposito online UIBM — Accedere a servizionline.uibm.gov.it con SPID/CIE. Compilare la domanda selezionando Classe 9 + Classe 42.
  3. Pagamento — €101 + €34 + €42 = €177 totali con PagoPA.
  4. Esame UIBM — Verifica requisiti formali e sostanziali. Registrazione in 6-8 mesi senza opposizione.
  5. Logo (opzionale) — Secondo deposito come marchio figurativo. Stessi costi: €177.
  6. Domini difensivi — Registrare dressai.com, .it, .eu se disponibili (~€10-15/anno).

Riepilogo costi UIBM

Tassa base (1ª classe)€101
Classe aggiuntiva (2ª classe)€34
Marca da bollo€42
Totale deposito (fai-da-te, 2 classi)€177
Rinnovo (ogni 10 anni)€67 + €34 = €101

Eventuale estensione EUIPO successiva: €900 per 2 classi (protezione 27 stati UE).

Protezioni già in essere

TipoStatoNote
Copyright codice sorgente✓ AutomaticoL. 633/1941 + Direttiva UE 2019/790
Copyright contenuti e grafiche✓ AutomaticoTesti, analisi, design del sito
Dominio dressai.info✓ RegistratoRegistrar: GoDaddy — NS: Cloudflare
Marchio denominativo "DressAI"✗ Non registratoPriorità alta
Marchio figurativo (logo)✗ Non registratoSecondo step
Domini difensivi (.com/.it/.eu)✗ Non registratiVerificare disponibilità