import 'package:concierge/presentation/screens/hotel_overview_page/bloc/hotel_overview_page_cubit.dart';
import 'package:flutter/material.dart';
import 'package:concierge/presentation/navigation/app_routes.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
import 'package:concierge/presentation/navigation/transitions/slide_up_transition.dart';
import 'package:concierge/presentation/screens/hotel_overview_page/hotel_overview_page_screen.dart';

part '../../../_generated/presentation/screens/hotel_overview_page/hotel_overview_page_route.g.dart';

@TypedGoRoute<HotelOverviewPageRoute>(path: AppRoutes.hotelOverviewPage)
class HotelOverviewPageRoute extends GoRouteData with $HotelOverviewPageRoute {
  final String hotelCode;
  final String roomNumber;

  HotelOverviewPageRoute({
    required this.hotelCode,
    required this.roomNumber,
  });

  @override
  Page<void> buildPage(BuildContext context, GoRouterState state) {
    return slideUpTransition(
      state: state,
      child: BlocProvider(
        create: (context) => HotelOverviewPageCubit(
          context.read(),
          context.read(),
          hotelCode: hotelCode,
        ),
        child: HotelOverviewPageScreen(),
      ),
    );
  }
}