import { useParams } from "@solidjs/router";
import { For } from "solid-js";
import { Card, CardContent, CardHeader, CardTitle } from "../components/ui";
import { BookraCharacter } from "../components/bookra-character";
import { useI18n } from "../providers/i18n-provider";

export function LegalRoute() {
  const params = useParams();
  const i18n = useI18n();
  const kind = () => (params.kind === "terms" ? "terms" : "privacy");
  const heroPose = () => (kind() === "terms" ? "flag" : "educate");
  const isCs = () => i18n.locale() === "cs";

  const companyInfo = () =>
    isCs()
      ? "Provozovatel: Bookra, IČO 24330621. Sídlo: Česká republika."
      : "Operator: Bookra, Business ID 24330621. Registered in the Czech Republic.";

  const termsSections = () => [
    {
      title: isCs() ? "1. Úvod a předmět smlouvy" : "1. Introduction and subject",
      body: isCs()
        ? "Tyto podmínky upravují používání služby Bookra — online rezervačního systému pro lokální služby. Poskytovatelem je Bookra , IČO 24330621. Službu mohou využívat podnikatelé a právnické osoby k správě rezervací, zákazníků a dostupnosti. Uživatel se zavazuje používat službu v souladu s právními předpisy, bez zneužívání rezervačních formulářů, obcházení zabezpečení nebo ukládání zakázaného obsahu."
        : "These terms govern the use of Bookra — an online booking system for local services. The provider is Bookra , Business ID 24330621. Entrepreneurs and legal entities may use the service to manage bookings, customers, and availability. The user agrees to use the service lawfully, without abusing booking forms, bypassing security, or storing prohibited content.",
    },
    {
      title: isCs() ? "2. Registrace a účet" : "2. Registration and account",
      body: isCs()
        ? "Pro plné využití služby je nutná registrace. Uživatel zodpovídá za správnost údajů uvedených při registraci a za bezpečnost přihlašovacích údajů. Provozovatel účtu odpovídá za správnost nabídky, dostupnost termínů a komunikaci se zákazníky. Bookra nezodpovídá za obsah rezervací a komunikaci mezi provozovatelem a zákazníkem."
        : "Full use of the service requires registration. The user is responsible for the accuracy of registration details and the security of login credentials. The workspace operator is responsible for the accuracy of their offer, availability of times, and customer communication. Bookra is not liable for booking content or communication between operators and customers.",
    },
    {
      title: isCs() ? "3. Předplatné a platby" : "3. Subscription and payments",
      body: isCs()
        ? "Placené plány se účtují předem prostřednictvím platební brány Paddle nebo Stripe. Aktivní plán určuje dostupné limity, rozšíření a podpůrné funkce. Při roční platbě je poskytována sleva oproti měsíčnímu zúčtování. Uživatel může předplatné kdykoliv zrušit; přístup zůstává do konce zaplaceného období. Neposkytujeme refundace za již zaplacená období."
        : "Paid plans are billed in advance through Paddle or Stripe. The active plan determines available limits, add-ons, and support features. Annual billing includes a discount compared to monthly billing. Users may cancel anytime; access continues until the end of the paid period. No refunds are provided for already-paid periods.",
    },
    {
      title: isCs() ? "4. Odpovědnost a omezení" : "4. Liability and limitations",
      body: isCs()
        ? "Bookra se snaží zajistit nepřetržitý provoz, ale nezaručuje 100% dostupnost. Neneseme odpovědnost za přímé ani nepřímé škody způsobené výpadkem služby, ztrátou dat způsobenou uživatelem nebo technickými problémy třetích stran. Doporučujeme pravidelnou zálohu důležitých dat."
        : "Bookra strives to ensure uninterrupted service but does not guarantee 100% uptime. We are not liable for direct or indirect damages caused by service outages, data loss caused by the user, or technical issues from third parties. We recommend regular backups of important data.",
    },
    {
      title: isCs() ? "5. Ukončení a výpověď" : "5. Termination",
      body: isCs()
        ? "Uživatel může účet zrušit kdykoliv v nastavení. Při dlouhodobé neaktivitě (12 měsíců bez přihlášení) si vyhrazujeme právo účet deaktivovat po předchozím upozornění. Při porušení podmínek může být účet ukončen okamžitě."
        : "Users may cancel their account anytime in settings. After prolonged inactivity (12 months without login), we reserve the right to deactivate the account after prior notice. Accounts violating these terms may be terminated immediately.",
    },
  ];

  const privacySections = () => [
    {
      title: isCs() ? "1. Jaké údaje zpracováváme a proč" : "1. What data we process and why",
      body: isCs()
        ? "Zpracováváme minimální množství dat nezbytných pro fungování služby: kontaktní údaje zákazníků (jméno, e-mail) pro potvrzení rezervace, čas rezervace a poznámky zadané při rezervaci, údaje o účtu provozovatele (e-mail, jméno) pro správu účtu, a technické záznamy (IP adresa, čas požadavku) pro zabezpečení. Údaje tenantů jsou oddělené a přístup k nim je omezen podle role uživatele."
        : "We process the minimum data necessary for the service: customer contact details (name, email) for booking confirmation, booking times and notes, workspace account details (email, name) for account management, and technical records (IP address, request time) for security. Tenant data is isolated and access is limited by user role.",
    },
    {
      title: isCs() ? "2. Cookies a sledování" : "2. Cookies and tracking",
      body: isCs()
        ? "Bookra nepoužívá žádné sledovací cookies pro marketingové ani analytické účely. Jediné cookies, které ukládáme, jsou technicky nezbytné pro přihlášení a správu relace. Pro anonymní statistiky využíváme Rybbit — nástroj, který pracuje bez cookies a neukládá osobní údaje návštěvníků."
        : "Bookra does not use any tracking cookies for marketing or analytics purposes. The only cookies we store are technically necessary for login and session management. For anonymous statistics, we use Rybbit — a tool that operates without cookies and does not store visitors' personal data.",
    },
    {
      title: isCs() ? "3. Údaje registrovaných uživatelů" : "3. Registered user data",
      body: isCs()
        ? "Při registraci shromažďujeme e-mailovou adresu a jméno uživatele. Tato data slouží výhradně k autentizaci, správě účtu a komunikaci ohledně služby (připomenutí, oznámení o změnách). Vaše data neprodáváme, nepronajímáme a nesdílíme s třetími stranami pro marketingové účely. Přístup mají pouze oprávnění zaměstnanci Bookry a to pouze v nezbytném rozsahu pro technickou podporu."
        : "During registration, we collect the user's email address and name. This data is used solely for authentication, account management, and service-related communication (reminders, change notifications). We do not sell, rent, or share your data with third parties for marketing purposes. Only authorized Bookra employees have access, and only to the extent necessary for technical support.",
    },
    {
      title: isCs() ? "4. Práva a žádosti" : "4. Rights and requests",
      body: isCs()
        ? "V souladu s GDPR máte právo na přístup ke svým údajům, jejich opravu, výmaz nebo omezení zpracování. Žádosti o přístup, opravu nebo výmaz údajů řeší provozovatel konkrétního účtu. Bookra poskytuje technické prostředky pro bezpečné zpracování. Svá práva můžete uplatnit e-mailem na hello@bookra.eu."
        : "In accordance with GDPR, you have the right to access, correct, delete, or restrict processing of your data. Access, correction, and deletion requests are handled by the operator of the relevant workspace. Bookra provides the technical system for secure processing. You may exercise your rights by emailing hello@bookra.eu.",
    },
    {
      title: isCs() ? "5. Doba uchování a zabezpečení" : "5. Retention and security",
      body: isCs()
        ? "Rezervační údaje uchováváme po dobu existence účtu provozovatele, pokud není smazány dříve. Technické záznamy uchováváme po dobu 90 dnů. Všechna data jsou přenášena šifrovaně (TLS), uchovávána v zabezpečených datových centrech v EU a pravidelně zálohována."
        : "Booking data is retained for the lifetime of the operator's account unless deleted earlier. Technical records are kept for 90 days. All data is transmitted encrypted (TLS), stored in secure EU data centers, and regularly backed up.",
    },
  ];

  const sections = () => (kind() === "terms" ? termsSections() : privacySections());

  return (
    <section class="section-container py-16">
      <div class="grid gap-8 lg:grid-cols-[minmax(0,1fr)_340px]">
        <div class="max-w-3xl space-y-8">
          <div class="space-y-4">
            <h1 class="font-display text-4xl font-semibold text-ink">
              {i18n.t(`legal.${kind()}.title`)}
            </h1>
            <p class="text-lg text-ink-muted">{i18n.t(`legal.${kind()}.body`)}</p>
            <p class="text-sm text-ink-subtle">{companyInfo()}</p>
          </div>

          <For each={sections()}>
            {(section, i) => (
              <Card class="surface-elevated hover:shadow-md transition-shadow">
                <CardHeader>
                  <CardTitle class="text-lg">{section.title}</CardTitle>
                </CardHeader>
                <CardContent>
                  <p class="text-ink-muted leading-relaxed">{section.body}</p>
                </CardContent>
              </Card>
            )}
          </For>

          <div class="pt-4 border-t border-border">
            <p class="text-sm text-ink-subtle">
              {isCs()
                ? "Poslední aktualizace: květen 2026. V případě dotazů nás kontaktujte na hello@bookra.eu."
                : "Last updated: May 2026. For questions, contact us at hello@bookra.eu."}
            </p>
          </div>
        </div>

        <aside class="lg:sticky lg:top-24 h-fit space-y-6">
          <Card class="surface-elevated overflow-hidden">
            <CardContent class="p-8 text-center">
              <div class="mb-6 flex justify-center">
                <BookraCharacter pose={heroPose()} size="xl" animate={true} />
              </div>
              <img
                src="/bookra-illustrations/logo_text_vertical.svg"
                alt="Bookra"
                class="mx-auto mb-6 h-28 w-auto opacity-90"
              />
              <p class="text-sm leading-relaxed text-ink-muted">
                {kind() === "terms"
                  ? isCs()
                    ? "Pravidla držíme stručná, čitelná a navázaná na reálný provoz služby."
                    : "We keep terms short, readable, and tied to real product behavior."
                  : isCs()
                    ? "Soukromí řešíme prakticky: minimum dat navíc, jasný účel a předvídatelné zpracování."
                    : "We handle privacy pragmatically: minimal extra data, clear purpose, and predictable processing."}
              </p>
            </CardContent>
          </Card>

          <Card class="surface-elevated">
            <CardContent class="p-6">
              <h3 class="font-display font-semibold text-ink text-sm mb-3">
                {isCs() ? "Kontakt" : "Contact"}
              </h3>
              <div class="space-y-2 text-sm text-ink-muted">
                <p>Bookra </p>
                <p>IČO: 24330621</p>
                <p>Česká republika</p>
                <a href="mailto:hello@bookra.eu" class="text-accent hover:underline block mt-2">
                  hello@bookra.eu
                </a>
              </div>
            </CardContent>
          </Card>
        </aside>
      </div>
    </section>
  );
}
