/*
 * File: navigationTypes.ts
 * Description: Navigation type definitions for AI Prediction module
 * Design & Developed by Tech4Biz Solutions
 * Copyright (c) Spurrin Innovations. All rights reserved.
 */

import type { StackNavigationProp } from '@react-navigation/stack';
import type { RouteProp } from '@react-navigation/native';

// ============================================================================
// AI PREDICTION STACK PARAM LIST
// ============================================================================

/**
 * AI Prediction Stack Param List
 * 
 * Purpose: Define navigation parameters for AI prediction screens
 * 
 * Screens:
 * - AIPredictionList: Main list of AI predictions
 * - AIPredictionDetails: Detailed view of a specific prediction with suggestion form
 * - AIPredictionFilters: Advanced filtering options
 * - AIPredictionStats: Detailed statistics view
 */
export type AIPredictionStackParamList = {
  AIPredictionList: undefined;
  AIPredictionDetails: { caseId: string };
  AIPredictionFilters: undefined;
  AIPredictionStats: { timeRange?: 'today' | 'week' | 'month' };
};

// ============================================================================
// NAVIGATION PROP TYPES
// ============================================================================

/**
 * AI Prediction List Navigation Prop
 * 
 * Purpose: Navigation prop type for AI prediction list screen
 */
export type AIPredictionListNavigationProp = StackNavigationProp<
  AIPredictionStackParamList,
  'AIPredictionList'
>;

/**
 * AI Prediction Details Navigation Prop
 * 
 * Purpose: Navigation prop type for AI prediction details screen
 */
export type AIPredictionDetailsNavigationProp = StackNavigationProp<
  AIPredictionStackParamList,
  'AIPredictionDetails'
>;

/**
 * AI Prediction Filters Navigation Prop
 * 
 * Purpose: Navigation prop type for AI prediction filters screen
 */
export type AIPredictionFiltersNavigationProp = StackNavigationProp<
  AIPredictionStackParamList,
  'AIPredictionFilters'
>;

/**
 * AI Prediction Stats Navigation Prop
 * 
 * Purpose: Navigation prop type for AI prediction statistics screen
 */
export type AIPredictionStatsNavigationProp = StackNavigationProp<
  AIPredictionStackParamList,
  'AIPredictionStats'
>;

// ============================================================================
// ROUTE PROP TYPES
// ============================================================================

/**
 * AI Prediction List Route Prop
 * 
 * Purpose: Route prop type for AI prediction list screen
 */
export type AIPredictionListRouteProp = RouteProp<
  AIPredictionStackParamList,
  'AIPredictionList'
>;

/**
 * AI Prediction Details Route Prop
 * 
 * Purpose: Route prop type for AI prediction details screen
 */
export type AIPredictionDetailsRouteProp = RouteProp<
  AIPredictionStackParamList,
  'AIPredictionDetails'
>;

/**
 * AI Prediction Filters Route Prop
 * 
 * Purpose: Route prop type for AI prediction filters screen
 */
export type AIPredictionFiltersRouteProp = RouteProp<
  AIPredictionStackParamList,
  'AIPredictionFilters'
>;

/**
 * AI Prediction Stats Route Prop
 * 
 * Purpose: Route prop type for AI prediction statistics screen
 */
export type AIPredictionStatsRouteProp = RouteProp<
  AIPredictionStackParamList,
  'AIPredictionStats'
>;

// ============================================================================
// COMBINED PROP TYPES
// ============================================================================

/**
 * AI Prediction List Screen Props
 * 
 * Purpose: Combined props for AI prediction list screen
 */
export interface AIPredictionListScreenProps {
  navigation: AIPredictionListNavigationProp;
  route: AIPredictionListRouteProp;
}

/**
 * AI Prediction Details Screen Props
 * 
 * Purpose: Combined props for AI prediction details screen
 */
export interface AIPredictionDetailsScreenProps {
  navigation: AIPredictionDetailsNavigationProp;
  route: AIPredictionDetailsRouteProp;
}

/**
 * AI Prediction Filters Screen Props
 * 
 * Purpose: Combined props for AI prediction filters screen
 */
export interface AIPredictionFiltersScreenProps {
  navigation: AIPredictionFiltersNavigationProp;
  route: AIPredictionFiltersRouteProp;
}

/**
 * AI Prediction Stats Screen Props
 * 
 * Purpose: Combined props for AI prediction statistics screen
 */
export interface AIPredictionStatsScreenProps {
  navigation: AIPredictionStatsNavigationProp;
  route: AIPredictionStatsRouteProp;
}

/*
 * End of File: navigationTypes.ts
 * Design & Developed by Tech4Biz Solutions
 * Copyright (c) Spurrin Innovations. All rights reserved.
 */
