export interface PhotoTagSummary {
  id: string
  name: string
  color: string | null
}

export interface Photo {
  id: string
  filepath: string
  filename: string
  media_type: string
  width: number | null
  height: number | null
  taken_at: string | null
  taken_at_source?: string | null
  rating: number
  color_label?: string | null
  is_discarded: boolean
  is_duplicate: boolean
  needs_review?: boolean
  has_date_warning?: boolean
  file_hash: string
  folder_id: string | null
  added_at: string | null
  thumb_small?: string
  thumb_medium?: string
  thumb_large?: string
  latitude?: number | null
  longitude?: number | null
  tags?: PhotoTagSummary[]
  /** Present when viewing shared content — the username of the photo owner. */
  owner_username?: string | null
}

/** Minimal payload returned by GET /api/v1/photos/map — only what the
 *  Map view needs to render and open a marker's preview. */
export interface PhotoMapPoint {
  id: string
  latitude: number
  longitude: number
  taken_at: string | null
}
