// GENERATED CODE - DO NOT MODIFY BY HAND

part of '../../../../data/remote/models/order.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

Order _$OrderFromJson(Map json) => Order(
  id: (json['id'] as num).toInt(),
  status: const OrderStatusConverter().fromJson(json['status'] as String),
  type: json['type'] as String,
  isArchived: json['is_archived'] as bool,
  archivedAt: json['archived_at'],
  cancelReason: json['cancel_reason'],
  totalPrice: (json['total_price'] as num).toInt(),
  deliveryMethod: json['delivery_method'] as String,
  requestedDeliveryTime: json['requested_delivery_time'] as String,
  estimatedDeliveryTime: json['estimated_delivery_time'] as String? ?? 'ASAP',
  pickupLocation: json['pickup_location'],
  areaId: (json['area_id'] as num).toInt(),
  locationId: (json['location_id'] as num?)?.toInt(),
  createdAt: DateTime.parse(json['created_at'] as String),
  updatedAt: DateTime.parse(json['updated_at'] as String),
  customerComment: json['customer_comment'],
  delivery: json['delivery'] as bool,
  deliveryPrice: (json['delivery_price'] as num).toInt(),
  deliveryMethodString: json['delivery_method_string'] as String,
  statusString: json['status_string'] as String,
  typeString: json['type_string'] as String,
  locationCode: json['location_code'] as String?,
  orderItems: (json['order_items'] as List<dynamic>)
      .map((e) => OrderItem.fromJson(Map<String, dynamic>.from(e as Map)))
      .toList(),
  payment: Payment.fromJson(Map<String, dynamic>.from(json['payment'] as Map)),
  customer: json['customer'] == null
      ? null
      : Customer.fromJson(Map<String, dynamic>.from(json['customer'] as Map)),
  lastUpdateFrom: json['last_update_from'],
  image: Image.fromJson(Map<String, dynamic>.from(json['image'] as Map)),
);

Map<String, dynamic> _$OrderToJson(Order instance) => <String, dynamic>{
  'id': instance.id,
  'status': const OrderStatusConverter().toJson(instance.status),
  'type': instance.type,
  'is_archived': instance.isArchived,
  'archived_at': instance.archivedAt,
  'cancel_reason': instance.cancelReason,
  'total_price': instance.totalPrice,
  'delivery_method': instance.deliveryMethod,
  'requested_delivery_time': instance.requestedDeliveryTime,
  'estimated_delivery_time': instance.estimatedDeliveryTime,
  'pickup_location': instance.pickupLocation,
  'area_id': instance.areaId,
  'location_id': instance.locationId,
  'created_at': instance.createdAt.toIso8601String(),
  'updated_at': instance.updatedAt.toIso8601String(),
  'customer_comment': instance.customerComment,
  'delivery': instance.delivery,
  'delivery_price': instance.deliveryPrice,
  'delivery_method_string': instance.deliveryMethodString,
  'status_string': instance.statusString,
  'type_string': instance.typeString,
  'location_code': instance.locationCode,
  'order_items': instance.orderItems.map((e) => e.toJson()).toList(),
  'payment': instance.payment.toJson(),
  'customer': instance.customer?.toJson(),
  'last_update_from': instance.lastUpdateFrom,
  'image': instance.image.toJson(),
};

Customer _$CustomerFromJson(Map json) => Customer(
  id: json['id'] as String,
  firstName: json['first_name'] as String,
  lastName: json['last_name'],
  email: json['email'],
  isComwellClub: json['is_comwell_club'] as bool,
  phone: json['phone'] as String,
  phonePrefix: json['phone_prefix'] as String,
);

Map<String, dynamic> _$CustomerToJson(Customer instance) => <String, dynamic>{
  'id': instance.id,
  'first_name': instance.firstName,
  'last_name': instance.lastName,
  'email': instance.email,
  'is_comwell_club': instance.isComwellClub,
  'phone': instance.phone,
  'phone_prefix': instance.phonePrefix,
};

Image _$ImageFromJson(Map json) => Image(
  url: json['url'] as String,
  preload: json['preload'] as String,
  thumbnail: json['thumbnail'] as String,
  productHero: json['product_hero'] as String,
  alt: json['alt'] as String,
);

Map<String, dynamic> _$ImageToJson(Image instance) => <String, dynamic>{
  'url': instance.url,
  'preload': instance.preload,
  'thumbnail': instance.thumbnail,
  'product_hero': instance.productHero,
  'alt': instance.alt,
};

OrderItem _$OrderItemFromJson(Map json) => OrderItem(
  id: (json['id'] as num).toInt(),
  price: (json['price'] as num).toDouble(),
  quantity: (json['quantity'] as num).toInt(),
  itemType: json['item_type'] as String,
  alternativeName: json['alternative_name'] as String,
  productId: (json['product_id'] as num?)?.toInt(),
  orderId: (json['order_id'] as num).toInt(),
  options: json['options'] as List<dynamic>?,
  itemTypeString: json['item_type_string'] as String,
  vouchers: json['vouchers'] as List<dynamic>,
  totalPrice: (json['total_price'] as num).toInt(),
  totalPriceBeforeSavings: (json['total_price_before_savings'] as num).toInt(),
);

Map<String, dynamic> _$OrderItemToJson(OrderItem instance) => <String, dynamic>{
  'id': instance.id,
  'price': instance.price,
  'quantity': instance.quantity,
  'item_type': instance.itemType,
  'alternative_name': instance.alternativeName,
  'product_id': instance.productId,
  'order_id': instance.orderId,
  'options': instance.options,
  'item_type_string': instance.itemTypeString,
  'vouchers': instance.vouchers,
  'total_price': instance.totalPrice,
  'total_price_before_savings': instance.totalPriceBeforeSavings,
};

Payment _$PaymentFromJson(Map json) => Payment(
  id: (json['id'] as num).toInt(),
  paymentType: json['payment_type'] as String,
  room: json['room'],
  meeting: json['meeting'],
  fullName: json['full_name'],
  paymentTypeString: json['payment_type_string'] as String,
);

Map<String, dynamic> _$PaymentToJson(Payment instance) => <String, dynamic>{
  'id': instance.id,
  'payment_type': instance.paymentType,
  'room': instance.room,
  'meeting': instance.meeting,
  'full_name': instance.fullName,
  'payment_type_string': instance.paymentTypeString,
};