This commit is contained in:
Your Name committed 2026-06-07 17:17:01 +07:00
1 parent d325cd8763
commit c6bf2f70ac
45 files changed
+5195 -338

No files matched your search

+101
View File
@@ -160,3 +160,104 @@ export interface CartItem {
variantSize?: string | null
productImage?: string | null
}
export interface Page {
id: number
slug: string
title: string
isPublished: boolean
sections?: PageSection[]
createdAt?: string
updatedAt?: string
}
export interface PageSection {
id: number
pageId: number
type: string // e.g. 'HERO' | 'CATEGORIES' | 'PRODUCTS' | 'BANNER' | 'TEXT'
order: number
payload: any // Specific payload depending on type
isActive: boolean
createdAt?: string
updatedAt?: string
}
export interface HeroSectionPayload {
tagline: string
title: string
description: string
imageUrl: string
buttonText: string
buttonLink: string
}
export interface CategoriesSectionPayload {
title: string
subtitle?: string
categoryIds?: number[]
}
export interface ProductsSectionPayload {
title: string
subtitle?: string
type: 'featured' | 'scent' | 'custom'
scentId?: number
productIds?: number[]
limit?: number
layout?: 'grid' | 'carousel'
enableQuickShop?: boolean
}
export interface BannerSectionPayload {
imageUrl: string
linkUrl?: string
title?: string
description?: string
buttonText?: string
}
export interface TextSectionPayload {
title?: string
content: string
textAlign?: 'left' | 'center' | 'right'
}
export interface AnnouncementBarSectionPayload {
slides: string[]
backgroundColor?: string
textColor?: string
speed?: number
}
export interface NewsletterSectionPayload {
title: string
description: string
buttonText: string
placeholderText?: string
showPrivacyCheckbox: boolean
privacyText?: string;
}
export interface EditorialTileSectionPayload {
title: string
description: string
imageUrl: string
imagePosition: 'left' | 'right'
buttonText?: string
buttonLink?: string
backgroundColor?: string
textColor?: string
}
export interface EditorialCarouselSectionPayload {
title: string
slides: {
category: string
title: string
description: string
imageUrl: string
buttonText?: string
buttonLink?: string
}[]
}