import React from 'react';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { AppStackParamList } from '@navigation/navigationTypes';
import BottomTabNavigator from './bottomTabNavigator';
import {
  NewJobRequestScreen,
  OrderAcceptedScreen,
  ArrivedAtStoreScreen,
  ConfirmPickupScreen,
  OrderPickedUpScreen,
  LiveTrackingScreen,
  ArrivedAtCustomerScreen,
  DeliverOrderScreen,
  DeliveryCompletedScreen,
  DocumentsScreen,
} from '@features/screens';
import { RouteNames } from '@utils/constants';

const Stack = createNativeStackNavigator<AppStackParamList>();

const AppStack: React.FC = () => {
  return (
  <Stack.Navigator screenOptions={{ headerShown: false }}>
    <Stack.Screen name={RouteNames.BottomTabs} component={BottomTabNavigator} />
    <Stack.Screen name={RouteNames.NewJobRequest} component={NewJobRequestScreen} />
    <Stack.Screen name={RouteNames.OrderAccepted} component={OrderAcceptedScreen} />
    <Stack.Screen name={RouteNames.ArrivedAtStore} component={ArrivedAtStoreScreen} />
    <Stack.Screen name={RouteNames.ConfirmPickup} component={ConfirmPickupScreen} />
    <Stack.Screen name={RouteNames.OrderPickedUp} component={OrderPickedUpScreen} />
    <Stack.Screen name={RouteNames.LiveTracking} component={LiveTrackingScreen} />
    <Stack.Screen name={RouteNames.ArrivedAtCustomer} component={ArrivedAtCustomerScreen} />
    <Stack.Screen name={RouteNames.DeliverOrder} component={DeliverOrderScreen} />
    <Stack.Screen name={RouteNames.DeliveryCompleted} component={DeliveryCompletedScreen} />
    <Stack.Screen name={RouteNames.Documents} component={DocumentsScreen} />
  </Stack.Navigator>
  );
};

export default AppStack;
