From 5b26f6093843d5566617106e013c0831753d7900 Mon Sep 17 00:00:00 2001 From: ElEgEv <112943269+ElEgEv@users.noreply.github.com> Date: Sun, 26 Nov 2023 13:56:51 +0400 Subject: [PATCH] Start lab work 4. --- .../8.0/executionHistory/executionHistory.bin | Bin 2596750 -> 2596750 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes compose/.gradle/8.0/fileHashes/fileHashes.bin | Bin 302669 -> 302669 bytes .../.gradle/8.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 1319606 -> 1319714 bytes compose/.gradle/file-system.probe | Bin 8 -> 8 bytes .../ru/ulstu/is/pmu/MainComposeActivity.kt | 2 - .../java/ru/ulstu/is/pmu/tank/dao/LevelDao.kt | 4 +- .../ru/ulstu/is/pmu/tank/dao/NationDao.kt | 4 +- .../java/ru/ulstu/is/pmu/tank/dao/TankDao.kt | 2 +- .../java/ru/ulstu/is/pmu/tank/dao/UserDao.kt | 2 +- .../is/pmu/tank/database/AppContainer.kt | 37 ++++++++++++++++++ .../is/pmu/tank/repository/LevelRepository.kt | 14 +++++++ .../pmu/tank/repository/NationRepository.kt | 14 +++++++ .../tank/repository/OfflineLevelRepository.kt | 20 ++++++++++ .../repository/OfflineNationRepository.kt | 20 ++++++++++ .../tank/repository/OfflineTankRepository.kt | 17 ++++++++ .../tank/repository/OfflineUserRepository.kt | 20 ++++++++++ .../is/pmu/tank/repository/TankRepository.kt | 12 ++++++ .../is/pmu/tank/repository/UserRepository.kt | 14 +++++++ 21 files changed, 174 insertions(+), 8 deletions(-) create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/database/AppContainer.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/LevelRepository.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/NationRepository.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineLevelRepository.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineNationRepository.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineTankRepository.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineUserRepository.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/TankRepository.kt create mode 100644 compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/UserRepository.kt diff --git a/compose/.gradle/8.0/executionHistory/executionHistory.bin b/compose/.gradle/8.0/executionHistory/executionHistory.bin index 3afda182116bf95b2bd95d51a87cf9793bb0b5ca..78943ab51e3e3f23d285a5c1d9b24bbd5e2018ff 100644 GIT binary patch delta 446 zcmeC%Kaa5wh#OiMw=n&5Q_0CnG%Za|NiRuCE-uK=OH52EtH>-WDmKq$fPm)=XQm(2 z>F0cyx-q3PeVGo5qiZ;SbJw*4 zhEu0I`Y~xL-UM?Rn3)*_dTTU4Z(&*&SnzO?)Al1jZn7{kFtE>=-gt~%seP><6A&{4 zG0XO~eyn2eRees*CggHvlj#n2Y~kDO?buuyxBrY1S?tMr=Q_~x=?j;LY-9(q45!LW zk9KA1pZ;R0hyedJu+Y*K%pj|Mu1#ODl|=nSOSP8fmjNNrGZ!mh-HCT4v6J}SOJI?fmjKM Tm4R3Vh*g1DZTqn<^%Eih>8!*q delta 407 zcmeC%Kaa5wh#OiMw=n&5o1VE>R)K|qjp5AngStHG+g;q5Qdp<|+asqs{j3jDk3jOG z@+WWddtNiY$PGGBYi2S%)0gR>IJ)SR`)i);G2AxY(T_<}aVnV8z|71bu!SQi*z=CZ z4~3`g7VWwBN?8~g7})1bZ#>4X)V|h_35c12m}UD~KUT5#OujtRGxo|VGBLPLcd%m% z-)?Wm=E}&(Jl!r@#FDEk#5Fi1-rvtB63pMe&z>#PQ~cNq))y-dzdvxbMeL@}C6}^p zu-!YS>vgitlR$T67sQn^)1zIP`lr8GDk9K+tcwkZ*@2h?h&h3n3y8Uamry`<0su|>v{nEB diff --git a/compose/.gradle/8.0/executionHistory/executionHistory.lock b/compose/.gradle/8.0/executionHistory/executionHistory.lock index bce7077f8127fcc52126a1ab18e6142012cc58a8..52fac292b0898d7936daba44b36ad21d8c354e86 100644 GIT binary patch literal 17 VcmZQp{i1T(uKYtVTe@;70|R3Z*SXbq7{I`C`o&p{ z!U_RVBAccz+o!WpF>`(Y{i9!?if%y^@rh2CEo4@;2kE;85xSxZr1gw}geDLxg0KK~ lL)M%JN&*4U5JOQ$;mP|tg;;?Gt-0C0x{!JM>Oz)9IslG1I{N?s delta 112 zcmX@RN9gPxp@tU57N#xCrwb&GyA%voJ46uAKo4uBc8=yu>U#{YN3Q7~>SMn#p@RMOc6;rnavxWZu5I IkY$k$07=X%s{jB1 diff --git a/compose/.gradle/8.0/fileHashes/fileHashes.lock b/compose/.gradle/8.0/fileHashes/fileHashes.lock index 190331c5a38057a14e18031368391305cd463f38..80fa390dda22be282ce4b6cc0ec8a9b6a24fa3a1 100644 GIT binary patch literal 17 VcmZQ(aBaLGm;b_n0Sp$*0stvQ1c?9u literal 17 VcmZQ(aBaLGm;b_n0Sp#Q0stvI1c3km diff --git a/compose/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/compose/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 5a05d86bf8c6b9edc30783f0343a16311436aff9..c16bad55b88391954afe300cd6f5ddb27cce9941 100644 GIT binary patch literal 17 VcmZQhF*rNr{gMY+3}DcD763e-1}Fdk literal 17 VcmZQhF*rNr{gMY+3}8?{1pqu+1?d0) diff --git a/compose/.gradle/buildOutputCleanup/outputFiles.bin b/compose/.gradle/buildOutputCleanup/outputFiles.bin index b37ccdf80867f6c0de3e07e6ddff97da6f9f544e..934632601b9c2fb78adedaf35c7c81382c85d78a 100644 GIT binary patch delta 1090 zcmYLIZ)g)|81H*`F}WnYTrQn~AvLBTB4ef#3W6UtS5P{Hvmc5pw1)b3G<2;Lm4G#4 zj*Q}mW9|BA2cu>PvW=PIEe{r2q~iGplvc+GVIQI&I*bba;GYkR*5|p4?BF@xyZ3(2 z@6YpI>84q5%$zOe*Tf!NSQFjrwbA`Cv-YHkua@L(T(@2t42b3Yc&kJuQz=wF9B*AW z_)?t1S26!`OJuI&;KuHK4;rWvE^P6Cp^J7{I~nQ8pW5N43Q(z3K|Hl1G$M-%)^>(2 zG)G2%TYJ2a{jmXki`lNw!&dRl>?TVF>+@Li)Sp@}d5=p$+Y^eJgCq*mmB zxQqF(LwA(OM?dX6Jy7}B>(Zv5V?AE=)QTq;Lb1m-l~8R1ba4n%NqK)*F9j^Oxf{Yx#f z|Hg}K|6oIWvVs*~bbAc(551s4^`b<6M@Vtvq|_szdOTQwnWsuGrXC0A*?g{8c>OIG{eTyVE>cwU;8yd-lkqqf_QqOe>@$yQHD!0$^7 z8u=lZ1FP3!gnh1*p*SRsL1I=J!^9btw%y5)=K`b;2Q64SBrH!O2M*RgwFbkl0yQKb zSyDf3^tyDA{?~AzdY{Y@6*1F{CiK4=bJBlTI>{Q%2~uZO%R?|JRFmPdn=WJPB)Y)W z_}~gP_wqWR){u~t4+U@2C(hMsKebFuhU-Ym65?vAkAs;E)3BIl>29p%O^h9ra=wwp zGNjU~&E_2TUSM+$^Vuw|2Dxt~2dmEl2{+{oPpMPzKz@Et!3U3yMp1ZopmmwUFEi|g zgt>N=5HoMcGFp8`T6P`%uLqY<8dAJ*5vA?Mlx}@5igV`9-4a}EvJ;(GDSsYKD3BG6aR+*O-g_av6PNZDA7+e%|B0iJd-!0#DIZ9<<*X39y JJ5`l4?*JCywqyVR delta 1011 zcmYjQZ%7ki80Wp+x!pFm+s!OPbSk9yY4%O%!!RKcf@2?q2G)`SgHafP;s+ZP%#z?> zx`zyM-Y1Em4No5=3Ncz}6bm9&5RQVRN#TbwA;X^c&ZG~|%f0V=&-43tXB4!>=UUQa zPxja;e7eV?wb)iGoOiJ$SkDC(Qmu^wm4iy8lCZV0>h%vcf!jgnn;Kkib9O1L4mO7U zms2C1PAV6bOy$OrPS22oy~oN4&)sUg*XvnpV3+bua}Ll?2CFj*z8FNNR2{SyNr%uQ zbqvBccE&^HrK-m4j8C2*G7sAQ)6K9c zInUwa)Bd9ZtIId-xcU2yeEJwhuDiP#$1p+rqn2Q6Yk$Gz-^?wf!~GvYlO3+q%77nN z29y_*>>}R&rJV6Wcv!5%nyNq`$ZqAE#(jKh2b5<81C$}TfT3Zbk3spW+kot*7{l-< z7wtn)*~H~L@*qoRdwZZb<&Qz}0*it6O)Q|^rRFR;G0@XqgJ1Vxa!D8$_)G(mKLe&U zjhe|H-a^{js5}(OQSF^v;Hl|$M<_3j zfwm{=Ky=5D;Eyw|s0776wE{Uc_%d_IHNhz*>|lzezz(;F1ah+uZYr4cNl^hplUyuE zDXs-8c5Yl1=IXs6!f%mGt0!X+2v-V3%+j17ZRUZUI&K|NsevQ&$hsMK^gf#p_uEM% zP*as0+h2)pH@_RT=_6_KF-&&I)R(N~tKP519hPAS#O#dz&yk!lEz9B!vPl^fYZ-D&!7U-x@$Y2WCR_^mR%cy2DCf);|Gx*>jmymX>r!Q aVo8e#^X0RQS$|WicP>DsV((lqG5Qw+6{Ktc diff --git a/compose/.gradle/file-system.probe b/compose/.gradle/file-system.probe index 9fdda6cd62ecd47f8b31bf621e3a069edc9318ba..1d4ac8a585bfe621e83b331bf100219829ed7590 100644 GIT binary patch literal 8 PcmZQzVC>;KH)ARQ2O$EJ literal 8 PcmZQzVC+7l5`7*32j&8& diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/MainComposeActivity.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/MainComposeActivity.kt index 5dc3f1b..4b4a5af 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/MainComposeActivity.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/MainComposeActivity.kt @@ -11,8 +11,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.navigation.compose.rememberNavController -import ru.ulstu.`is`.pmu.tanks.composeui.Login -import ru.ulstu.`is`.pmu.composeui.navigation.MainNavbar import ru.ulstu.`is`.pmu.composeui.navigation.NavGraph import ru.ulstu.`is`.pmu.ui.theme.PmudemoTheme diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/LevelDao.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/LevelDao.kt index d489610..edd3bb1 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/LevelDao.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/LevelDao.kt @@ -24,13 +24,13 @@ interface LevelDao { //получить конкретный уровень @Query("select * from levels where levels.uid = :uid") - suspend fun getLevelUid(uid: Long): LevelWithTanks + fun getLevelUid(uid: Long): Flow //получить уровень без списка танков @Query( "SELECT level FROM levels where levels.uid = :uid" ) - open fun getSimpleLevelUid(uid: Long): Level + open fun getSimpleLevelUid(uid: Long): Flow @Insert suspend fun insert(level: Level) diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/NationDao.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/NationDao.kt index 7bfa942..e293fc0 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/NationDao.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/NationDao.kt @@ -23,13 +23,13 @@ interface NationDao { //получить конкретную нацию @Query("select * from nations where nations.uid = :uid") - suspend fun getNationUid(uid: Long): NationWithTanks + fun getNationUid(uid: Long): Flow //получить нацию без списка танков @Query( "SELECT nationName FROM nations where nations.uid = :uid" ) - open fun getSimpleNationUid(uid: Long): Nation + open fun getSimpleNationUid(uid: Long): Flow @Insert suspend fun insert(nation: Nation) diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/TankDao.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/TankDao.kt index d226367..a144032 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/TankDao.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/TankDao.kt @@ -18,7 +18,7 @@ interface TankDao { //получить конкретный уровень @Query("select * from tanks where tanks.tankId = :uid") - suspend fun getTankUid(uid: Long): Tank + fun getTankUid(uid: Long): Flow @Insert suspend fun insert(tank: Tank) diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/UserDao.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/UserDao.kt index 0c0a8bb..307d88c 100644 --- a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/UserDao.kt +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/dao/UserDao.kt @@ -30,7 +30,7 @@ interface UserDao { fun getUserUid(uid: Long): Flow>> @Query("select * from users where users.userId = :uid") - suspend fun getSimpleUserUid(uid: Long): User + fun getSimpleUserUid(uid: Long): Flow //добавить танк в ангар пользователя @Insert diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/database/AppContainer.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/database/AppContainer.kt new file mode 100644 index 0000000..a467a71 --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/database/AppContainer.kt @@ -0,0 +1,37 @@ +package ru.ulstu.`is`.pmu.tank.database + +import android.content.Context +import ru.ulstu.`is`.pmu.tank.repository.LevelRepository +import ru.ulstu.`is`.pmu.tank.repository.NationRepository +import ru.ulstu.`is`.pmu.tank.repository.OfflineLevelRepository +import ru.ulstu.`is`.pmu.tank.repository.OfflineNationRepository +import ru.ulstu.`is`.pmu.tank.repository.OfflineTankRepository +import ru.ulstu.`is`.pmu.tank.repository.OfflineUserRepository +import ru.ulstu.`is`.pmu.tank.repository.TankRepository +import ru.ulstu.`is`.pmu.tank.repository.UserRepository + +interface AppContainer { + val levelRepository: LevelRepository + val nationRepository: NationRepository + val tankRepository: TankRepository + val userRepository: UserRepository +} + +class AppDataContainer(private val context: Context) : AppContainer { + override val levelRepository: LevelRepository by lazy { + OfflineLevelRepository(AppDatabase.getInstance(context).levelDao()) + } + override val nationRepository: NationRepository by lazy { + OfflineNationRepository(AppDatabase.getInstance(context).nationDao()) + } + override val tankRepository: TankRepository by lazy { + OfflineTankRepository(AppDatabase.getInstance(context).tankDao()) + } + override val userRepository: UserRepository by lazy { + OfflineUserRepository(AppDatabase.getInstance(context).userDao()) + } + + companion object { + const val TIMEOUT = 5000L + } +} \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/LevelRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/LevelRepository.kt new file mode 100644 index 0000000..b2969ce --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/LevelRepository.kt @@ -0,0 +1,14 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.model.Level +import ru.ulstu.`is`.pmu.tank.model.LevelWithTanks + +interface LevelRepository { + fun getAllLevels(): Flow> + fun getSimpleLevel(uid: Long): Flow + fun getFullLevel(uid: Long): Flow + suspend fun insertLevel(level: Level) + suspend fun updateLevel(level: Level) + suspend fun deleteLevel(level: Level) +} diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/NationRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/NationRepository.kt new file mode 100644 index 0000000..409d65b --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/NationRepository.kt @@ -0,0 +1,14 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.model.Nation +import ru.ulstu.`is`.pmu.tank.model.NationWithTanks + +interface NationRepository { + fun getAllNations(): Flow> + fun getSimpleNation(uid: Long): Flow + fun getFullNation(uid: Long): Flow + suspend fun insertNation(nation: Nation) + suspend fun updateNation(nation: Nation) + suspend fun deleteNation(nation: Nation) +} \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineLevelRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineLevelRepository.kt new file mode 100644 index 0000000..b3946bf --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineLevelRepository.kt @@ -0,0 +1,20 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.dao.LevelDao +import ru.ulstu.`is`.pmu.tank.model.Level +import ru.ulstu.`is`.pmu.tank.model.LevelWithTanks + +class OfflineLevelRepository(private val levelDao: LevelDao) : LevelRepository { + override fun getAllLevels(): Flow> = levelDao.getAll() + + override fun getSimpleLevel(uid: Long): Flow = levelDao.getSimpleLevelUid(uid) + + override fun getFullLevel(uid: Long): Flow = levelDao.getLevelUid(uid) + + override suspend fun insertLevel(level: Level) = levelDao.insert(level) + + override suspend fun updateLevel(level: Level) = levelDao.update(level) + + override suspend fun deleteLevel(level: Level) = levelDao.delete(level) +} \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineNationRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineNationRepository.kt new file mode 100644 index 0000000..d3569fd --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineNationRepository.kt @@ -0,0 +1,20 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.dao.NationDao +import ru.ulstu.`is`.pmu.tank.model.Nation +import ru.ulstu.`is`.pmu.tank.model.NationWithTanks + +class OfflineNationRepository(private val nationDao: NationDao) : NationRepository { + override fun getAllNations(): Flow> = nationDao.getAll() + + override fun getSimpleNation(uid: Long): Flow = nationDao.getSimpleNationUid(uid) + + override fun getFullNation(uid: Long): Flow = nationDao.getNationUid(uid) + + override suspend fun insertNation(nation: Nation) = nationDao.insert(nation) + + override suspend fun updateNation(nation: Nation) = nationDao.update(nation) + + override suspend fun deleteNation(nation: Nation) = nationDao.delete(nation) +} \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineTankRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineTankRepository.kt new file mode 100644 index 0000000..88918c3 --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineTankRepository.kt @@ -0,0 +1,17 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.dao.TankDao +import ru.ulstu.`is`.pmu.tank.model.Tank + +class OfflineTankRepository(private val tankDao: TankDao) : TankRepository { + override fun getAllTanks(): Flow> = tankDao.getAll() + + override fun getTank(uid: Long): Flow = tankDao.getTankUid(uid) + + override suspend fun insertTank(tank: Tank) = tankDao.insert(tank) + + override suspend fun updateTank(tank: Tank) = tankDao.update(tank) + + override suspend fun deleteTank(tank: Tank) = tankDao.delete(tank) +} \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineUserRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineUserRepository.kt new file mode 100644 index 0000000..8287561 --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/OfflineUserRepository.kt @@ -0,0 +1,20 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.dao.UserDao +import ru.ulstu.`is`.pmu.tank.model.TankWithNationAndLevel +import ru.ulstu.`is`.pmu.tank.model.User + +class OfflineUserRepository(private val userDao: UserDao) : UserRepository { + override fun getAllUsers(): Flow> = userDao.getAll() + + override fun getSimpleUser(uid: Long): Flow = userDao.getSimpleUserUid(uid) + + override fun getFullUser(uid: Long): Flow>> = userDao.getUserUid(uid) + + override suspend fun insertUser(student: User) = userDao.insert(student) + + override suspend fun updateUser(student: User) = userDao.update(student) + + override suspend fun deleteUser(student: User) = userDao.delete(student) +} \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/TankRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/TankRepository.kt new file mode 100644 index 0000000..1730be9 --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/TankRepository.kt @@ -0,0 +1,12 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.model.Tank + +interface TankRepository { + fun getAllTanks(): Flow> + fun getTank(uid: Long): Flow + suspend fun insertTank(tank: Tank) + suspend fun updateTank(tank: Tank) + suspend fun deleteTank(tank: Tank) +} \ No newline at end of file diff --git a/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/UserRepository.kt b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/UserRepository.kt new file mode 100644 index 0000000..bf27a96 --- /dev/null +++ b/compose/app/src/main/java/ru/ulstu/is/pmu/tank/repository/UserRepository.kt @@ -0,0 +1,14 @@ +package ru.ulstu.`is`.pmu.tank.repository + +import kotlinx.coroutines.flow.Flow +import ru.ulstu.`is`.pmu.tank.model.TankWithNationAndLevel +import ru.ulstu.`is`.pmu.tank.model.User + +interface UserRepository { + fun getAllUsers(): Flow> + fun getSimpleUser(uid: Long): Flow + fun getFullUser(uid: Long): Flow>> + suspend fun insertUser(user: User) + suspend fun updateUser(user: User) + suspend fun deleteUser(user: User) +} \ No newline at end of file