- Updated [...slug] to handle both product categories and portfolio projects - Added 15 portfolio project pages - Added PortfolioProject type to types/index.ts - Build now generates 64 static pages (38 products + 15 portfolio + 3 blog + 8 main)
92 lines
1.5 KiB
TypeScript
92 lines
1.5 KiB
TypeScript
// Site Configuration Types
|
|
export interface SiteConfig {
|
|
name: string;
|
|
nameTh: string;
|
|
url: string;
|
|
description: string;
|
|
phone: string;
|
|
email: string;
|
|
lineId: string;
|
|
facebookUrl: string;
|
|
address: string;
|
|
}
|
|
|
|
export interface WorkHours {
|
|
day: string;
|
|
hours: string;
|
|
isClosed?: boolean;
|
|
}
|
|
|
|
export interface ProductCategory {
|
|
id: string;
|
|
name: string;
|
|
nameEn: string;
|
|
slug: string;
|
|
href: string;
|
|
image: string;
|
|
description: string;
|
|
shortDescription?: string;
|
|
keywords?: string[];
|
|
seoContent?: string;
|
|
}
|
|
|
|
export interface NavItem {
|
|
label: string;
|
|
labelEn: string;
|
|
href: string;
|
|
children?: NavItem[];
|
|
}
|
|
|
|
// Blog Types
|
|
export interface BlogPost {
|
|
slug: string;
|
|
title: string;
|
|
excerpt: string;
|
|
content: string;
|
|
date: string;
|
|
author: string;
|
|
category: string;
|
|
image?: string;
|
|
}
|
|
|
|
export interface BlogCategory {
|
|
name: string;
|
|
slug: string;
|
|
count: number;
|
|
}
|
|
|
|
// Portfolio Types
|
|
export interface PortfolioItem {
|
|
id: string;
|
|
title: string;
|
|
category: string;
|
|
image: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface PortfolioProject {
|
|
id: string;
|
|
name: string;
|
|
href: string;
|
|
image: string;
|
|
description: string;
|
|
}
|
|
|
|
// Contact Form Types
|
|
export interface ContactFormData {
|
|
name: string;
|
|
email: string;
|
|
phone: string;
|
|
subject: string;
|
|
message: string;
|
|
}
|
|
|
|
// SEO Types
|
|
export interface SEOData {
|
|
title: string;
|
|
description: string;
|
|
keywords?: string[];
|
|
ogImage?: string;
|
|
canonical?: string;
|
|
}
|