package Ġcom . mat he ws . database _ module . dao Ċ Ċ import Ġandroidx . room . Dao Ċ import Ġandroidx . room . Delete Ċ import Ġandroidx . room . Insert Ċ import Ġandroidx . room . Query Ċ import Ġcom . mat he ws . database _ module . entities . Session Entity Ċ @ Dao Ċ interface ĠSession Dao Ġ{ ĊĊĠĠĠ Ġ@ Insert ĊĠĠĠ Ġfun Ġinsert ( session Entity Ġ: ĠSession Entity ) ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġsessions ") ĊĠĠĠ Ġfun ĠgetAll Sessions () Ġ: ĠList < Session Entity > ĊĊĠĠĠ Ġ@ Delete ĊĠĠĠ Ġfun Ġdelete Session ( session Entity Ġ: ĠSession Entity ) ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġsessions Ġwhere Ġid Ġ= Ġ: sessionId ") ĊĠĠĠ Ġfun Ġget Session ById ( sessionId Ġ: ĠLong ) Ġ: ĠSession Entity ĊĊĠĠĠ Ġ@ Query (" SELECT ĠDISTINCT Ġlevel ĠFROM Ġsessions ") ĊĠĠĠ Ġfun Ġget Distinct Levels () Ġ: ĠList < String > ĊĊĠĠĠ Ġ@ Query (" SELECT ĠCOUNT (*) ĠFROM Ġsessions ĠWHERE Ġlevel Ġ= Ġ: session Level ") ĊĠĠĠ Ġfun Ġget Count Of Each Level ( session Level Ġ: ĠString ) Ġ: ĠLong ĊĊĠĠĠ Ġ@ Query (" SELECT ĠAV G ( time ) ĠFROM Ġsessions ĠWHERE Ġlevel Ġ= Ġ: session Level ") ĊĠĠĠ Ġfun Ġget Average Time ForEach Level ( session Level : ĠString ) Ġ: ĠDouble ĊĊĠĠĠ Ġ@ Query (" SELECT ĠDISTINCT Ġsite ĠFROM Ġsessions ") ĊĠĠĠ Ġfun Ġget Distinct Sites () Ġ: ĠList < String > ĊĊĠĠĠ Ġ@ Query (" SELECT ĠCOUNT (*) ĠFROM Ġsessions ĠWHERE Ġsite Ġ= Ġ: session Site ") ĊĠĠĠ Ġfun Ġget Count Of Each Site ( session Site Ġ: ĠString ) Ġ: ĠLong ĊĊĠĠĠ Ġ@ Query (" SELECT ĠCOUNT ( DIST INCT ( date )) ĠFROM Ġsessions ") ĊĠĠĠ Ġfun ĠgetTotal NumberOf Dates () Ġ: ĠLong ĊĊĠĠĠ Ġ@ Query (" SELECT ĠCOUNT (*) ĠFROM Ġsessions ") ĊĠĠĠ Ġfun ĠgetTotal NumberOf Sessions () Ġ: ĠLong Ċ }