package Ġat . sun il son . char gest at istics . domain Ċ Ċ import Ġat . sun il son . char gest at istics . domain . entities . Vehicle Charge Tracking Info Ċ import Ġat . sun il son . charge tracking . domain . Get Running Charge Track ers Ċ import Ġat . sun il son . core . use cases . Flow UseCase Ċ import Ġat . sun il son . vehicle core . domain . GetAll Veh icles Ċ import Ġkotlinx . coroutines . flow . flatMap Merge Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġjavax . inject . Inject Ċ Ċ internal Ġclass ĠGet Veh icles With Tracker Info Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval ĠgetAll Veh icles : ĠGetAll Veh icles , ĊĠĠĠ Ġprivate Ġval Ġget Running Charge Track ers : ĠGet Running Charge Track ers Ċ ) Ġ: ĠFlow UseCase < List < Vehicle Charge Tracking Info >, ĠUnit >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrun ( params : ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠ ĠgetAll Veh icles ( Unit ). flatMap Merge Ġ{ Ġvehicles Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Running Charge Track ers ( vehicles . map Ġ{ Ġit . vin Ġ}). map Ġ{ Ġcharge Track ers Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvehicles . map Ġ{ Ġvehicle Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVehicle Charge Tracking Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvehicle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharge Track ers . first OrNull Ġ{ Ġit . vin Ġ== Ġvehicle . vin Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ