type JsonLdProps = {
  data: Record<string, unknown> | Record<string, unknown>[];
};

export default function JsonLd({ data }: JsonLdProps) {
  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }}
    />
  );
}

/**
 * @id canonique de l'entité Socialex. Référencé par les autres schemas
 * (Service, etc.) via `provider: { "@id": ORGANIZATION_ID }` pour lier
 * tous les graphes sémantiquement (signal d'autorité fort pour les LLM
 * et Google Knowledge Graph).
 */
export const ORGANIZATION_ID = "https://socialex.pro/#organization";

export const organizationSchema = {
  "@context": "https://schema.org",
  "@type": "LegalService",
  "@id": ORGANIZATION_ID,
  name: "Socialex",
  description:
    "Cabinet d'expertise juridique en droit des sociétés et droit des marques. Création, modifications statutaires, dépôt des comptes, dissolution, dépôt de marque.",
  url: "https://socialex.pro",
  email: "contact@socialex.pro",
  areaServed: { "@type": "Country", name: "France" },
  priceRange: "€€€",
  knowsAbout: [
    "Droit des sociétés",
    "Droit des marques",
    "Création de société",
    "Dépôt de marque INPI",
    "Dissolution de société",
    "Modifications statutaires",
  ],
  availableLanguage: "fr",
  contactPoint: {
    "@type": "ContactPoint",
    contactType: "customer support",
    email: "contact@socialex.pro",
    availableLanguage: "fr",
  },
  openingHoursSpecification: {
    "@type": "OpeningHoursSpecification",
    dayOfWeek: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    opens: "09:00",
    closes: "19:00",
  },
};
