Zastosowanie wszystkich poprawek UI i logiki kalkulatora

This commit is contained in:
AI Assistant
2026-08-10 23:26:52 +02:00
commit 7324a6f800
218 changed files with 33628 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
import { Metadata } from 'next';
export const metadata: Metadata = {
title: 'Realizacja zamówień',
description: 'Informacje o realizacji zamówień na klimatyzatory i pompy ciepła. Montaż na terenie Dolnego Śląska, wycena indywidualna.',
alternates: {
canonical: '/dostawa',
}
};
export default function DostawaPage() {
return (
<>
<h1 className="text-4xl font-extrabold mb-8">Dostawa i Płatności</h1>
<p className="lead">
Sprawdź dostępne metody wysyłki urządzeń oraz formy płatności akceptowane w naszym sklepie.
</p>
{/* TODO: treść prawna do uzupełnienia przez właściciela */}
<h2 id="dostawa">1. Metody i koszty dostawy</h2>
<p>Dla wygody naszych klientów przygotowaliśmy kilka opcji odbioru towaru:</p>
<div className="not-prose overflow-x-auto my-8 border border-border rounded-xl">
<table className="w-full text-left text-sm">
<thead className="bg-slate-50 border-b border-border text-primary font-semibold">
<tr>
<th className="p-4">Opcja dostawy</th>
<th className="p-4">Czas realizacji</th>
<th className="p-4">Koszt brutto</th>
</tr>
</thead>
<tbody className="divide-y divide-border">
<tr className="hover:bg-slate-50 transition-colors">
<td className="p-4 font-medium">Kurier Paletowy (Klimatyzatory)</td>
<td className="p-4 text-text-muted">2-3 dni robocze</td>
<td className="p-4 font-bold text-primary">0 zł (Darmowa)</td>
</tr>
<tr className="hover:bg-slate-50 transition-colors">
<td className="p-4 font-medium">Kurier Standard (Mniejsze elementy)</td>
<td className="p-4 text-text-muted">1-2 dni robocze</td>
<td className="p-4 font-bold text-primary">19 zł</td>
</tr>
<tr className="hover:bg-slate-50 transition-colors">
<td className="p-4 font-medium">Dostawa przez naszych Instalatorów</td>
<td className="p-4 text-text-muted">W dniu montażu</td>
<td className="p-4 font-bold text-primary">0 zł</td>
</tr>
</tbody>
</table>
</div>
<h2 id="instalatorzy">2. Dostawa podczas montażu</h2>
<p>
Jeśli wybierzesz wariant zakupu &quot;Z montażem&quot;, urządzenie nie jest wysyłane z wyprzedzeniem za pośrednictwem zewnętrznej firmy kurierskiej. Sprzęt w dniu umówionej instalacji przywozi nasza własna ekipa monterska, dzięki czemu minimalizujemy ryzyko uszkodzenia urządzenia w transporcie i zdejmujemy z Ciebie obowiązek składowania gabarytowych kartonów.
</p>
<h2 id="platnosci">3. Metody płatności</h2>
<ul>
<li><strong>Przelew tradycyjny</strong> – po złożeniu zamówienia otrzymasz fakturę pro forma do opłacenia.</li>
<li><strong>Szybkie płatności (Przelewy24/PayU)</strong> – natychmiastowe księgowanie wpłaty.</li>
<li><strong>Płatność u instalatora</strong> – gotówką po zakończonym montażu i uruchomieniu sprzętu (opcja dostępna po wpłaceniu zaliczki 20%).</li>
</ul>
</>
);
}
+60
View File
@@ -0,0 +1,60 @@
import { Metadata } from 'next';
import Link from 'next/link';
import { ShieldCheck } from 'lucide-react';
export const metadata: Metadata = {
title: 'Gwarancja na Klimatyzatory i Montaż',
description: 'Szczegółowe informacje dotyczące warunków gwarancji na instalowane urządzenia oraz usługi montażowe.',
alternates: {
canonical: '/gwarancja',
}
};
export default function GwarancjaPage() {
return (
<>
<div className="flex items-center gap-4 mb-6 text-green-600">
<ShieldCheck className="w-12 h-12" />
<h1 className="text-4xl font-extrabold m-0 text-primary">Gwarancja i Serwis</h1>
</div>
<p className="lead">
Jesteśmy autoryzowanym partnerem wszystkich sprzedawanych przez nas urządzeń, co oznacza pełne bezpieczeństwo Twojej inwestycji i bezproblemową realizację świadczeń gwarancyjnych.
</p>
{/* TODO: treść prawna do uzupełnienia przez właściciela */}
<h2 id="gwarancja-urzadzenia">1. Gwarancja na urządzenia</h2>
<p>Czas trwania gwarancji zależy od wybranego producenta:</p>
<ul>
<li><strong>Daikin</strong> – 3 lata gwarancji</li>
<li><strong>Rotenso</strong> – 5 lat gwarancji</li>
<li><strong>Mitsubishi Electric</strong> – 5 lat gwarancji</li>
<li><strong>Gree</strong> – 5 lat gwarancji</li>
<li><strong>LG</strong> – do 10 lat gwarancji na sprężarkę, 3 lata na urządzenie</li>
</ul>
<div className="bg-primary-light/10 border-l-4 border-primary p-4 my-8 rounded-r-lg">
<strong>Ważne:</strong> Warunkiem zachowania gwarancji jest wykonywanie regularnych (płatnych) przeglądów technicznych zgodnie z zaleceniami producenta – zazwyczaj dwa razy do roku.
</div>
<h2 id="gwarancja-montaz">2. Gwarancja na usługę montażu</h2>
<p>
Bierzemy pełną odpowiedzialność za wykonaną przez nas pracę. Udzielamy <strong>5-letniej rękojmi</strong> na poprawność działania całej instalacji chłodniczej i odpływu skroplin. Jeśli jakikolwiek problem wynika z błędu montażowego, naprawimy go na własny koszt.
</p>
<h2 id="serwis">3. Autoryzowany Serwis</h2>
<p>
Posiadamy pełne zaplecze techniczne, własnych wykwalifikowanych serwisantów i uprawnienia UDT oraz certyfikaty F-GAZ. Co to oznacza dla Ciebie?
W przypadku awarii, nie odsyłamy Cię do producenta. Przyjeżdżamy na miejsce diagnozując usterkę, a w razie konieczności zamawiamy części i realizujemy naprawę, oszczędzając Twój czas i nerwy.
</p>
<h2 id="przeglady">4. Zleć nam przegląd gwarancyjny</h2>
<p>
Oferujemy atrakcyjne pakiety stałej opieki serwisowej. Przy stałej współpracy koszty serwisu są niższe, a my sami pilnujemy za Ciebie terminów obowiązkowych przeglądów narzucanych przez producentów sprzętu.
<br/><br/>
<Link href="/kontakt" className="font-bold text-accent hover:underline">Skontaktuj się z nami</Link>, aby zarezerwować termin wizyty serwisowej.
</p>
</>
);
}
+17
View File
@@ -0,0 +1,17 @@
import React from 'react';
export default function FormalneLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<main className="bg-slate-50 min-h-screen py-24 md:py-32">
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="bg-white p-8 md:p-16 rounded-3xl border border-border shadow-sm prose prose-slate max-w-none prose-headings:font-heading prose-headings:text-primary prose-a:text-accent hover:prose-a:text-accent-hover prose-a:font-semibold">
{children}
</div>
</div>
</main>
);
}
@@ -0,0 +1,80 @@
import { Metadata } from 'next';
import { companyDetails } from '@/content/company';
export const metadata: Metadata = {
title: 'Polityka Prywatności',
description: 'Zasady przetwarzania danych osobowych oraz wykorzystania plików cookies w serwisie ThermCool.',
alternates: {
canonical: '/polityka-prywatnosci',
}
};
export default function PolitykaPrywatnosciPage() {
return (
<>
<h1 className="text-4xl font-extrabold mb-8">Polityka Prywatności i Cookies</h1>
<div className="prose prose-slate dark:prose-invert max-w-none space-y-6">
<p className="lead text-lg text-text-muted">
Poniższa Polityka Prywatności określa zasady zapisywania i uzyskiwania dostępu do danych na Urządzeniach Użytkowników korzystających z Serwisu do celów świadczenia usług drogą elektroniczną oraz zasady gromadzenia i przetwarzania danych osobowych Użytkowników.
</p>
<h2 id="administrator" className="text-2xl font-bold mt-8 mb-4">1. Administrator danych</h2>
<p>
Administratorem Twoich danych osobowych jest <strong>{companyDetails.legalName}</strong> z siedzibą we Wrocławiu (adres: {companyDetails.address.street}, {companyDetails.address.zipCode} {companyDetails.address.city}), NIP: {companyDetails.nip}, REGON: {companyDetails.regon}.
</p>
<p>Z administratorem można skontaktować się za pośrednictwem adresu e-mail: <strong>{companyDetails.email}</strong>.</p>
<h2 id="zakres-cel" className="text-2xl font-bold mt-8 mb-4">2. Zakres i cele przetwarzania</h2>
<p>Przetwarzamy dane osobowe podane przez Ciebie dobrowolnie w celu:</p>
<ul className="list-disc pl-6 space-y-2">
<li>Nawiązania kontaktu i odpowiedzi na przesłane zapytania (podstawa prawna: art. 6 ust. 1 lit. f RODO).</li>
<li>Realizacji usług, m.in. montażu, serwisu i dostarczenia urządzeń HVAC pod wskazany adres (podstawa prawna: art. 6 ust. 1 lit. b RODO).</li>
<li>Rozpatrywania potencjalnych reklamacji i roszczeń (podstawa prawna: art. 6 ust. 1 lit. c oraz f RODO).</li>
<li>Prowadzenia ksiąg rachunkowych i dokumentacji podatkowej.</li>
</ul>
<h2 id="prawa" className="text-2xl font-bold mt-8 mb-4">3. Prawa Użytkownika</h2>
<p>Zgodnie z przepisami RODO masz prawo do:</p>
<ul className="list-disc pl-6 space-y-2">
<li>Dostępu do swoich danych oraz otrzymania ich kopii.</li>
<li>Sprostowania (poprawienia) swoich danych.</li>
<li>Usunięcia danych (prawo do bycia zapomnianym) lub ograniczenia przetwarzania.</li>
<li>Przenoszenia danych do innego administratora.</li>
<li>Wniesienia sprzeciwu wobec przetwarzania danych w celach marketingowych lub wynikających z prawnie uzasadnionego interesu administratora.</li>
<li>Cofnięcia zgody w dowolnym momencie (bez wpływu na zgodność z prawem przetwarzania przed jej wycofaniem).</li>
</ul>
<h2 id="cookies" className="text-2xl font-bold mt-8 mb-4">4. Pliki Cookies i Analityka (Google Analytics 4 / Tag Manager)</h2>
<p>
Nasz serwis wykorzystuje pliki cookies (tzw. &quot;ciasteczka&quot;) – dane informatyczne, w szczególności pliki tekstowe, które przechowywane są w urządzeniu końcowym Użytkownika i przeznaczone są do korzystania z naszej strony internetowej.
</p>
<h3 className="text-xl font-semibold mt-6 mb-3">Google Analytics 4 (GA4) i Google Tag Manager (GTM)</h3>
<p>
W celu analizy statystyk ruchu, zrozumienia zachowań Użytkowników oraz ciągłej optymalizacji naszego serwisu korzystamy z narzędzi dostarczanych przez firmę Google LLC: <strong>Google Analytics 4</strong> oraz <strong>Google Tag Manager</strong>.
</p>
<ul className="list-disc pl-6 space-y-2 mt-4">
<li>
<strong>Zasada działania:</strong> Narzędzia te używają plików cookies do generowania anonimowych statystyk dotyczących sposobu korzystania z witryny. Generowane informacje są następnie przekazywane i przechowywane na serwerach Google.
</li>
<li>
<strong>Anonimizacja IP:</strong> Wdrożyliśmy funkcje ochrony prywatności, a informacje zbierane przez analitykę Google są pseudonimizowane, uniemożliwiając bezpośrednią identyfikację konkretnej osoby.
</li>
<li>
<strong>Zarządzanie:</strong> Użytkownik może w każdej chwili wyłączyć śledzenie analityczne za pomocą ustawień przeglądarki, instalując oficjalny dodatek do przeglądarki blokujący Google Analytics, lub korzystając z baneru zgody na naszej stronie.
</li>
</ul>
<h2 id="okres-przechowywania" className="text-2xl font-bold mt-8 mb-4">5. Okres przechowywania danych</h2>
<p>
Dane osobowe przetwarzane w celu zawarcia lub wykonania umowy będą przechowywane przez okres obowiązywania umowy, a po jego upływie przez okres niezbędny do posprzedażowej obsługi klientów (np. obsługi roszczeń z tytułu gwarancji/rękojmi) oraz wypełnienia obowiązków prawnych (np. rozliczeń podatkowych przez 5 lat).
</p>
<p className="text-sm text-text-muted mt-12 pt-8 border-t border-border">
Ostatnia aktualizacja dokumentu: {new Date().toLocaleDateString('pl-PL')} r.
</p>
</div>
</>
);
}
+64
View File
@@ -0,0 +1,64 @@
import { Metadata } from 'next';
export const metadata: Metadata = {
title: 'Regulamin Sklepu i Usług',
description: 'Regulamin świadczenia usług, zasady korzystania ze sklepu, prawa i obowiązki klienta.',
alternates: {
canonical: '/regulamin',
}
};
export default function RegulaminPage() {
return (
<>
<h1 className="text-4xl font-extrabold mb-8">Regulamin Serwisu i Sklepu Internetowego</h1>
<p className="lead">
Niniejszy dokument określa zasady korzystania z serwisu AirProject oraz dokonywania w nim zakupów urządzeń i usług montażu.
</p>
{/* TODO: treść prawna do uzupełnienia przez właściciela i weryfikacji przez radcę prawnego */}
<h2 id="postanowienia-ogolne">§ 1. Postanowienia ogólne</h2>
<p>
1. Sklep internetowy działający pod adresem internetowym airproject.pl prowadzony jest przez:
<strong> [TUTAJ WPISZ DANE FIRMY: Nazwa, Adres, NIP, REGON]</strong>.
</p>
<p>
2. Niniejszy Regulamin określa zasady zawierania umów sprzedaży i świadczenia usług za pośrednictwem serwisu.
</p>
<h2 id="definicje">§ 2. Definicje</h2>
<ul>
<li><strong>Klient</strong> – osoba fizyczna, osoba prawna lub jednostka organizacyjna nie posiadająca osobowości prawnej.</li>
<li><strong>Konsument</strong> – Klient będący osobą fizyczną, dokonujący zakupów w celu niezwiązanym bezpośrednio z jego działalnością gospodarczą lub zawodową.</li>
<li><strong>Sklep</strong> – platforma e-commerce pod adresem airproject.pl.</li>
</ul>
<h2 id="zamowienia">§ 3. Zasady składania i realizacji zamówień</h2>
<p>
1. Informacje zawarte na Stronie Internetowej Sklepu nie stanowią oferty w rozumieniu Kodeksu Cywilnego, a jedynie zaproszenie do zawarcia umowy.
<br />
2. Klient może składać zamówienia 24 godziny na dobę przez 7 dni w tygodniu.
<br />
3. Realizacja usług montażowych odbywa się po uprzednim kontakcie i ustaleniu terminu.
</p>
<h2 id="platnosci">§ 4. Płatności i ceny</h2>
<p>
1. Wszystkie ceny na stronie są cenami brutto (zawierają podatek VAT).
</p>
<h2 id="odstapienie">§ 5. Odstąpienie od umowy</h2>
<p>
1. Konsument ma prawo odstąpić od umowy zawartej na odległość bez podania przyczyny w terminie 14 dni od dnia dostarczenia towaru.
<br />
2. Prawo odstąpienia nie przysługuje w odniesieniu do usług, które zostały w pełni wykonane za wyraźną zgodą Konsumenta.
</p>
<p className="text-sm text-text-muted mt-12 pt-8 border-t border-border">
Ostatnia aktualizacja regulaminu: 1 stycznia 2026 r.
</p>
</>
);
}
+64
View File
@@ -0,0 +1,64 @@
import { Metadata } from 'next';
import Link from 'next/link';
import { companyDetails } from '@/content/company';
export const metadata: Metadata = {
title: 'Reklamacje i Zwroty',
description: 'Zasady i procedury składania reklamacji oraz zwrotów produktów i usług w sklepie ThermCool.',
alternates: {
canonical: '/reklamacje',
}
};
export default function ReklamacjePage() {
return (
<>
<h1 className="text-4xl font-extrabold mb-8">Reklamacje i Zwroty</h1>
<p className="lead">
Dokładamy wszelkich starań, aby nasze produkty i usługi były najwyższej jakości. Jeśli jednak cokolwiek nie spełnia Twoich oczekiwań, masz pełne prawo złożyć reklamację lub dokonać zwrotu.
</p>
{/* TODO: treść prawna do uzupełnienia przez właściciela */}
<h2 id="zwroty">1. Zwroty (Odstąpienie od umowy)</h2>
<p>
Zgodnie z polskim prawem konsument ma prawo zwrócić zakupiony produkt bez podania przyczyny w ciągu 14 dni od dnia jego otrzymania. Pamiętaj jednak, że:
</p>
<ul>
<li>Zwracany towar nie może nosić śladów montażu i używania.</li>
<li>Koszty odesłania urządzenia ponosi kupujący.</li>
<li>W przypadku wykonania usługi montażu urządzenia za uprzednią zgodą konsumenta, prawo do odstąpienia od umowy może zostać wyłączone.</li>
</ul>
<h2 id="jak-zwrocic">Jak dokonać zwrotu?</h2>
<ol>
<li>Powiadom nas drogą mailową na adres: <strong>kontakt@twoj-sklep.pl</strong>.</li>
<li>Zapakuj bezpiecznie produkt w oryginalne opakowanie.</li>
<li>Odeślij go na wskazany przez nas adres magazynu.</li>
<li>Po weryfikacji sprzętu, środki zwrócimy Ci w ciągu 14 dni roboczych.</li>
</ol>
<h2 id="reklamacje">2. Procedura Reklamacyjna (Rękojmia i Gwarancja)</h2>
<p>
Wszystkie wady urządzeń mogą być zgłaszane z tytułu gwarancji producenta lub rękojmi.
Gwarancje na poszczególne urządzenia mogą wynosić od 2 do 5 lat (szczegóły w karcie produktu i zakładce <Link href="/gwarancja">Gwarancja</Link>).
</p>
<h2 id="jak-reklamowac">Jak zgłosić usterkę?</h2>
<p>
W razie awarii sprzętu zamontowanego przez naszą firmę, zalecamy kontakt telefoniczny lub poprzez e-mail:
</p>
<ul>
<li>Opisz rodzaj usterki i kod błędu wyświetlający się na urządzeniu (jeśli występuje).</li>
<li>Dołącz zdjęcia instalacji lub uszkodzonego elementu.</li>
<li>Nasz serwisant skontaktuje się z Tobą w celu ustalenia terminu darmowej diagnozy i naprawy (w okresie gwarancyjnym).</li>
</ul>
<div className="mt-8 p-6 bg-slate-50 border border-border rounded-xl">
<p className="mb-0 font-semibold text-primary">Masz dodatkowe pytania?</p>
<p className="mb-0 mt-2 text-sm">Zadzwoń do nas pod numer {companyDetails.phone} lub skorzystaj z <Link href="/kontakt">formularza kontaktowego</Link>.</p>
</div>
</>
);
}