export type ProductPrice = {
    id: number;
    variant_id: number;
    type: string;
    type_label: string;
    price: number;
    formatted_price: string;
};

export type ProductVariant = {
    id: number;
    product_id: number;
    name: string;
    stock: number;
    formatted_stock: string;
    product_prices: ProductPrice[];
};

export type ProductCategory = {
    id: number;
    name: string;
    slug: string;
};

export type Product = {
    id: number;
    name: string;
    slug: string;
    description: string | null;
    status: string;
    formatted_name: string;
    status_label: string;
    categories: ProductCategory[];
    product_variants: ProductVariant[];
};

export type Category = {
    id: number;
    name: string;
    slug: string;
    formatted_name: string;
};

export type HomepageData = {
    hero_badge: string;
    hero_title_line1: string;
    hero_title_line2: string;
    hero_title_highlight: string;
    hero_description: string;
    hero_cta_primary_text: string;
    hero_cta_secondary_text: string;
    hero_image_url: string | null;
    hero_bg_text_left: string;
    hero_bg_text_right: string;
    scroll_hashtag: string;
    scroll_tagline: string;
    catalog_badge: string;
    catalog_title: string;
    catalog_description: string;
    catalog_search_placeholder: string;
    gallery_badge: string;
    gallery_title: string;
    gallery_description: string;
    gallery_images: string[];
    order_guide_badge: string;
    order_guide_title: string;
    order_guide_description: string;
    order_steps: Array<{ title: string; description: string }>;
    about_badge: string;
    about_title: string;
    about_image_url: string | null;
    about_features: string[];
    contact_badge: string;
    contact_title: string;
    contact_description: string;
    contact_form_title: string;
    footer_description: string;
    footer_copyright: string;
};

export type Paginated<T> = {
    data: T[];
    current_page: number;
    first_page_url: string;
    from: number;
    last_page: number;
    last_page_url: string;
    next_page_url: string | null;
    path: string;
    per_page: number;
    prev_page_url: string | null;
    to: number;
    total: number;
};

export type SeoData = {
    title: string;
    description: string;
    image: string;
    url: string;
};
