export type ItemCategory = string;

export type ItemUnit =
  | 'Stück'
  | 'kg'
  | 'g'
  | 'L'
  | 'ml'
  | 'Packung'
  | 'Dose'
  | 'Flasche'
  | 'Beutel'
  | 'Tube'
  | 'Paar';

export interface HouseholdItem {
  id: string;
  name: string;
  description: string;
  category: ItemCategory;
  quantity: number;
  unit: ItemUnit | string;
  minStockThreshold: number;
  onShoppingList: boolean;
  photoUrl: string | null;
  storageLocation: string;
  shoppingLocation: string;
  price: number | null;
  expiryDate: Date | null;
  barcode: string | null;
  addedByDevice: string;
  updatedAt: Date;
  createdAt: Date;
}

export interface ShoppingListEntry {
  id: string;
  itemId: string | null;
  name: string;
  suggestedQuantity: number;
  unit: string;
  isChecked: boolean;
  checkedByDevice: string | null;
  autoAdded: boolean;
  createdAt: Date;
}

export interface HouseholdMember {
  deviceId: string;
  deviceName: string;
  fcmToken: string | null;
  notificationsEnabled: boolean;
  joinedAt: Date;
}

export interface Household {
  id: string;
  name: string;
  inviteToken: string;
  createdAt: Date;
}

export interface AiRecognitionResult {
  name: string;
  description: string;
  category: ItemCategory;
}

export interface BarcodeProduct {
  name: string;
  description: string;
  category: ItemCategory;
  barcode: string;
  imageUrl?: string;
}
