import 'package:comwell_key_app/hotel_information/models/facilities.dart';
import 'package:comwell_key_app/hotel_information/models/room_type.dart';
import 'package:comwell_key_app/hotel_information/models/addon_upgrade.dart';
import 'package:comwell_key_app/utils/json.dart';
import 'package:json_annotation/json_annotation.dart';

part '../../.generated/hotel_information/models/hotel.g.dart';

@JsonSerializable()
class Hotel {
  final String updateDate;
  final String hotelCode;
  final String hotelName;
  final String address;
  final String city;
  final String country;
  final String image;
  final bool digitalCheckIn;
  final List<Facility> facilities;
  final List<RoomType> roomTypes;
  final List<AddonUpgrade> addonUpgrades;

  Hotel({
    required this.updateDate,
    required this.hotelCode,
    required this.hotelName,
    required this.address,
    required this.city,
    required this.country,
    required this.image,
    required this.digitalCheckIn,
    required this.facilities,
    required this.roomTypes,
    required this.addonUpgrades,
  });

  factory Hotel.fromJson(Json json) => _$HotelFromJson(json);

  Json toJson() => _$HotelToJson(this);

  @override
  String toString() {
    return "Hotel(hotelCode: $hotelCode, hotelName: $hotelName, address: $address, city: $city, country: $country, image: $image, digitalCheckIn: $digitalCheckIn, facilities: $facilities)";
  }

}