export type GalleryCategory = 'basketball' | 'volleyball' | 'jrdleag' | 'community'
export type GalleryVariant = 'default' | 'tall' | 'square'

export interface GalleryTile {
  id: string
  category: GalleryCategory
  variant: GalleryVariant
  src?: string
}

const basketballVariants: GalleryVariant[] = ['square', 'tall', 'default', 'default', 'tall', 'square', 'tall', 'default', 'square']
const volleyballVariants: GalleryVariant[] = ['tall', 'default', 'square', 'tall', 'square', 'default', 'default', 'tall', 'square']
const jrVariants: GalleryVariant[] = ['default', 'square', 'tall', 'square', 'tall', 'default', 'tall', 'square', 'default']
const communityVariants: GalleryVariant[] = ['square', 'default', 'tall', 'tall', 'default', 'square', 'default', 'tall', 'square']

function jrDleagTiles(variants: GalleryVariant[]): GalleryTile[] {
  return variants.map((variant, i) => ({
    id: `gallery-jrdleag-${i + 1}`,
    category: 'jrdleag',
    variant,
    src: `/images/gallery/Jr_DLEAG_img${i + 1}.webp`,
  }))
}

function basketballTiles(variants: GalleryVariant[]): GalleryTile[] {
  return variants.map((variant, i) => ({
    id: `gallery-basketball-${i + 1}`,
    category: 'basketball',
    variant,
    src: `/images/gallery/basketball-${i + 1}.webp`,
  }))
}

function volleyballTiles(variants: GalleryVariant[]): GalleryTile[] {
  return variants.map((variant, i) => ({
    id: `gallery-volleyball-${i + 1}`,
    category: 'volleyball',
    variant,
    src: `/images/gallery/volleyball-${i + 1}.webp`,
  }))
}

function communityTiles(variants: GalleryVariant[]): GalleryTile[] {
  return variants.map((variant, i) => ({
    id: `gallery-community-${i + 1}`,
    category: 'community',
    variant,
    src: `/images/gallery/community-${i + 1}.webp`,
  }))
}

export const galleryTiles: GalleryTile[] = [
  ...basketballTiles(basketballVariants),
  ...volleyballTiles(volleyballVariants),
  ...jrDleagTiles(jrVariants),
  ...communityTiles(communityVariants),
]

export const galleryFilters: { id: GalleryCategory; label: string }[] = [
  { id: 'basketball', label: 'Basketball' },
  { id: 'volleyball', label: 'Volleyball' },
  { id: 'jrdleag', label: 'Jr. DLEAG' },
  { id: 'community', label: 'Community' },
]
