import { Variant } from "pages/orders/types";
import { Extra3 } from "utils/types/appTypes";

export interface OrderDetails {
  orderItems: OrderItem[];
  order: Order;
  status: Status[];
  laststatus: Status2[];
  restaurant: string;
  restaurantAR: string;
  restaurantID: number;
  global_currency: string;
  local_currency: string;
  address: string;
  phone: string;
  restaurant_iimage: string;
  itemsImagePrefixOld: string;
  itemsImagePrefix: string;
}

export interface OrderItem {
  id: number;
  is_loyalty_used: number;
  no_of_stamps_give: number;
  isHasLoyalty: boolean;
  is_vat_disabled: number;
  name: string;
  price: number;
  qty: number;
  variant_price: string;
  image: string;
  imageName: string;
  variantName: string;
  variantLocalName?: string;
  extras: any[];
  itemline: string;
  itemlineAR: string;
  itemlineAREN: string;
  extrasgroups: any[];
  itemComment: string;
  variant?: Variant;
  itemExtras: any[];
  AvaiilableVariantExtras: Extra3[];
  isPrinted: number;
  category_id: number;
  pos_order_id: string;
  updated_at: string;
  created_at: string;
  old_qty: number;
  new_qty: number;
  last_printed_qty: number;
  deleted_qty: number;
  discount_value: any;
  discount_type_id: any;
  original_price: number;
  pricing_method: string;
  is_already_paid: number;
  hash_item: string;
}

export interface Order {
  id: number;
  pos_order_id: string;
  created_at: string;
  updated_at: string;
  table: string;
  phone: string;
  user_name: string;
  restaurant_name: string;
  lat: string;
  lng: string;
  restaurant_icon: string;
  location: any;
  status: string;
  status_id: number;
  delivery_method: number;
  orderItems: OrderItem2[];
  discount: string;
  vat: number;
  total_price: number;
  comment: string;
  pickup_comments: any;
  car_plate: string;
  pickup_time: any;
  pickup_date: any;
  delivery_pickup_interval: any;
  office_no: any;
  room_no: any;
  time_to_prepare: any;
  last_status_id: number;
  currency: string;
  gift_id: any;
  is_loyalty_used: number;
  payment_status: string;
  created_by: string;
  split_order_group_id: any;
  split_sequence: any;
  is_split_order: number;
  split_at: any;
  split_by_user_id: any;
}

export interface OrderItem2 {
  id: number;
  is_loyalty_used: number;
  no_of_stamps_give: number;
  isHasLoyalty: boolean;
  is_vat_disabled: number;
  name: string;
  price: number;
  qty: number;
  variant_price: string;
  image: string;
  imageName: string;
  variantName: string;
  variantLocalName?: string;
  extras: any[];
  itemline: string;
  itemlineAR: string;
  itemlineAREN: string;
  extrasgroups: any[];
  itemComment: string;
  variant?: Variant2;
  itemExtras: any[];
  AvaiilableVariantExtras: AvaiilableVariantExtra2[];
  isPrinted: number;
  category_id: number;
  pos_order_id: string;
  updated_at: string;
  created_at: string;
  old_qty: number;
  new_qty: number;
  last_printed_qty: number;
  deleted_qty: number;
  discount_value: any;
  discount_type_id: any;
  original_price: number;
  pricing_method: string;
  is_already_paid: number;
  hash_item: string;
}

export interface Status {
  id: number;
  name: string;
  alias: string;
  pivot: Pivot5;
}

export interface Pivot5 {
  order_id: number;
  status_id: number;
  user_id: number;
  created_at: string;
  comment: string;
}

export interface Status2 {
  id: number;
  name: string;
  alias: string;
  pivot: Pivot6;
}

export interface Pivot6 {
  order_id: number;
  status_id: number;
  user_id: number;
  created_at: string;
  comment: string;
}

export interface Variant2 {
  id: number;
  price: number;
  options: string;
  local_name: any;
  optionsArray: OptionsArray2[];
  OptionsList: string;
  extras: Extra2[];
}

export interface OptionsArray2 {
  id: number;
  name: string;
}

export interface Extra2 {
  id: number;
  item_id: number;
  price: number;
  name: string;
  nameAR: string;
  created_at: string;
  updated_at: string;
  deleted_at: any;
  extra_for_all_variants: number;
  is_custome: number;
  is_available: number;
  modifier_id: any;
  pivot: Pivot3;
}

export interface Pivot3 {
  variant_id: number;
  extra_id: number;
}

export interface AvaiilableVariantExtra2 {
  id: number;
  item_id: number;
  price: number;
  name: string;
  nameAR: string;
  created_at: string;
  updated_at: string;
  deleted_at: any;
  extra_for_all_variants: number;
  is_custome: number;
  is_available: number;
  modifier_id: any;
  pivot: Pivot4;
}

export interface Pivot4 {
  variant_id: number;
  extra_id: number;
}

export enum DeliveryMethod {
  DineIn = 3,
  Delivery = 1,
  Pickup = 2,
  Gift = 10,
  ScheduledOrder = 9,
  ToRoom = 5,
  ToOffice = 4,
}

export enum OrderType {
  DineIn = "dine-in",
  Delivery = "delivery",
  Pickup = "pickup",
  Gift = "gift",
  ScheduledOrder = "scheduled_order",
  ToRoom = "room",
  ToOffice = "office",
  Booking = "booking",
}
