// src/app/models/order.interface.ts

/**
 * Definiert die Struktur der gesamten Bestellung.
 * Alle Felder sind optional ('?'), da die Bestellung schrittweise befüllt wird.
 */
export interface IOrder {
  product?: IProduct;
  config?: IProductConfig;
  userData?: IUserData;
  paymentMethod?: IPaymentMethod;
  shippingNumber?: string;
  totalPrice?: number;
}

export interface IProduct {
  id: number;
  name: string;
  basePrice: number;
  bestChoice: boolean;
  img?: string;
}

export interface IProductConfig {
  extraBacon: boolean;
  saladAmount: 'less' | 'normal' | 'much';
  priceDelta: number; // Preisunterschied durch Konfiguration
}

export interface IUserData {
  firstName: string;
  lastName: string;
  email: string;
  phone: string;
  city: string;
  address: string;
  zipCode: string;
}

export interface IPaymentMethod {
  type: 'twint' | 'visa' | 'mastercard';
}