Sets up the foundational structure for the CAR Auto Center application using Vite and React. Includes project dependencies, basic HTML structure, TypeScript configuration, and initial README content. This commit establishes the project's build tool, core libraries, and essential configuration files.
223 lines
4.0 KiB
TypeScript
223 lines
4.0 KiB
TypeScript
export interface NavItem {
|
|
label: string;
|
|
href: string;
|
|
}
|
|
|
|
export interface Service {
|
|
id: number;
|
|
title: string;
|
|
description: string;
|
|
image: string;
|
|
}
|
|
|
|
export interface PromiseItem {
|
|
icon: string; // Changed from LucideIcon to string for JSON storage
|
|
title: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface Package {
|
|
name: string;
|
|
price: number;
|
|
features: string[];
|
|
recommended?: boolean;
|
|
}
|
|
|
|
export interface Stat {
|
|
label: string;
|
|
value: string;
|
|
}
|
|
|
|
export interface Testimonial {
|
|
name: string;
|
|
role: string;
|
|
image: string;
|
|
text: string;
|
|
stars: number;
|
|
}
|
|
|
|
export interface TeamMember {
|
|
name: string;
|
|
role: string;
|
|
image: string;
|
|
}
|
|
|
|
export interface FaqItem {
|
|
question: string;
|
|
answer: string;
|
|
}
|
|
|
|
export interface BlogPost {
|
|
id: number; // Adicionado ID para roteamento
|
|
title: string;
|
|
image: string;
|
|
excerpt: string;
|
|
content: string; // Adicionado conteúdo completo
|
|
date: string;
|
|
}
|
|
|
|
export interface SpecialOffer {
|
|
id: number;
|
|
title: string;
|
|
image: string;
|
|
price: string;
|
|
installment: string;
|
|
rating: number;
|
|
reviews: number;
|
|
specs: {
|
|
fuel: string;
|
|
grip: string;
|
|
noise: string;
|
|
};
|
|
}
|
|
|
|
export interface ClientLogo {
|
|
name: string;
|
|
url: string;
|
|
}
|
|
|
|
export interface WhyChooseItem {
|
|
icon: string;
|
|
text: string;
|
|
}
|
|
|
|
// Novo Tipo para Antes e Depois
|
|
export interface BeforeAfterItem {
|
|
id: number;
|
|
title: string;
|
|
imageBefore: string;
|
|
imageAfter: string;
|
|
}
|
|
|
|
export interface GlobalSettings {
|
|
siteName: string;
|
|
logoUrl: string; // URL for the logo image
|
|
faviconUrl: string;
|
|
primaryColor: string;
|
|
whatsappNumber: string; // Only numbers, e.g., 5511999999999
|
|
contactEmail: string; // For form submissions
|
|
contactPhoneDisplay: string; // Formatted phone for display
|
|
address: string;
|
|
social: {
|
|
instagram: string;
|
|
facebook: string;
|
|
twitter: string;
|
|
youtube: string;
|
|
linkedin: string;
|
|
};
|
|
}
|
|
|
|
export interface SectionVisibility {
|
|
hero: boolean;
|
|
specialOffers: boolean;
|
|
about: boolean;
|
|
services: boolean;
|
|
bigCta: boolean;
|
|
packages: boolean;
|
|
gallery: boolean;
|
|
beforeAfter: boolean; // Nova seção
|
|
stats: boolean;
|
|
whyChoose: boolean;
|
|
testimonials: boolean;
|
|
team: boolean;
|
|
faq: boolean;
|
|
blog: boolean;
|
|
contact: boolean;
|
|
clients: boolean;
|
|
}
|
|
|
|
// Novos tipos para textos editáveis
|
|
export interface SectionTexts {
|
|
hero: {
|
|
feature1: string;
|
|
feature2: string;
|
|
feature3: string;
|
|
};
|
|
specialOffers: {
|
|
badge: string;
|
|
title: string;
|
|
subtitle: string;
|
|
};
|
|
about: {
|
|
subtitle: string;
|
|
title: string;
|
|
badgeYear: string;
|
|
badgeText: string;
|
|
};
|
|
services: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
packages: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
gallery: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
// Nova seção de textos
|
|
beforeAfter: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
whyChoose: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
testimonials: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
team: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
faq: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
blog: {
|
|
subtitle: string;
|
|
title: string;
|
|
};
|
|
contact: {
|
|
subtitle: string;
|
|
title: string;
|
|
description: string;
|
|
};
|
|
bigCta: {
|
|
title: string;
|
|
subtitle: string;
|
|
buttonText: string;
|
|
}
|
|
}
|
|
|
|
// Configuração do Header
|
|
export interface HeaderConfig {
|
|
items: NavItem[];
|
|
ctaButton: {
|
|
text: string;
|
|
url: string; // Se vazio, usa a lógica padrão do WhatsApp
|
|
show: boolean;
|
|
};
|
|
}
|
|
|
|
// Configuração do Footer
|
|
export interface FooterLink {
|
|
label: string;
|
|
href: string;
|
|
}
|
|
|
|
export interface FooterColumn {
|
|
id: string; // Identificador único para ajudar na renderização/edição
|
|
title: string;
|
|
type: 'custom' | 'services_dynamic' | 'hours'; // Tipo de coluna
|
|
links?: FooterLink[]; // Apenas usado se type === 'custom'
|
|
}
|
|
|
|
export interface FooterConfig {
|
|
description: string;
|
|
columns: FooterColumn[];
|
|
bottomLinks: FooterLink[]; // Links de privacidade, termos, etc.
|
|
} |