export interface ExploreItem {
    id: number;
    type: 'experience' | 'poi';
    title: string;
    description: string;
    image_url: string | null;
    location: string | null;
    latitude: number | null;
    longitude: number | null;
    likes_count: number;
    comments_count: number;
    views_count: number;
    engagement_rate: number;
    is_featured: boolean;
    time_ago: string;
    // Experience-specific
    content?: string;
    user?: {
        id: number;
        first_name: string;
        last_name: string;
        full_name: string;
        email: string;
        avatar_url: string | null;
        bio: string;
        account_type: string;
    };
    // POI-specific
    name?: string;
    category?: {
        id: number;
        name: string;
    };
    created_by_user?: {
        id: number;
        first_name: string;
        last_name: string;
        full_name: string;
        email: string;
        avatar_url: string | null;
        bio: string;
        account_type: string;
    };
}

export interface ExploreCategory {
    id: number;
    name_en: string;
    name_ro: string;
}

export interface ExplorePagination {
    current_page: number;
    data: ExploreItem[];
    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 interface ExploreFilters {
    search: string | null;
    category: string | null;
    bounds: MapBounds | null;
}

export interface MapBounds {
    south: number;
    west: number;
    north: number;
    east: number;
}

import { PageProps } from '@/types';

export interface ExplorePageProps extends PageProps {
    items: ExplorePagination;
    categories: ExploreCategory[];
    filters: ExploreFilters;
}
