/**
 * Tarifas Transporte Module - MAI-002
 * Tarifas por lane, recargos, contratos
 */

// Export entities
export * from './entities';

// Export services with explicit naming
export {
  TarifasService,
  TarifaSearchParams,
  CreateTarifaDto,
  UpdateTarifaDto,
  CotizarParams,
  CotizacionResult,
  ServiceContext,
  FindTarifaByLaneParams,
  CalcularCostoEnvioParams,
  RecargoAplicado,
  CostoEnvioResult,
} from './services/tarifas.service';

export {
  LanesService,
  LaneSearchParams,
  CreateLaneDto as CreateLaneDtoInterface,
  UpdateLaneDto as UpdateLaneDtoInterface,
} from './services/lanes.service';

export {
  RecargosService,
  RecargoSearchParams,
  CreateRecargoDto as CreateRecargoDtoInterface,
  UpdateRecargoDto as UpdateRecargoDtoInterface,
  CreateFuelSurchargeDto as CreateFuelSurchargeDtoInterface,
  UpdateFuelSurchargeDto as UpdateFuelSurchargeDtoInterface,
} from './services/recargos.service';

// Export controllers
export * from './controllers';

// Export DTO classes (with class-validator decorators)
export {
  CreateTarifaDto as CreateTarifaDtoClass,
  UpdateTarifaDto as UpdateTarifaDtoClass,
  ClonarTarifaDto,
} from './dto/tarifa.dto';

export {
  CreateLaneDto as CreateLaneDtoClass,
  UpdateLaneDto as UpdateLaneDtoClass,
} from './dto/lane.dto';

export {
  CreateRecargoDto as CreateRecargoDtoClass,
  UpdateRecargoDto as UpdateRecargoDtoClass,
  CreateFuelSurchargeDto as CreateFuelSurchargeDtoClass,
  UpdateFuelSurchargeDto as UpdateFuelSurchargeDtoClass,
} from './dto/recargo.dto';

export {
  FindTarifaByLaneDto,
  CotizarTarifaDto,
  CalcularCostoEnvioDto,
  CalcularRecargosDto,
} from './dto/cotizacion.dto';
