refactor: centralize domain models into core.model module

This commit is contained in:
2026-07-01 17:39:06 +02:00
parent 657d39a293
commit 6a590344de
2 changed files with 103 additions and 31 deletions
@@ -1,44 +1,113 @@
package fr.ajaury.gwenedeg.records.data
import fr.ajaury.gwenedeg.records.domain.RecordRepository
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.core.model.Record
import fr.ajaury.gwenedeg.records.domain.RecordRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf
class InMemoryRecordRepository : RecordRepository {
private val records =
listOf(
"An onestiz" to "La politesse",
"En em brezantiñ" to "Se présenter",
"An amzer a ra" to "Le temps qu'il fait",
"E komz get unan arall" to "Parler avec quelqu'un d'autre",
"Me hag ar brezhoneg" to "Moi et le breton",
"Ar yec'hed" to "La santé",
"Deskriviñ" to "Décrire",
"Me 'gar / Ne garan ket" to "J'aime / Je n'aime pas",
"C'hoantoù" to "Les envies",
"Penaos 'peus kavet...?" to "Comment as-tu trouvé... ?",
"Oberiantizoù" to "Les activités",
"Debriñ hag evet" to "Manger et boire",
"Bale, pourmen ha beajiñ" to "Marcher, se promener et voyager",
"Ma c'horf (1)" to "Mon corps (1)",
"Ma c'horf (2)" to "Mon corps (2)",
"Dle eo / ret eo / dav eo / mall eo..." to "Il faut que... / Il est temps que (de) ...",
"Deizioù ar sizhun" to "Les jours de la semaine",
"Mizioù ha kourzoù ar blez" to "Les mois et les saisons de l'année",
"Bez'zo / N'eus ket..." to "Il y a / Il n'y a pas...",
"Banne.../Tamm..." to "Un peu...",
"Stad a vuhez (1)" to "Situation de vie (1)",
"Stad a vuhez (2)" to "Situation de vie (2)",
"Lec'hiiñ" to "Situer",
).mapIndexed { index, (title, titleTranslation) ->
Phrase(
transcription = "An onestiz",
translation = "La politesse",
),
Phrase(
transcription = "En em brezant",
translation = "Se présenter",
),
Phrase(
transcription = "An amzer a ra",
translation = "Le temps qu'il fait",
),
Phrase(
transcription = "E komz get unan arall",
translation = "Parler avec quelqu'un d'autre",
),
Phrase(
transcription = "Me hag ar brezhoneg",
translation = "Moi et le breton",
),
Phrase(
transcription = "Ar yec'hed",
translation = "La santé",
),
Phrase(
transcription = "Deskriviñ",
translation = "Décrire",
),
Phrase(
transcription = "Me 'gar / Ne garan ket",
translation = "J'aime / Je n'aime pas",
),
Phrase(
transcription = "C'hoantoù",
translation = "Les envies",
),
Phrase(
transcription = "Penaos 'peus kavet...?",
translation = "Comment as-tu trouvé... ?",
),
Phrase(
transcription = "Oberiantizoù",
translation = "Les activités",
),
Phrase(
transcription = "Debriñ hag evet",
translation = "Manger et boire",
),
Phrase(
transcription = "Bale, pourmen ha beajiñ",
translation = "Marcher, se promener et voyager",
),
Phrase(
transcription = "Ma c'horf (1)",
translation = "Mon corps (1)",
),
Phrase(
transcription = "Ma c'horf (2)",
translation = "Mon corps (2)",
),
Phrase(
transcription = "Dle eo / ret eo / dav eo / mall eo...",
translation = "Il faut que... / Il est temps que (de) ...",
),
Phrase(
transcription = "Deizioù ar sizhun",
translation = "Les jours de la semaine",
),
Phrase(
transcription = "Mizioù ha kourzoù ar blez",
translation = "Les mois et les saisons de l'année",
),
Phrase(
transcription = "Bez'zo / N'eus ket...",
translation = "Il y a / Il n'y a pas...",
),
Phrase(
transcription = "Banne.../Tamm...",
translation = "Un peu...",
),
Phrase(
transcription = "Stad a vuhez (1)",
translation = "Situation de vie (1)",
),
Phrase(
transcription = "Stad a vuhez (2)",
translation = "Situation de vie (2)",
),
Phrase(
transcription = "Lec'hiiñ",
translation = "Situer",
),
).mapIndexed { index, phrase ->
val number = index + 1
val paddedNumber = number.toString().padStart(2, '0')
Record(
id = number,
index = number,
title = title,
titleTranslation = titleTranslation,
title = phrase,
audioResourcePath = "files/Chom_bev_$paddedNumber.m4a",
subtitleResourcePath = "files/Chom_bev_${paddedNumber}_st_bzh.lrc",
translationSubtitleResourcePath = "files/Chom_bev_${paddedNumber}_st_fr.lrc",
@@ -14,6 +14,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.core.model.Record
@Composable
@@ -35,8 +36,8 @@ fun RecordView(
fontFamily = FontFamily.Monospace,
)
Column {
Text(text = record.title)
record.titleTranslation?.let { translation ->
Text(text = record.title.transcription)
record.title.translation?.let { translation ->
Text(
text = translation,
style = MaterialTheme.typography.bodySmall,
@@ -55,8 +56,10 @@ private fun RecordViewPreview() {
Record(
id = 1,
index = 1,
title = "Sample Record",
titleTranslation = "Exemple d'enregistrement",
title = Phrase(
transcription = "Sample Record",
translation = "Exemple d'enregistrement",
),
audioResourcePath = "files/Chom_bev_01.ogg",
subtitleResourcePath = "files/Chom_bev_01_st_bzh.lrc",
),