export interface User {
  id: number
  username: string
  email: string
  is_admin: boolean
  created_at: string
}

export interface TokenResponse {
  access_token: string
  token_type: string
  user: User
}

export interface Invitation {
  id: number
  token: string
  created_by: number
  used_by: number | null
  created_at: string
  used_at: string | null
}

export interface Drink {
  id: number
  owner_id: number
  name: string
  category: 'wine' | 'beer' | 'spirit'
  image_path: string | null
  rating: number | null
  notes: string | null
  created_at: string
  updated_at: string

  grape_variety: string | null
  vintage: number | null
  region: string | null
  producer: string | null
  wine_color: 'red' | 'white' | 'rose' | 'sparkling' | null

  brewery: string | null
  beer_style: string | null
  ibu: number | null
  abv: number | null

  spirit_type: string | null
  age_years: number | null
  distillery: string | null
  country: string | null
}

export type DrinkCreate = Omit<Drink, 'id' | 'created_at' | 'updated_at' | 'image_path' | 'owner_id'>

export interface AdminStats {
  users: number
  drinks: number
  invitations: number
  invitations_used: number
}
