// GENERATED CODE - DO NOT MODIFY BY HAND

part of '../../../services/models/booking_dto.dart';

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

BookingDTO _$BookingDTOFromJson(Map json) => BookingDTO(
  roomNumber: json['roomNumber'] as String?,
  hotelCode: json['hotelCode'] as String,
  firstName: json['firstName'] as String,
  lastName: json['lastName'] as String,
  bookerFirstName: json['bookerFirstName'] as String? ?? '',
  bookerLastName: json['bookerLastName'] as String? ?? '',
  guests:
      (json['guests'] as List<dynamic>?)
          ?.map((e) => GuestDTO.fromJson(Map<String, dynamic>.from(e as Map)))
          .toList() ??
      const [],
  confirmationNumber: json['confirmationNumber'] as String,
  dayIn: json['dayIn'] as String,
  dayOut: json['dayOut'] as String,
  cancelTime: json['cancelTime'] as String?,
  status: json['status'] as String,
  isCancelled: json['isCancelled'] as bool?,
  bookTime: json['bookTime'] as String?,
  roomType: json['roomType'] as String?,
  adults: (json['adults'] as num).toInt(),
  children: (json['children'] as num).toInt(),
  balance: json['balance'] as num?,
  isPrimaryGuest: json['isPrimaryGuest'] as bool,
  addOnItems: (json['addOnItems'] as List<dynamic>?)
      ?.map(
        (e) => BookingAddonItem.fromJson(Map<String, dynamic>.from(e as Map)),
      )
      .toList(),
  maskedCardNumber: json['maskedCardNumber'] as String?,
);

Map<String, dynamic> _$BookingDTOToJson(BookingDTO instance) =>
    <String, dynamic>{
      'roomNumber': instance.roomNumber,
      'hotelCode': instance.hotelCode,
      'firstName': instance.firstName,
      'lastName': instance.lastName,
      'bookerFirstName': instance.bookerFirstName,
      'bookerLastName': instance.bookerLastName,
      'guests': instance.guests.map((e) => e.toJson()).toList(),
      'confirmationNumber': instance.confirmationNumber,
      'dayIn': instance.dayIn,
      'dayOut': instance.dayOut,
      'cancelTime': instance.cancelTime,
      'status': instance.status,
      'isCancelled': instance.isCancelled,
      'bookTime': instance.bookTime,
      'roomType': instance.roomType,
      'adults': instance.adults,
      'children': instance.children,
      'balance': instance.balance,
      'isPrimaryGuest': instance.isPrimaryGuest,
      'maskedCardNumber': instance.maskedCardNumber,
      'addOnItems': instance.addOnItems?.map((e) => e.toJson()).toList(),
    };

GuestDTO _$GuestDTOFromJson(Map json) => GuestDTO(
  id: (json['id'] as num).toInt(),
  firstName: json['firstName'] as String,
  lastName: json['lastName'] as String,
);

Map<String, dynamic> _$GuestDTOToJson(GuestDTO instance) => <String, dynamic>{
  'id': instance.id,
  'firstName': instance.firstName,
  'lastName': instance.lastName,
};

BookingAddonItem _$BookingAddonItemFromJson(Map json) => BookingAddonItem(
  json['code'] as String,
  json['description'] as String,
  (json['quantity'] as num).toInt(),
  (json['price'] as num).toInt(),
);

Map<String, dynamic> _$BookingAddonItemToJson(BookingAddonItem instance) =>
    <String, dynamic>{
      'code': instance.code,
      'description': instance.description,
      'quantity': instance.quantity,
      'price': instance.price,
    };