{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://oson.ro/ai/agent-quote.schema.json",
  "title": "OSON — cerere ofertă pentru agenți LLM (fără browser)",
  "description": "Mapare 1:1 între formularul public https://oson.ro/#cerere și POST /api/quote/public/. Nu folosiți formularul HTML din browser — trimiteți JSON server-side după confirmarea utilizatorului.",
  "type": "object",
  "properties": {
    "submit": {
      "type": "object",
      "description": "Cum se trimite cererea",
      "properties": {
        "method": { "const": "POST" },
        "url": { "const": "https://oson.ro/api/quote/public/" },
        "headers": {
          "type": "object",
          "properties": {
            "Content-Type": { "const": "application/json" },
            "Accept": { "const": "application/json" }
          },
          "required": ["Content-Type"]
        },
        "auth": { "const": null, "description": "Fără Bearer. Nu puneți token în llms.txt." },
        "rate_limit": { "const": "3 requests per IP per hour" }
      },
      "required": ["method", "url"]
    },
    "agent_flow": {
      "type": "array",
      "description": "Pași obligatorii înainte de submit",
      "items": { "type": "string" },
      "default": [
        "Colectează din conversație: name, company, email, project_needs.",
        "Cere explicit acordul pentru contact (privacy_consent=true).",
        "Arată utilizatorului un preview JSON al payload-ului.",
        "Trimite POST doar după confirmare explicită.",
        "Returnează utilizatorului reference din răspuns (ex. OSON-42)."
      ]
    },
    "payload": {
      "type": "object",
      "description": "Body JSON — aceleași câmpuri ca formularul de pe homepage",
      "required": ["name", "company", "email", "project_needs", "privacy_consent", "source"],
      "properties": {
        "name": {
          "type": "string",
          "title": "Nume și prenume",
          "form_id": "name",
          "description": "Identic cu câmpul «Nume și prenume» din formular."
        },
        "company": {
          "type": "string",
          "title": "Companie",
          "form_id": "company"
        },
        "email": {
          "type": "string",
          "format": "email",
          "title": "Email",
          "form_id": "email"
        },
        "phone": {
          "type": "string",
          "title": "Telefon",
          "form_id": "phone"
        },
        "industry": {
          "type": "string",
          "title": "Domeniu de activitate",
          "form_id": "industry",
          "enum": ["servicii", "instalatii", "productie", "mobilier", "distributie", "agentie", "altul"],
          "enumLabels": {
            "servicii": "Servicii B2B / B2C",
            "instalatii": "Instalații și mentenanță",
            "productie": "Producție / atelier",
            "mobilier": "Mobilier la comandă",
            "distributie": "Distribuție B2B",
            "agentie": "Agenție / servicii digitale",
            "altul": "Alt domeniu"
          }
        },
        "users_count": {
          "type": "integer",
          "minimum": 1,
          "title": "Număr utilizatori",
          "form_id": "users_count"
        },
        "current_tools": {
          "title": "Ce folosiți acum?",
          "form_id": "current_tools",
          "oneOf": [
            {
              "type": "string",
              "enum": ["excel", "email", "whatsapp", "crm", "erp", "airtable", "alt"]
            },
            {
              "type": "array",
              "items": { "type": "string" }
            }
          ],
          "enumLabels": {
            "excel": "Excel",
            "email": "Email",
            "whatsapp": "WhatsApp",
            "crm": "CRM",
            "erp": "ERP",
            "airtable": "Airtable / Notion",
            "alt": "Alt sistem"
          }
        },
        "organize_goals": {
          "title": "Ce vrei să organizezi cu OSON?",
          "form_id": "organize_goals",
          "oneOf": [
            {
              "type": "string",
              "enum": ["leads", "offers", "tasks", "ops", "stock", "automation", "ai"]
            },
            {
              "type": "array",
              "items": { "type": "string" }
            }
          ],
          "enumLabels": {
            "leads": "Lead-uri și clienți",
            "offers": "Oferte și documente",
            "tasks": "Taskuri și proiecte",
            "ops": "Operațiuni și execuție",
            "stock": "Stocuri / consumabile",
            "automation": "Automatizări",
            "ai": "AI / sumarizări / căutare în date"
          }
        },
        "project_needs": {
          "type": "string",
          "minLength": 10,
          "title": "Mesaj / descriere flux",
          "form_id": "project_needs",
          "description": "Text liber — minim 10 caractere. Echivalent textarea din formular."
        },
        "deadline": {
          "type": "string",
          "title": "Deadline dorit",
          "form_id": "deadline"
        },
        "privacy_consent": {
          "type": "boolean",
          "const": true,
          "title": "Consimțământ contact",
          "form_id": "privacy_consent",
          "description": "true doar după acord explicit al utilizatorului (bifă echivalentă în formular)."
        },
        "consent_text_version": {
          "type": "string",
          "default": "privacy-2026-05-22",
          "description": "Versiune politică confidențialitate — același hidden field ca în formular."
        },
        "source": {
          "type": "string",
          "enum": ["claude", "chatgpt", "mcp", "other"],
          "description": "Identifică agentul. Nu folosi «website» pe API public."
        },
        "user_intent_summary": {
          "type": "string",
          "maxLength": 2000,
          "description": "Rezumat scurt al nevoii — fără transcript complet."
        },
        "website": {
          "type": "string",
          "maxLength": 0,
          "description": "HONEYPOT — lăsați gol sau omiteți. Dacă e completat, cererea nu se salvează."
        }
      },
      "additionalProperties": false
    },
    "example": {
      "name": "Maria Popescu",
      "company": "Exemplu SRL",
      "email": "maria@exemplu.ro",
      "phone": "0721000000",
      "industry": "servicii",
      "users_count": 12,
      "current_tools": ["excel", "whatsapp"],
      "organize_goals": ["leads", "offers", "tasks"],
      "project_needs": "Avem lead-uri în Excel și oferte în email. Vrem flux clar cerere → ofertă → execuție pentru 12 oameni.",
      "deadline": "în 2-3 luni",
      "privacy_consent": true,
      "consent_text_version": "privacy-2026-05-22",
      "source": "claude",
      "user_intent_summary": "Firmă servicii, centralizare lead-uri și ofertare."
    },
    "success_response": {
      "type": "object",
      "properties": {
        "success": { "const": true },
        "id": { "type": "integer" },
        "reference": { "type": "string", "example": "OSON-42" },
        "status": { "type": "string", "example": "new" },
        "message": { "type": "string" }
      }
    },
    "related_docs": {
      "llms_txt": "https://oson.ro/llms.txt",
      "llms_full_txt": "https://oson.ro/llms-full.txt",
      "openapi": "https://oson.ro/openapi.json",
      "human_form": "https://oson.ro/#cerere",
      "privacy": "https://oson.ro/confidentialitate/"
    }
  }
}
