67 lines
1.6 KiB
TypeScript
67 lines
1.6 KiB
TypeScript
export interface Product {
|
|
slug: string;
|
|
name: string;
|
|
brand: string;
|
|
category: "scienne" | "multisplit" | "przenosne" | "kasetonowe" | "konsolowe";
|
|
power: number; // kW
|
|
price: number; // cena urządzenia brutto (23% VAT)
|
|
priceWithInstall: number; // cena z montażem brutto (8% VAT dla os. prywatnych)
|
|
variants?: { label: string; power: number; price: number; priceWithInstall?: number }[];
|
|
image: string;
|
|
features: string[]; // np. ["Wi-Fi", "jonizacja", "grzanie"]
|
|
heating: boolean;
|
|
description: string;
|
|
specs: Record<string, string>; // klucz: wartość
|
|
}
|
|
|
|
export interface Project {
|
|
slug: string;
|
|
title: string;
|
|
category: "klimatyzacja" | "pompy-ciepla" | "remonty" | "hydraulika";
|
|
location: string; // np. "Wrocław"
|
|
image: string;
|
|
images?: string[]; // galeria
|
|
description: string;
|
|
scope?: string[]; // zakres prac
|
|
beforeAfter?: { before: string; after: string }; // dla remontów
|
|
}
|
|
|
|
export interface Post {
|
|
slug: string;
|
|
title: string;
|
|
category: "klimatyzacja" | "pompy-ciepla" | "remonty" | "hydraulika" | "porady";
|
|
excerpt: string;
|
|
date: string; // ISO format string
|
|
author: string;
|
|
image: string;
|
|
content: string; // markdown or HTML
|
|
featured?: boolean;
|
|
}
|
|
|
|
export interface FaqItem {
|
|
question: string;
|
|
answer: string;
|
|
}
|
|
|
|
export interface ProcessStep {
|
|
number: number;
|
|
title: string;
|
|
description: string;
|
|
icon?: string;
|
|
}
|
|
|
|
export interface ServiceItem {
|
|
title: string;
|
|
description: string;
|
|
icon: string; // nazwa ikony z lucide
|
|
href: string;
|
|
}
|
|
|
|
export interface Testimonial {
|
|
name: string;
|
|
rating: number; // np. 5
|
|
text: string;
|
|
source?: string; // np. "Google"
|
|
date?: string;
|
|
}
|