/* Ċ Ġ* ĠModule : Ġr 2 - l cp - kotlin Ċ Ġ* ĠDevelopers : ĠA fer d ita ĠM uri qi Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 . ĠRead ium ĠFoundation . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġa ĠBSD - style Ġlicense Ġwhich Ġis Ġdetailed Ġin Ġthe Ċ Ġ* ĠLICENSE Ġfile Ġpresent Ġin Ġthe Ġproject Ġrepository Ġwhere Ġthis Ġsource Ġcode Ġis Ġmaintained . Ċ Ġ*/ Ċ Ċ package Ġorg . read ium . r 2 . l cp . service Ċ Ċ import Ġorg . read ium . r 2 . l cp . license . model . License Document Ċ import Ġorg . read ium . r 2 . l cp . persistence . L cp Dao Ċ import Ġorg . read ium . r 2 . l cp . persistence . License Ċ Ċ internal Ġclass ĠLicense s Repository ( private Ġval Ġl cp Dao : ĠL cp Dao ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġadd License ( license Document : ĠLicense Document ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( l cp Dao . exists ( license Document . id ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlicense Ġ= ĠLicense ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Id Ġ= Ġlicense Document . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Print Ġ= Ġlicense Document . rights . print , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Copy Ġ= Ġlicense Document . rights . copy ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġl cp Dao . add License ( license ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopies Left ( license Id : ĠString ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġl cp Dao . getC op ies Left ( license Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Cop ies Left ( quantity : ĠInt , Ġlicense Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġl cp Dao . set Cop ies Left ( quantity , Ġlicense Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprints Left ( license Id : ĠString ) Ġ: ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġl cp Dao . get Print s Left ( license Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Print s Left ( quantity : ĠInt , Ġlicense Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġl cp Dao . set Print s Left ( quantity , Ġlicense Id ) ĊĠĠĠ Ġ} Ċ } Ċ