package Ġat . sun il son . vehicle Details . domain Ċ Ċ import Ġat . sun il son . core . use cases . Flow UseCase Ċ import Ġat . sun il son . k tx . collections . list Builder Ċ import Ġat . sun il son . vehicle Details . data . Vehicle Details Dao Ċ import Ġat . sun il son . vehicle Details . domain . entities . Vehicle Details Entry Ċ import Ġat . sun il son . vehicle core . data . Vehicle Dao Ċ import Ġat . sun il son . vehicle core . data . to Entity Ċ import Ġkotlinx . coroutines . flow . flatMap Latest Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġjavax . inject . Inject Ċ Ċ internal Ġclass ĠGet Vehicle Details Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġvehicle Dao : ĠVehicle Dao , ĊĠĠĠ Ġprivate Ġval Ġvehicle Details Dao : ĠVehicle Details Dao Ċ ) Ġ: ĠFlow UseCase < List < Vehicle Details Entry >, ĠString >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrun ( params : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġvehicle Dao . get Vehicle ( params ). flatMap Latest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvehicle Ġ= Ġit ?. to Entity () Ġ?: Ġerror (" Vehicle Ġwas Ġnull !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Entry Ġ= ĠVehicle Details Entry . Image ( vehicle . imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvehicle Details Dao . getAll Vehicle Details ( params ). map Ġ{ Ġdatabase Details Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentities Ġ= Ġdatabase Details ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . vehicle Details ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠlistOf () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinformation Entries Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentities . filter Is Instance < Vehicle Details Entry . Information >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġequipment Entries Ġ= Ġentities . filter Is Instance < Vehicle Details Entry . Equipment >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Builder < Vehicle Details Entry > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( image Entry ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( information Entries ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequipment Entries ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit . group Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . value . sorted By Ġ{ Ġit . label Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ