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[];
    photo_urls: string[];
};

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_image_url: string | null;
    about_image_url: string | null;
    gallery_images: 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;
};
