import { buildPath } from '../routing/RouteConfig';

/**
 * RoutePathBuilder builds paths from route IDs with optional parameters and locale
 * 
 * Usage:
 * ```typescript
 * const builder = new RoutePathBuilder();
 * 
 * // Simple route
 * builder.build('auth.login'); // → '/auth/login'
 * 
 * // With parameters
 * builder.build('league.detail', { id: '123' }); // → '/leagues/123'
 * 
 * // With locale
 * builder.build('auth.login', {}, { locale: 'de' }); // → '/de/auth/login'
 * 
 * // With parameters and locale
 * builder.build('league.detail', { id: '123' }, { locale: 'de' }); // → '/de/leagues/123'
 * ```
 */
export class RoutePathBuilder {
  /**
   * Build a path from route ID with optional parameters and locale
   * @param routeId - Route ID in format 'category.routeName'
   * @param params - Optional parameters for parameterized routes
   * @param options - Optional options including locale
   * @returns Complete path with optional locale prefix
   */
  build(
    routeId: string,
    params?: Record<string, string>,
    options?: { locale?: string | null }
  ): string {
    const path = buildPath(routeId, params);
    
    // Add locale prefix if provided
    if (options?.locale) {
      return `/${options.locale}${path}`;
    }
    
    return path;
  }
}