export interface Category {
  id: string
  name: string
  slug: string
  icon?: string
  recipe_count?: number
}

export interface Recipe {
  id: string
  title: string
  slug: string
  description?: string
  category_id?: string
  category_name?: string
  category_slug?: string
  servings?: number
  prep_time_min?: number
  cook_time_min?: number
  total_time_min?: number
  difficulty?: 'easy' | 'medium' | 'hard'
  image_url?: string
  thumbnail_url?: string
  is_favorite: boolean
  tags?: string[]
  ingredients?: Ingredient[]
  steps?: Step[]
  notes?: Note[]
  created_at?: string
  updated_at?: string
}

export interface Ingredient {
  id?: string
  amount?: number
  unit?: string
  name: string
  group_name?: string
}

export interface Step {
  id?: string
  step_number: number
  instruction: string
  timer_minutes?: number
  timer_label?: string
  image_url?: string
}

export interface Note {
  id: string
  content: string
  created_at: string
}

export interface PaginatedResponse<T> {
  data: T[]
  total: number
  page: number
  limit: number
  totalPages: number
}
