From 9faf49acfae837435548468f58f7bd0ab1239056 Mon Sep 17 00:00:00 2001 From: AV77web Date: Sat, 6 Jun 2026 18:14:48 +0200 Subject: [PATCH] implementazione 3 di n8n --- .gitignore | Bin 519 -> 542 bytes commit-push.bat | 2 +- src/app/api/articoli/ricerca-prezzi/route.ts | 51 ++++++ src/app/favicon.ico | Bin 293078 -> 0 bytes src/components/ArticleModal.tsx | 92 ++++++++++- src/components/PriceSearchPanel.tsx | 162 +++++++++++++++++++ src/hooks/usePriceSearch.ts | 82 ++++++++++ src/lib/permissions.ts | 4 + src/lib/price-search/index.ts | 15 ++ src/lib/price-search/n8n.ts | 91 +++++++++++ src/types/priceSearch.ts | 27 ++++ 11 files changed, 524 insertions(+), 2 deletions(-) create mode 100644 src/app/api/articoli/ricerca-prezzi/route.ts delete mode 100644 src/app/favicon.ico create mode 100644 src/components/PriceSearchPanel.tsx create mode 100644 src/hooks/usePriceSearch.ts create mode 100644 src/lib/price-search/index.ts create mode 100644 src/lib/price-search/n8n.ts create mode 100644 src/types/priceSearch.ts diff --git a/.gitignore b/.gitignore index a576c85b313f46cea601c9c18168d6dcb226c444..6eddb5a06f9f664fca3bb2ff7c731fac71ed4871 100644 GIT binary patch delta 57 zcmZo?na8qWE2DUxMP7VJVp(QRWxQj6XS}y-q?TSuMakr?jJBc*xj>kxkgkxakO##2 I3S2-404OdH@Bjb+ delta 33 lcmbQo($2DBE92xdjJBc-xj>l6kj{|FkO##247?0n3;>~|2W|iW diff --git a/commit-push.bat b/commit-push.bat index 14a416a..a27c47f 100644 --- a/commit-push.bat +++ b/commit-push.bat @@ -1,5 +1,5 @@ @echo-off -cd /d D:\maga\magricambi +cd /d D:\maga\magricambi2 git status echo. set /p MSG=Messaggio commit: diff --git a/src/app/api/articoli/ricerca-prezzi/route.ts b/src/app/api/articoli/ricerca-prezzi/route.ts new file mode 100644 index 0000000..96f50af --- /dev/null +++ b/src/app/api/articoli/ricerca-prezzi/route.ts @@ -0,0 +1,51 @@ +import { NextResponse } from "next/server"; + +import { requirePermission } from "@/src/lib/auth/requireSession"; +import { searchPriceOffers } from "@/src/lib/price-search"; +import type { PriceSearchRequest } from "@/src/types/priceSearch"; + +export async function POST(request: Request) { + const session = await requirePermission( + (p) => p.canSearchPrices, + "Non hai i permessi per la ricerca prezzi", + ); + if (session instanceof NextResponse) return session; + + try { + const body = (await request.json()) as Partial; + + const descrizione = String(body.descrizione ?? "").trim(); + if (!descrizione) { + return NextResponse.json( + { error: "La descrizione è obbligatoria per la ricerca" }, + { status: 400 }, + ); + } + + const payload: PriceSearchRequest = { + descrizione, + barcode: body.barcode ?? null, + codice: body.codice ?? null, + quantita: + body.quantita !== undefined && body.quantita !== null + ? Number(body.quantita) + : undefined, + }; + + const result = await searchPriceOffers(payload, { + userId: session.user.id, + userName: session.user.utente || session.user.name || session.user.email || undefined, + }); + + return NextResponse.json(result); + } catch (error) { + console.error("[API ricerca-prezzi]", error); + const message = + error instanceof Error ? error.message : "Errore ricerca prezzi"; + + const status = + message.includes("non configurata") ? 503 : 502; + + return NextResponse.json({ error: message }, { status }); + } +} \ No newline at end of file diff --git a/src/app/favicon.ico b/src/app/favicon.ico deleted file mode 100644 index bf1472499fa341624bea84f0ed71efcfe583df59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293078 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
  • T3eC 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 OE6*DLcmJRA>3;#0aIky; diff --git a/src/components/ArticleModal.tsx b/src/components/ArticleModal.tsx index c289718..db711a5 100644 --- a/src/components/ArticleModal.tsx +++ b/src/components/ArticleModal.tsx @@ -1,6 +1,9 @@ "use client"; import { useState, useEffect, useRef } from "react"; +import PriceSearchPanel from "@/src/components/PriceSearchPanel"; +import { usePermissions } from "@/src/contexts/PermissionsContext"; +import { usePriceSearch } from "@/src/hooks/usePriceSearch"; import type { Article, ArticleInput, ArticleFamily } from "@/src/types/article"; import type { Stabilimento, Magazzino } from "@/src/types/stabilimento"; @@ -19,6 +22,9 @@ export default function ArticleModal({ }: ArticleModalProps) { const isEdit = article !== null; const modalRef = useRef(null); + const { permissions } = usePermissions(); + const { result, error: searchError, search, cancel, reset, isLoading } = + usePriceSearch(); const [formData, setFormData] = useState({ codice: "", @@ -173,11 +179,36 @@ export default function ArticleModal({ setSelectedMagazzino(value); }; + const handlePriceSearch = async () => { + const descrizione = formData.descrizione.trim(); + if (!descrizione) { + setError("Inserisci una descrizione prima di cercare i prezzi"); + return; + } + + setError(null); + await search({ + descrizione, + barcode: formData.barcode || null, + codice: formData.codice || null, + }); + }; + + const handleApplyPrice = (price: number) => { + setFormData((prev) => ({ ...prev, prezzo: price })); + }; + + const showPriceSearchPanel = + permissions.canSearchPrices && + (isLoading || searchError !== null || result !== null); + return (
    {/* Header */}
    @@ -299,6 +330,65 @@ export default function ArticleModal({
    + {permissions.canSearchPrices && ( +
    + + {result && !isLoading && ( + + )} +
    + )} + + {permissions.canSearchPrices && ( + + )} + {/* Giacenza iniziale (solo per nuovo articolo) */} {!isEdit && (
    diff --git a/src/components/PriceSearchPanel.tsx b/src/components/PriceSearchPanel.tsx new file mode 100644 index 0000000..7498644 --- /dev/null +++ b/src/components/PriceSearchPanel.tsx @@ -0,0 +1,162 @@ +"use client"; + +import type { PriceOffer, PriceSearchResponse } from "@/src/types/priceSearch"; + +const CONFIDENCE_LABELS: Record = { + high: "Alta", + medium: "Media", + low: "Bassa", +}; + +const CONFIDENCE_STYLES: Record = { + high: "bg-green-500/15 text-green-400 border-green-500/30", + medium: "bg-yellow-500/15 text-yellow-400 border-yellow-500/30", + low: "bg-zinc-500/15 text-zinc-400 border-zinc-500/30", +}; + +function formatPrice(price: number | null, currency: string) { + if (price === null) return "N/D"; + return new Intl.NumberFormat("it-IT", { + style: "currency", + currency, + }).format(price); +} + +interface PriceSearchPanelProps { + isLoading: boolean; + error: string | null; + result: PriceSearchResponse | null; + onApplyPrice: (price: number) => void; + onCancel: () => void; +} + +export default function PriceSearchPanel({ + isLoading, + error, + result, + onApplyPrice, + onCancel, +}: PriceSearchPanelProps) { + if (!isLoading && !error && !result) return null; + + return ( +
    +
    +

    + + + + Ricerca prezzi online +

    + {isLoading && ( + + )} +
    + + {isLoading && ( +
    + + + + + Ricerca in corso… può richiedere fino a 30 secondi +
    + )} + + {error && ( +
    + {error} +
    + )} + + {result && ( + <> +

    + Query: {result.query} +

    + + {result.offers.length === 0 ? ( +

    Nessuna offerta trovata.

    + ) : ( +
    + )} + +

    {result.disclaimer}

    + + )} +
    + ); +} diff --git a/src/hooks/usePriceSearch.ts b/src/hooks/usePriceSearch.ts new file mode 100644 index 0000000..07d7c7a --- /dev/null +++ b/src/hooks/usePriceSearch.ts @@ -0,0 +1,82 @@ +"use client"; + +import { useCallback, useRef, useState } from "react"; + +import type { PriceSearchRequest, PriceSearchResponse } from "@/src/types/priceSearch"; + +type SearchStatus = "idle" | "loading" | "success" | "error"; + +export function usePriceSearch() { + const [status, setStatus] = useState("idle"); + const [result, setResult] = useState(null); + const [error, setError] = useState(null); + const abortRef = useRef(null); + + const search = useCallback(async (input: PriceSearchRequest) => { + abortRef.current?.abort(); + const controller = new AbortController(); + abortRef.current = controller; + + setStatus("loading"); + setError(null); + setResult(null); + + try { + const res = await fetch("/api/articoli/ricerca-prezzi", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(input), + signal: controller.signal, + }); + + const data = await res.json(); + + if (!res.ok) { + throw new Error( + typeof data.error === "string" ? data.error : "Errore ricerca prezzi", + ); + } + + const response = data as PriceSearchResponse; + setResult(response); + setStatus("success"); + return response; + } catch (err) { + if (err instanceof Error && err.name === "AbortError") { + setStatus("idle"); + return null; + } + + const message = err instanceof Error ? err.message : "Errore sconosciuto"; + setError(message); + setStatus("error"); + return null; + } finally { + if (abortRef.current === controller) { + abortRef.current = null; + } + } + }, []); + + const cancel = useCallback(() => { + abortRef.current?.abort(); + abortRef.current = null; + setStatus("idle"); + }, []); + + const reset = useCallback(() => { + cancel(); + setResult(null); + setError(null); + }, [cancel]); + + return { + status, + result, + error, + search, + cancel, + reset, + isLoading: status === "loading", + }; +} diff --git a/src/lib/permissions.ts b/src/lib/permissions.ts index 84c197a..3661ea9 100644 --- a/src/lib/permissions.ts +++ b/src/lib/permissions.ts @@ -37,6 +37,7 @@ export interface AppPermissions { canAssegnaArticoliMacchina: boolean; canEditMacchine: boolean; canRemoveArticoloMacchina: boolean; + canSearchPrices: boolean; } export function getPermissions(ruolo: UserRole): AppPermissions { @@ -49,6 +50,7 @@ export function getPermissions(ruolo: UserRole): AppPermissions { canAssegnaArticoliMacchina: true, canEditMacchine: true, canRemoveArticoloMacchina: true, + canSearchPrices: true, }; case "tecnico": return { @@ -58,6 +60,7 @@ export function getPermissions(ruolo: UserRole): AppPermissions { canAssegnaArticoliMacchina: true, canEditMacchine: true, canRemoveArticoloMacchina: true, + canSearchPrices: true, }; case "operatore": return { @@ -67,6 +70,7 @@ export function getPermissions(ruolo: UserRole): AppPermissions { canAssegnaArticoliMacchina: false, canEditMacchine: false, canRemoveArticoloMacchina: false, + canSearchPrices: false, }; } } diff --git a/src/lib/price-search/index.ts b/src/lib/price-search/index.ts new file mode 100644 index 0000000..5e849c3 --- /dev/null +++ b/src/lib/price-search/index.ts @@ -0,0 +1,15 @@ +import type { PriceSearchRequest, PriceSearchResponse } from "@/src/types/priceSearch"; +import { searchPriceOffersViaN8n } from "@/src/lib/price-search/n8n"; + +export async function searchPriceOffers( + input: PriceSearchRequest, + meta?: { userId?: string; userName?: string }, +): Promise { + const backend = (process.env.PRICE_SEARCH_BACKEND ?? "n8n").toLowerCase(); + + if (backend === "n8n") { + return searchPriceOffersViaN8n(input, meta); + } + + throw new Error(`Backend ricerca prezzi non supportato: ${backend}`); +} diff --git a/src/lib/price-search/n8n.ts b/src/lib/price-search/n8n.ts new file mode 100644 index 0000000..9405959 --- /dev/null +++ b/src/lib/price-search/n8n.ts @@ -0,0 +1,91 @@ +import type { PriceSearchRequest, PriceSearchResponse } from "@/src/types/priceSearch"; + +const DISCLAIMER = + "Prezzi indicativi da fonti web: verificare su ordine fornitore prima dell'acquisto."; + +function getWebhookConfig() { + const url = + process.env.N8N_PRICE_SEARCH_WEBHOOK_URL?.trim() ?? + process.env.N8N_PRICE_WEBHOOK_URL?.trim(); + const secret = process.env.N8N_PRICE_WEBHOOK_SECRET?.trim(); + const timeoutMs = Number(process.env.N8N_PRICE_WEBHOOK_TIMEOUT_MS ?? 35_000); + + if (!url || !secret) { + throw new Error("Ricerca prezzi n8n non configurata (URL o secret mancanti)"); + } + + return { url, secret, timeoutMs: Number.isFinite(timeoutMs) ? timeoutMs : 35_000 }; +} + +function isPriceSearchResponse(value: unknown): value is PriceSearchResponse { + if (!value || typeof value !== "object") return false; + const v = value as Record; + return ( + typeof v.query === "string" && + typeof v.searchedAt === "string" && + Array.isArray(v.offers) && + typeof v.disclaimer === "string" + ); +} + +export async function searchPriceOffersViaN8n( + input: PriceSearchRequest, + meta?: { userId?: string; userName?: string }, +): Promise { + const { url, secret, timeoutMs } = getWebhookConfig(); + + const controller = new AbortController(); + const timer = setTimeout(() => controller.abort(), timeoutMs); + + try { + const res = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json", + "X-Webhook-Secret": secret, + }, + body: JSON.stringify({ + ...input, + meta: { + source: "magricambi", + userId: meta?.userId ?? null, + userName: meta?.userName ?? null, + requestedAt: new Date().toISOString(), + }, + }), + signal: controller.signal, + cache: "no-store", + }); + + const text = await res.text(); + let data: unknown; + try { + data = text ? JSON.parse(text) : null; + } catch { + throw new Error("Risposta non valida dal workflow n8n"); + } + + if (!res.ok) { + const err = + data && typeof data === "object" && "error" in data + ? String((data as { error: unknown }).error) + : `Errore n8n (${res.status})`; + throw new Error(err); + } + + if (!isPriceSearchResponse(data)) { + throw new Error("Formato risposta n8n non conforme a PriceSearchResponse"); + } + + return data; + } catch (error) { + if (error instanceof Error && error.name === "AbortError") { + throw new Error("Timeout ricerca prezzi: riprova tra poco"); + } + throw error; + } finally { + clearTimeout(timer); + } +} + +export { DISCLAIMER }; diff --git a/src/types/priceSearch.ts b/src/types/priceSearch.ts new file mode 100644 index 0000000..0dc218c --- /dev/null +++ b/src/types/priceSearch.ts @@ -0,0 +1,27 @@ +export type PriceOfferConfidence = "high" | "medium" | "low"; +export type PriceOfferSource = "page" | "snippet" | "estimate"; + +export interface PriceOffer { + vendor: string; + title: string; + price: number | null; + currency: "EUR"; + url: string; + shippingNote?: string; + confidence: PriceOfferConfidence; + source: PriceOfferSource; +} + +export interface PriceSearchRequest { + descrizione: string; + barcode?: string | null; + codice?: string | null; + quantita?: number; +} + +export interface PriceSearchResponse { + query: string; + searchedAt: string; + offers: PriceOffer[]; + disclaimer: string; +}