package Ġcom . ht ue ko . resume app . data . local . dao Ċ Ċ import Ġandroidx . room . Dao Ċ import Ġandroidx . room . Insert Ċ import Ġandroidx . room . On Conflict Strategy Ċ import Ġandroidx . room . Query Ċ import Ġandroidx . room . Transaction Ċ import Ġcom . ht ue ko . resume app . data . local . entity . Education Entity Ċ import Ġcom . ht ue ko . resume app . data . local . entity . Project Entity Ċ import Ġcom . ht ue ko . resume app . data . local . entity . Resume Entity Ċ import Ġcom . ht ue ko . resume app . data . local . entity . Skill Entity Ċ import Ġcom . ht ue ko . resume app . data . local . entity . Work Entity Ċ import Ġcom . ht ue ko . resume app . data . local . entity . relationship . Resume With Ed uc ations Ċ import Ġcom . ht ue ko . resume app . data . local . entity . relationship . Resume With Projects Ċ import Ġcom . ht ue ko . resume app . data . local . entity . relationship . Resume With Skills Ċ import Ġcom . ht ue ko . resume app . data . local . entity . relationship . Resume With Works Ċ import Ġkotlinx . coroutines . flow . Flow Ċ Ċ /** Ċ Ġ* ĠData Ġaccess Ġobject Ġto Ġperform Ġoperation Ġrelated Ġto Ġresume Ġapp . Ċ Ġ*/ Ċ @ Suppress (" Too Many Functions ") Ċ @ Dao Ċ abstract Ġclass ĠResume Dao Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġget Ġthe Ġlist Ġof Ġ[ Resume Entity ] Ġfrom Ġdatabase Ġas Ġlatest Ġcreated Ġresume Ġas Ġfirst . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġ[ Resume Entity ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġtable _ resume ĠORDER ĠBY Ġresume Id ĠDESC ") ĊĠĠĠ Ġabstract Ġfun Ġget Resume s (): ĠFlow < List < Resume Entity >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġget Ġthe Ġ[ Resume Entity ] Ġor Ġnull Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ* Ġ@ return Ġan Ġinstance Ġof Ġ[ Resume Entity ] Ġor Ġnull ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġtable _ resume Ġwhere Ġresume Id Ġ= Ġ: resume Id ") ĊĠĠĠ Ġabstract Ġfun Ġget Resume ById ( resume Id : ĠInt ): ĠResume Entity ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġget Ġthe Ġlist Ġof Ġ[ Resume With Ed uc ations ] Ġfrom Ġdatabase Ġas Ġlatest Ġcreated Ġresume Ġas Ġfirst . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġ[ Resume With Ed uc ations ] Ġinstances . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Transaction ĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġtable _ resume ĠWHERE Ġresume Id Ġ= Ġ: resume Id ĠORDER ĠBY Ġresume Id ĠDESC ") ĊĠĠĠ Ġabstract Ġfun Ġget Resume With Ed uc ations ( resume Id : ĠInt ): ĠList < Resume With Ed uc ations > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġget Ġthe Ġlist Ġof Ġ[ Resume With Projects ] Ġfrom Ġdatabase Ġas Ġlatest Ġcreated Ġresume Ġas Ġfirst . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġ[ Resume With Projects ] Ġinstances . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Transaction ĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġtable _ resume ĠWHERE Ġresume Id Ġ= Ġ: resume Id ĠORDER ĠBY Ġresume Id ĠDESC ") ĊĠĠĠ Ġabstract Ġfun Ġget Resume With Projects ( resume Id : ĠInt ): ĠList < Resume With Projects > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġget Ġthe Ġlist Ġof Ġ[ Resume With Skills ] Ġfrom Ġdatabase Ġas Ġlatest Ġcreated Ġresume Ġas Ġfirst . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġ[ Resume With Skills ] Ġinstances . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Transaction ĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġtable _ resume ĠWHERE Ġresume Id Ġ= Ġ: resume Id ĠORDER ĠBY Ġresume Id ĠDESC ") ĊĠĠĠ Ġabstract Ġfun Ġget Resume With Skills ( resume Id : ĠInt ): ĠList < Resume With Skills > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġget Ġthe Ġlist Ġof Ġ[ Resume With Works ] Ġfrom Ġdatabase Ġas Ġlatest Ġcreated Ġresume Ġas Ġfirst . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġ[ Resume With Works ] Ġinstances . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Transaction ĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġtable _ resume ĠWHERE Ġresume Id Ġ= Ġ: resume Id ĠORDER ĠBY Ġresume Id ĠDESC ") ĊĠĠĠ Ġabstract Ġfun Ġget Resume With Works ( resume Id : ĠInt ): ĠList < Resume With Works > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġinsert Ġor Ġupdate Ġthe Ġ[ Resume Entity ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume ] Ġan Ġinstance Ġof Ġ[ Resume Entity ] ĊĠĠĠĠ Ġ* Ġ@ return Ġid Ġof Ġthe Ġlatest Ġadded Ġ[ Resume Entity ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / reference / java / sql / Row Id ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / training / data - storage / room / accessing - data ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// www . sqlite . org / row id table . html ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġabstract Ġsuspend Ġfun Ġinsert OrUpdate Resume ( resume : ĠResume Entity ): ĠLong ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġinsert Ġor Ġupdate Ġthe Ġ[ Education Entity ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ ed uc ations ] Ġlist Ġof Ġ[ Education Entity ] ĊĠĠĠĠ Ġ* Ġ@ return Ġid Ġof Ġthe Ġlatest Ġadded Ġ[ Education Entity ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / reference / java / sql / Row Id ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / training / data - storage / room / accessing - data ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// www . sqlite . org / row id table . html ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġabstract Ġsuspend Ġfun Ġinsert OrUpdate Ed uc ations ( ed uc ations : ĠList < Education Entity >): ĠList < Long > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġinsert Ġor Ġupdate Ġthe Ġ[ Project Entity ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ projects ] Ġlist Ġof Ġ[ Project Entity ] ĊĠĠĠĠ Ġ* Ġ@ return Ġid Ġof Ġthe Ġlatest Ġadded Ġ[ Project Entity ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / reference / java / sql / Row Id ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / training / data - storage / room / accessing - data ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// www . sqlite . org / row id table . html ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġabstract Ġsuspend Ġfun Ġinsert OrUpdate Projects ( projects : ĠList < Project Entity >): ĠList < Long > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġinsert Ġor Ġupdate Ġthe Ġ[ Skill Entity ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ skills ] Ġlist Ġof Ġ[ Skill Entity ] ĊĠĠĠĠ Ġ* Ġ@ return Ġid Ġof Ġthe Ġlatest Ġadded Ġ[ Skill Entity ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / reference / java / sql / Row Id ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / training / data - storage / room / accessing - data ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// www . sqlite . org / row id table . html ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġabstract Ġsuspend Ġfun Ġinsert OrUpdate Skills ( skills : ĠList < Skill Entity >): ĠList < Long > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġinsert Ġor Ġupdate Ġthe Ġ[ Work Entity ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ works ] Ġlist Ġof Ġ[ Work Entity ] ĊĠĠĠĠ Ġ* Ġ@ return Ġid Ġof Ġthe Ġlatest Ġadded Ġ[ Work Entity ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / reference / java / sql / Row Id ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// developer . android . com / training / data - storage / room / accessing - data ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// www . sqlite . org / row id table . html ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġabstract Ġsuspend Ġfun Ġinsert OrUpdate Works ( works : ĠList < Work Entity >): ĠList < Long > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġresume Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ resume ĠWHERE Ġresume Id Ġ= Ġ: resume Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Resume ById ( resume Id : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġeduc ations Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ education ĠWHERE ĠparentId Ġ= Ġ: resume Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Ed uc ations By Parent Id ( resume Id : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġprojects Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ project ĠWHERE ĠparentId Ġ= Ġ: resume Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Projects By Parent Id ( resume Id : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġskills Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ skill ĠWHERE ĠparentId Ġ= Ġ: resume Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Skills By Parent Id ( resume Id : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġworks Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ resume Id ] Ġid Ġof Ġthe Ġresume . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ work ĠWHERE ĠparentId Ġ= Ġ: resume Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Work sBy Parent Id ( resume Id : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġeduc ations Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ education Id ] Ġid Ġof Ġthe Ġeducation . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ education ĠWHERE Ġeducation Id Ġ= Ġ: education Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Education ById ( education Id : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġproject Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ projectId ] Ġid Ġof Ġthe Ġproject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ project ĠWHERE ĠprojectId Ġ= Ġ: projectId ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Project ById ( projectId : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġproject Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ skill Id ] Ġid Ġof Ġthe Ġskill . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ skill ĠWHERE Ġskill Id Ġ= Ġ: skill Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Skill ById ( skill Id : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġdelete Ġproject Ġfrom Ġdatabase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ work Id ] Ġid Ġof Ġthe Ġwork . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġtable _ work ĠWHERE Ġwork Id Ġ= Ġ: work Id ") ĊĠĠĠ Ġabstract Ġfun Ġdelete Work ById ( work Id : ĠInt ) ĊĊĠĠĠ Ġ// Ġdelete Ġcascade Ġwalk Ġaround Ġbecause Ġabstract Ġclass Ġusage . ĊĠĠĠ Ġ// Ġhttps :// stackoverflow . com / questions / 7 0 1 3 4 3 0 7 / cascade - delete - in - android - room - database - kotlin ĊĠĠĠ Ġ@ Transaction ĊĠĠĠ Ġ@ Query ("") ĊĠĠĠ Ġfun Ġdelete Resume With Cascade ById ( resume Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete Ed uc ations By Parent Id ( resume Id ) ĊĠĠĠĠĠĠĠ Ġdelete Projects By Parent Id ( resume Id ) ĊĠĠĠĠĠĠĠ Ġdelete Skills By Parent Id ( resume Id ) ĊĠĠĠĠĠĠĠ Ġdelete Work sBy Parent Id ( resume Id ) ĊĠĠĠĠĠĠĠ Ġdelete Resume ById ( resume Id ) ĊĠĠĠ Ġ} Ċ } Ċ