export interface CartItemVariantOption {
  value: string;
  label: string;
}

export type CartItemVariantValue =
  | string
  | CartItemVariantOption
  | Array<string | CartItemVariantOption>;

export interface CartItemVariant {
  id: number;
  precio: string;
  stock_tecnico: number | null;
  values: Record<string, CartItemVariantValue>;
}

export interface CartItem {
  id: number;
  cantidad: number;
  precio_unitario: string;
  catalog_item_id: number;
  variant_id: number | null;
  nombre: string | null;
  imagen: string | null;
  variant: CartItemVariant | null;
  variants?: CartItemVariant[];
}

export interface Cart {
  id: number | null;
  tenant_codigo: string;
  status: string;
  items: CartItem[];
  subtotal: string;
}
