From 106a3c428a04bade85790187ac7fc9a62cb02968 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:42:16 +0900 Subject: [PATCH 01/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureOpenScreen=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/msg/lecture/LectureOpenScreen.kt | 238 ------------------ 1 file changed, 238 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/LectureOpenScreen.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/LectureOpenScreen.kt b/feature/lecture/src/main/java/com/msg/lecture/LectureOpenScreen.kt deleted file mode 100644 index 8d7e331f..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/LectureOpenScreen.kt +++ /dev/null @@ -1,238 +0,0 @@ -package com.msg.lecture - -import androidx.activity.ComponentActivity -import androidx.compose.foundation.background -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.text.BasicTextField -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.focus.FocusManager -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalFocusManager -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel -import com.msg.design_system.component.button.BitgoeulButton -import com.msg.design_system.component.button.ButtonState -import com.msg.design_system.component.button.DetailSettingButton -import com.msg.design_system.component.dialog.PositiveActionDialog -import com.msg.design_system.component.icon.GoBackIcon -import com.msg.design_system.component.topbar.GoBackTopBar -import com.msg.design_system.theme.BitgoeulAndroidTheme -import com.msg.lecture.viewmodel.LectureViewModel -import java.time.LocalDateTime - -@Composable -internal fun LectureOpenRoute( - onActionClicked: () -> Unit, - onBackClicked: () -> Unit, - onSettingClicked: () -> Unit, - viewModel: LectureViewModel = hiltViewModel(LocalContext.current as ComponentActivity), -) { - val focusManager = LocalFocusManager.current - - LectureOpenScreen( - focusManager = focusManager, - onActionClicked = { - viewModel.openLecture( - name = viewModel.name.value, - content = viewModel.content.value, - semester = viewModel.semester.value, - division = viewModel.division.value, - department = viewModel.department.value, - line = viewModel.line.value, - userId = viewModel.userId.value, - startDate = viewModel.startDate.value ?: LocalDateTime.now(), - endDate = viewModel.endDate.value ?: LocalDateTime.now(), - lectureType = viewModel.lectureType.value, - credit = viewModel.credit.value, - maxRegisteredUser = viewModel.maxRegisteredUser.value, - essentialComplete = viewModel.essentialComplete.value - ) - onActionClicked() - }, - onBackClicked = onBackClicked, - onSettingClicked = { name, content -> - viewModel.name.value = name - viewModel.content.value = content - onSettingClicked() - }, - savedName = viewModel.name.value, - savedContent = viewModel.content.value - ) -} - -@Composable -internal fun LectureOpenScreen( - modifier: Modifier = Modifier, - focusManager: FocusManager, - onActionClicked: () -> Unit, - onBackClicked: () -> Unit, - onSettingClicked: (name: String, content: String) -> Unit, - savedName: String, - savedContent: String, -) { - val name = remember { mutableStateOf(savedName) } - val content = remember { mutableStateOf(savedContent) } - - val isDialogVisible = remember { mutableStateOf(false) } - - val maxTitleLength = 100 - val maxContentLength = 1000 - - val scrollState = rememberScrollState() - - CompositionLocalProvider(LocalFocusManager provides focusManager) { - BitgoeulAndroidTheme { colors, typography -> - Box( - modifier = modifier - .background(color = colors.WHITE) - .padding(horizontal = 28.dp) - ) { - Column( - modifier = modifier - .fillMaxSize() - .background(color = colors.WHITE) - .pointerInput(Unit) { - detectTapGestures { - focusManager.clearFocus() - } - } - ) { - Spacer(modifier = modifier.height(20.dp)) - - GoBackTopBar( - icon = { GoBackIcon() }, - text = "돌아가기" - ) { - onBackClicked() - } - - Spacer(modifier = modifier.height(16.dp)) - - Column( - modifier = modifier - .verticalScroll(scrollState) - .fillMaxHeight() - ) { - BasicTextField( - modifier = modifier - .fillMaxWidth(), - value = name.value, - onValueChange = { if (it.length <= maxTitleLength) name.value = it }, - textStyle = typography.titleSmall, - decorationBox = { innerTextField -> - if (name.value.isEmpty()) Text( - text = "강의 제목 (100자 이내)", - style = typography.titleSmall, - color = colors.G1 - ) - innerTextField() - } - ) - - Spacer(modifier = modifier.height(16.dp)) - - HorizontalDivider( - modifier = modifier.fillMaxWidth(), - thickness = 1.dp, - color = colors.G9 - ) - - Spacer(modifier = modifier.height(16.dp)) - - BasicTextField( - modifier = modifier.fillMaxWidth(), - value = content.value, - onValueChange = { - if (it.length <= maxContentLength) content.value = it - }, - textStyle = typography.bodySmall, - decorationBox = { innerTextField -> - if (content.value.isEmpty()) Text( - text = "본문 입력 (1000자 이내)", - style = typography.bodySmall, - color = colors.G1 - ) - innerTextField() - } - ) - } - } - - Column( - modifier = modifier - .fillMaxWidth() - .align(Alignment.BottomCenter) - ) { - HorizontalDivider( - modifier = modifier.fillMaxWidth(), - thickness = 1.dp, - color = colors.G9 - ) - - Spacer(modifier = modifier.height(24.dp)) - - DetailSettingButton( - modifier = modifier - .fillMaxWidth(), - type = "강의" - ) { - onSettingClicked(name.value, content.value) - } - - Spacer(modifier = modifier.height(8.dp)) - - BitgoeulButton( - text = "강의 개설 신청", - modifier = modifier - .fillMaxWidth(), - state = if (name.value.isNotEmpty() && content.value.isNotEmpty()) ButtonState.Enable else ButtonState.Disable - ) { - isDialogVisible.value = true - } - Spacer(modifier = modifier.height(16.dp)) - } - - PositiveActionDialog( - title = "강의 개설하시겠습니까?", - positiveAction = "개설", - content = name.value, - isVisible = isDialogVisible.value, - onQuit = { isDialogVisible.value = false }, - onActionClicked = onActionClicked - ) - } - } - } -} - -@Preview -@Composable -private fun LectureOpenScreenPre() { - LectureOpenScreen( - onActionClicked = {}, - onBackClicked = {}, - onSettingClicked = { _, _ -> }, - savedName = "코틀린", - savedContent = "코틀린은 자바 가상 머신에서 돌아가는 프로그래밍 언어로, 자바와 100% 호환되는 언어입니다.", - focusManager = LocalFocusManager.current - ) -} \ No newline at end of file From 203ba267e901b8b5cf8f9723ffbf736f56956681 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:42:31 +0900 Subject: [PATCH 02/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureDetailSettingDepa?= =?UTF-8?q?rtmentCard=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LectureDetatilSettingDepartmentCard.kt | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/component/LectureDetatilSettingDepartmentCard.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetatilSettingDepartmentCard.kt b/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetatilSettingDepartmentCard.kt deleted file mode 100644 index 012ef012..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetatilSettingDepartmentCard.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.msg.lecture.component - -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Card -import androidx.compose.material3.CardDefaults -import androidx.compose.material3.Surface -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import com.msg.design_system.theme.BitgoeulAndroidTheme - -@Composable -internal fun LectureDetailSettingDepartmentAndDivisionCard( - data: String, - modifier: Modifier = Modifier, - onClicked: (String) -> Unit -) { - BitgoeulAndroidTheme { colors, typography -> - Surface { - Card( - modifier = modifier - .background(color = colors.WHITE) - .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 16.dp) - .clickable { - onClicked(data) - }, - colors = CardDefaults.cardColors(containerColor = colors.WHITE) - ) { - Text( - text = data, - color = colors.BLACK, - style = typography.headlineMedium - ) - } - } - } -} \ No newline at end of file From 5d29c102d447f821ac986a0d32b5e6cd7d2fc054 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:42:40 +0900 Subject: [PATCH 03/25] =?UTF-8?q?=F0=9F=94=A5::=20AddLectureDatesButton=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/AddLectureDatesButton.kt | 47 ------------------- 1 file changed, 47 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/component/AddLectureDatesButton.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/component/AddLectureDatesButton.kt b/feature/lecture/src/main/java/com/msg/lecture/component/AddLectureDatesButton.kt deleted file mode 100644 index 332d8445..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/component/AddLectureDatesButton.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.msg.lecture.component - -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import com.msg.design_system.component.icon.PlusWhiteIcon -import com.msg.design_system.theme.BitgoeulAndroidTheme - -@Composable -internal fun AddLectureDatesButton( - modifier: Modifier = Modifier, - onAddClicked: () -> Unit -) { - BitgoeulAndroidTheme { colors, typography -> - Row( - modifier = modifier - .fillMaxWidth() - .background( - color = colors.P5, - shape = RoundedCornerShape(8.dp) - ) - .padding(vertical = 12.dp, horizontal = 20.dp) - .clickable { - onAddClicked() - }, - verticalAlignment = Alignment.CenterVertically, - ) { - Text( - text = "날짜 추가", - style = typography.bodySmall, - color = colors.WHITE - ) - Spacer(modifier = modifier.weight(1f)) - - PlusWhiteIcon() - } - } -} \ No newline at end of file From f90b96cc5a8c89e0450ade988db816790dce64b1 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:42:55 +0900 Subject: [PATCH 04/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureDetailSettingInfo?= =?UTF-8?q?Card=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/LectureDetailSettingInfoCard.kt | 92 ------------------- 1 file changed, 92 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingInfoCard.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingInfoCard.kt b/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingInfoCard.kt deleted file mode 100644 index f18316c6..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingInfoCard.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.msg.lecture.component - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Card -import androidx.compose.material3.CardDefaults -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import com.msg.design_system.component.bottomsheet.SelectedIndicator -import com.msg.design_system.theme.BitgoeulAndroidTheme -import com.msg.model.entity.lecture.Instructors -import java.util.UUID - -@Composable -internal fun LectureDetailSettingInfoCard( - modifier: Modifier = Modifier, - searchProfessorData: Instructors?, - searchLineData: String?, - division: String, - keyword: String, - onClicked: (UUID, String, String) -> Unit -) { - val isSelected = remember { mutableStateOf(false) } - - BitgoeulAndroidTheme { colors, typography -> - Box { - Card( - modifier = modifier - .background(color = colors.WHITE) - .fillMaxWidth() - .padding(vertical = 14.dp), - colors = CardDefaults.cardColors(containerColor = colors.WHITE) - ) { - if (searchProfessorData != null) { - Text( - text = searchProfessorData.name, - color = colors.BLACK, - style = typography.headlineMedium - ) - - Text( - text = searchProfessorData.organization, - color = colors.G2, - style = typography.labelMedium - ) - } else if (searchLineData != null) { - Text( - text = searchLineData, - color = colors.BLACK, - style = typography.headlineMedium - ) - - Text( - text = division, - color = colors.G2, - style = typography.labelMedium - ) - } else { - Text( - text = keyword, - color = colors.BLACK, - style = typography.headlineMedium - ) - - Text( - text = division + "에 추가하기...", - color = colors.G2, - style = typography.labelMedium - ) - } - } - - SelectedIndicator( - modifier = modifier.align(Alignment.CenterEnd), - isSelected = isSelected.value, - onClicked = { - isSelected.value = true - if (searchProfessorData != null) { - onClicked(searchProfessorData.id, searchLineData.toString(), searchProfessorData.name) - } - } - ) - } - } -} From 129c7f2f585b9d4e153f9e6e3f732ad0e2a7ab21 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:43:02 +0900 Subject: [PATCH 05/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureDetailSettingList?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/LectureDetailSettingList.kt | 207 ------------------ 1 file changed, 207 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingList.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingList.kt b/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingList.kt deleted file mode 100644 index a03f7057..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingList.kt +++ /dev/null @@ -1,207 +0,0 @@ -package com.msg.lecture.component - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import com.msg.design_system.component.icon.EmptyBoxIcon -import com.msg.design_system.theme.BitgoeulAndroidTheme -import com.msg.model.entity.lecture.* -import java.util.UUID - -@Composable -internal fun LectureDepartmentList( - data: SearchDepartmentEntity, - modifier: Modifier = Modifier, - onClicked: (String) -> Unit, -) { - BitgoeulAndroidTheme { colors, typography -> - if (data.departments.isNotEmpty()) { - LazyColumn( - modifier = modifier.background(color = colors.WHITE) - ) { - items(data.departments.size) { index -> - LectureDetailSettingDepartmentAndDivisionCard( - modifier = modifier, - onClicked = { department -> - onClicked(department) - }, - data = data.departments[index] - ) - } - } - } else { - Column( - modifier = modifier.fillMaxSize(), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - EmptyBoxIcon( - modifier = modifier - ) - - Spacer(modifier = modifier.height(8.dp)) - - Text( - text = "검색 결과가 없습니다.", - style = typography.labelMedium, - color = colors.G2 - ) - } - } - } -} - -@Composable -internal fun LectureLineList( - data: SearchLineEntity, - keyword: String, - modifier: Modifier = Modifier, - division: String, - onClicked: (String) -> Unit, -) { - BitgoeulAndroidTheme { colors, typography -> - if (data.lines.isNotEmpty()) { - LazyColumn( - modifier = modifier.background(color = Color.Transparent) - ) { - items(data.lines.size) { index -> - data.lines.getOrNull(index)?.let { linesData -> - LectureDetailSettingInfoCard( - modifier = modifier.background(color = Color.Transparent), - onClicked = { _, searchLineData, _ -> - onClicked(searchLineData) - }, - searchProfessorData = null, - searchLineData = linesData, - division = division, - keyword = keyword - ) - } - } - } - } else { - Column( - modifier = modifier.fillMaxSize(), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - EmptyBoxIcon( - modifier = modifier - ) - - Spacer(modifier = modifier.height(8.dp)) - - Text( - text = "검색 결과가 없습니다.", - style = typography.labelMedium, - color = colors.G2 - ) - } - } - } -} - -@Composable -internal fun LectureProfessorList( - data: SearchProfessorEntity, - keyword: String, - modifier: Modifier = Modifier, - division: String, - onClicked: (UUID, String) -> Unit, -) { - BitgoeulAndroidTheme { colors, typography -> - if (data.instructors.isNotEmpty()) { - LazyColumn( - modifier = modifier.background(color = Color.Transparent), - ) { - items(data.instructors.size) { index -> - data.instructors.getOrNull(index)?.let { professorData -> - LectureDetailSettingInfoCard( - modifier = modifier.background(color = Color.Transparent), - onClicked = { professorUUID, _, selectedProfessorName -> - onClicked(professorUUID, selectedProfessorName) - }, - searchProfessorData = professorData, - searchLineData = null, - division = division, - keyword = keyword - ) - } - } - } - } else { - Column( - modifier = modifier.fillMaxSize(), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - EmptyBoxIcon( - modifier = modifier - ) - - Spacer(modifier = modifier.height(8.dp)) - - Text( - text = "검색 결과가 없습니다.", - style = typography.labelMedium, - color = colors.G2 - ) - } - } - } -} - -@Composable -internal fun LectureDivisionList( - data: SearchDivisionEntity, - modifier: Modifier = Modifier, - onClicked: (String) -> Unit, -) { - BitgoeulAndroidTheme { colors, typography -> - if (data.divisions.isNotEmpty()) { - LazyColumn( - modifier = modifier.background(color = Color.Transparent) - ) { - items(data.divisions.size) { index -> - data.divisions.getOrNull(index)?.let { divisionData -> - LectureDetailSettingDepartmentAndDivisionCard( - modifier = modifier.background(color = Color.Transparent), - onClicked = { division -> - onClicked(division) - }, - data = divisionData - ) - } - } - } - } else { - Column( - modifier = modifier.fillMaxSize(), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - EmptyBoxIcon( - modifier = modifier - ) - - Spacer(modifier = modifier.height(8.dp)) - - Text( - text = "검색 결과가 없습니다.", - style = typography.labelMedium, - color = colors.G2 - ) - } - } - } -} \ No newline at end of file From ce34f5edcf9d6bf18906adca75eeb1eec238148f Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:43:08 +0900 Subject: [PATCH 06/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureDetailSettingScre?= =?UTF-8?q?en=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msg/lecture/LectureDetailSettingScreen.kt | 703 ------------------ 1 file changed, 703 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/LectureDetailSettingScreen.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/LectureDetailSettingScreen.kt b/feature/lecture/src/main/java/com/msg/lecture/LectureDetailSettingScreen.kt deleted file mode 100644 index c11c7edc..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/LectureDetailSettingScreen.kt +++ /dev/null @@ -1,703 +0,0 @@ -package com.msg.lecture - -import android.util.Log -import androidx.activity.ComponentActivity -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.itemsIndexed -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.mutableIntStateOf -import androidx.compose.runtime.mutableStateListOf -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.focus.FocusManager -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalFocusManager -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel -import com.msg.common.event.Event -import com.msg.design_system.R -import com.msg.design_system.component.button.BitgoeulButton -import com.msg.design_system.component.icon.CloseIcon -import com.msg.design_system.component.icon.DeleteIcon -import com.msg.design_system.component.text.BitgoeulSubjectText -import com.msg.design_system.component.textfield.DefaultTextField -import com.msg.design_system.component.textfield.LectureDetailSettingTextField -import com.msg.design_system.theme.BitgoeulAndroidTheme -import com.msg.lecture.component.AddLectureDatesButton -import com.msg.lecture.component.LectureDetailSettingInputTextField -import com.msg.lecture.component.LectureDetailSettingLectureDatesTextField -import com.msg.lecture.component.LectureDetailSettingSearchTextField -import com.msg.lecture.component.LectureSettingTag -import com.msg.lecture.viewmodel.LectureViewModel -import com.msg.model.entity.lecture.Instructors -import com.msg.model.entity.lecture.SearchDepartmentEntity -import com.msg.model.entity.lecture.SearchDivisionEntity -import com.msg.model.entity.lecture.SearchLineEntity -import com.msg.model.entity.lecture.SearchProfessorEntity -import com.msg.model.enumdata.Authority -import com.msg.ui.util.toKoreanFormat -import kotlinx.coroutines.launch -import java.time.LocalDate -import java.time.LocalDateTime -import java.time.LocalTime -import java.util.UUID - -@Composable -internal fun LectureDetailSettingRoute( - onCloseClicked: () -> Unit, - onApplyClicked: () -> Unit, - viewModel: LectureViewModel = hiltViewModel(LocalContext.current as ComponentActivity), -) { - val coroutineScope = rememberCoroutineScope() - val focusManager = LocalFocusManager.current - - LectureDetailSettingScreen( - focusManager = focusManager, - onCloseClicked = { - onCloseClicked() - viewModel.saveLectureDatesList() - }, - onApplyClicked = { lectureType, semester, division, department, line, userId, credit, startDate, endDate, maxRegisteredUser -> - viewModel.lectureType.value = lectureType - viewModel.semester.value = semester - viewModel.division.value = division - viewModel.department.value = department - viewModel.line.value = line - viewModel.userId.value = userId - viewModel.credit.value = credit - viewModel.startDate.value = startDate - viewModel.endDate.value = endDate - viewModel.maxRegisteredUser.value = maxRegisteredUser - onApplyClicked() - }, - onSearchProfessorClicked = { keyword -> - viewModel.searchProfessor(keyword = keyword) - coroutineScope.launch { - getProfessorSearchData(viewModel = viewModel, onSearchProfessorSuccess = { data -> - viewModel.searchProfessorData.value = data - }) - } - }, - onSearchLineClicked = { keyword, division -> - viewModel.searchLine(keyword = keyword, division = division) - coroutineScope.launch { - getLineSearchData(viewModel = viewModel, onLineSuccess = { data -> - viewModel.searchLineData.value = data - }) - } - }, - onSearchDepartmentClicked = { keyword -> - viewModel.searchDepartment(keyword = keyword) - coroutineScope.launch { - getDepartmentSearchData(viewModel = viewModel, onDepartmentSuccess = { data -> - viewModel.searchDepartmentData.value = data - }) - } - }, - onSearchDivisionClicked = { keyword -> - viewModel.searchDivision(keyword = keyword) - coroutineScope.launch { - getDivisionSearchData(viewModel = viewModel, onDivisionSuccess = { data -> - viewModel.searchDivisionData.value = data - }) - } - }, - onLectureDatesAddClicked = { - viewModel.addLectureDates() - }, - onLectureDatesRemoveClicked = { - viewModel.removeLectureDates() - }, - onLectureDatesChanged = { completeDate, startTIme, endTime -> - viewModel.completeDate.value = completeDate - viewModel.startTime.value = startTIme - viewModel.endTime.value = endTime - viewModel.addLectureDates() - }, - searchLineData = viewModel.searchLineData.value, - searchProfessorData = viewModel.searchProfessorData.value, - searchDepartmentData = viewModel.searchDepartmentData.value, - searchDivisionData = viewModel.searchDivisionData.value, - savedCreditPoint = viewModel.credit.value, - savedStartDate = viewModel.startDate.value, - savedEndDate = viewModel.endDate.value, - savedMaxRegisteredUser = viewModel.maxRegisteredUser.value, - savedSemester = viewModel.semester.value, - savedDivision = viewModel.division.value, - savedDepartment = viewModel.department.value, - savedLine = viewModel.line.value, - savedUserId = viewModel.userId.value, - savedLectureType = viewModel.lectureType.value, - ) -} - - -private suspend fun getLineSearchData( - viewModel: LectureViewModel, - onLineSuccess: (data: SearchLineEntity) -> Unit, -) { - viewModel.searchLineResponse.collect { response -> - when (response) { - is Event.Success -> { - onLineSuccess(response.data!!) - } - - else -> {} - } - } -} - -private suspend fun getProfessorSearchData( - viewModel: LectureViewModel, - onSearchProfessorSuccess: (data: SearchProfessorEntity) -> Unit, -) { - viewModel.searchProfessorResponse.collect { response -> - when (response) { - is Event.Success -> { - onSearchProfessorSuccess(response.data!!) - } - - else -> {} - } - } -} - -private suspend fun getDepartmentSearchData( - viewModel: LectureViewModel, - onDepartmentSuccess: (data: SearchDepartmentEntity) -> Unit, -) { - viewModel.searchDepartmentResponse.collect { response -> - when (response) { - is Event.Success -> { - onDepartmentSuccess(response.data!!) - } - - else -> {} - } - } -} - -suspend fun getDivisionSearchData( - viewModel: LectureViewModel, - onDivisionSuccess: (data: SearchDivisionEntity) -> Unit, -) { - viewModel.searchDivisionResponse.collect { response -> - when (response) { - is Event.Success -> { - onDivisionSuccess(response.data!!) - } - - else -> {} - } - } -} - -@Composable -internal fun LectureDetailSettingScreen( - modifier: Modifier = Modifier, - focusManager: FocusManager, - searchProfessorData: SearchProfessorEntity, - searchLineData: SearchLineEntity, - searchDepartmentData: SearchDepartmentEntity, - searchDivisionData: SearchDivisionEntity, - onCloseClicked: () -> Unit, - onLectureDatesAddClicked: () -> Unit, - onLectureDatesRemoveClicked: () -> Unit, - onApplyClicked: (lectureType: String, semester: String, division: String, department: String, line: String, userId: UUID, credit: Int, startDate: LocalDateTime?, endDate: LocalDateTime?, maxRegisteredUser: Int) -> Unit, - onSearchProfessorClicked: (String) -> Unit, - onSearchLineClicked: (String, String) -> Unit, - onSearchDepartmentClicked: (String) -> Unit, - onSearchDivisionClicked: (String) -> Unit, - onLectureDatesChanged: (completeDate: LocalDate, startTIme: LocalTime, endTime: LocalTime) -> Unit, - savedLectureType: String, - savedSemester: String, - savedDivision: String, - savedDepartment: String, - savedLine: String, - savedUserId: UUID, - savedCreditPoint: Int, - savedStartDate: LocalDateTime?, - savedEndDate: LocalDateTime?, - savedMaxRegisteredUser: Int, -) { - val semesterList = listOf("1학년 2학기", "2학년 1학기", "2학년 2학기", "3학년 1학기") - val lectureTypeList = listOf("상호학점인정교육과정", "유관기관프로그램", "대학탐방프로그램", "기업산학연계직업체험프로그램") - - val isRequiredCourse = remember { mutableStateOf("0") } - - val lectureType = remember { mutableStateOf(savedLectureType) } - val division = remember { mutableStateOf(savedDivision) } - val department = remember { mutableStateOf(savedDepartment) } - val line = remember { mutableStateOf(savedLine) } - val userId = remember { mutableStateOf(savedUserId) } - val credit = remember { mutableIntStateOf(savedCreditPoint) } - val semester = remember { mutableStateOf(savedSemester) } - val startDate = remember { mutableStateOf(savedStartDate) } - val endDate = remember { mutableStateOf(savedEndDate) } - val maxRegisteredUser = remember { mutableIntStateOf(savedMaxRegisteredUser) } - - val applicationStartTimeForShow = remember { mutableStateOf("") } - val applicationEndTimeForShow = remember { mutableStateOf("") } - val applicationStartDateForShow = remember { mutableStateOf("") } - val applicationEndDateForShow = remember { mutableStateOf("") } - - val lectureLineForShow = remember { mutableStateOf("") } - val lectureDepartmentForShow = remember { mutableStateOf("") } - val lectureTeacherInChargeForShow = remember { mutableStateOf("") } - val lectureDivisionForShow = remember { mutableStateOf("") } - val lectureDatesForShow = remember { mutableStateListOf("") } - - CompositionLocalProvider(LocalFocusManager provides focusManager) { - BitgoeulAndroidTheme { colors, typography -> - LazyColumn( - modifier = modifier - .wrapContentSize() - .background(color = colors.WHITE) - .padding(top = 24.dp) - .padding(horizontal = 24.dp) - .pointerInput(Unit) { - detectTapGestures { - focusManager.clearFocus() - } - } - ) { - item { - Row( - modifier = modifier - .fillMaxWidth() - .wrapContentHeight(), - horizontalArrangement = Arrangement.SpaceBetween - ) { - Text( - text = stringResource(id = R.string.lecture_detail_setting), - color = colors.BLACK, - style = typography.titleSmall, - ) - - CloseIcon( - modifier = modifier.clickable { - onCloseClicked() - } - ) - } - - Spacer(modifier = modifier.height(28.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = "필수 수강 여부", - ) - - Row { - LectureSettingTag( - text = "필수", - isSelected = isRequiredCourse.value == "0", - onClicked = { - isRequiredCourse.value = "0" - }, - ) - - Spacer(modifier = modifier.width(16.dp)) - - LectureSettingTag( - text = "선택", - isSelected = isRequiredCourse.value == "1", - onClicked = { - isRequiredCourse.value = "1" - }, - ) - } - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.semester_attended), - ) - - LectureDetailSettingTextField( - modifier = modifier.fillMaxWidth(), - list = semesterList, - selectedItem = semester.value.ifEmpty { "학기 선택" }, - onItemChange = { selectedSemester -> - if (semester.value != selectedSemester) semester.value = - selectedSemester else semester.value = "학기 선택" - }, - ) - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.lecture_category), - ) - - LectureDetailSettingTextField( - modifier = modifier.fillMaxWidth(), - list = lectureTypeList, - selectedItem = lectureType.value.ifEmpty { "유형 선택" }, - onItemChange = { selectedLectureType -> - if (lectureType.value != selectedLectureType) lectureType.value = - selectedLectureType - }, - isLectureType = true - ) - - if (lectureType.value == "기타") { - Spacer(modifier = modifier.height(8.dp)) - - DefaultTextField( - modifier = modifier.fillMaxSize(), - placeholder = "", - onValueChange = { inputString -> - lectureType.value = inputString - }, - errorText = "", - isDisabled = false, - isError = false, - isLinked = false, - isReverseTrailingIcon = false, - onButtonClicked = {} - ) - } - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.lecture_division), - ) - - LectureDetailSettingSearchTextField( - modifier = modifier.fillMaxWidth(), - placeholder = lectureDivisionForShow.value.ifEmpty { "구분 선택" }, - division = division.value, - onDivisionItemClicked = { selectedDivisionData -> - division.value = selectedDivisionData - lectureDivisionForShow.value = selectedDivisionData - }, - isClickedPickerType = "구분", - onSearchDivisionClicked = { keyword -> - onSearchDivisionClicked(keyword) - }, - searchLineData = searchLineData, - searchDepartmentData = searchDepartmentData, - searchProfessorData = searchProfessorData, - searchDivisionData = searchDivisionData - ) - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.lecture_series), - ) - - LectureDetailSettingSearchTextField( - modifier = modifier.fillMaxWidth(), - placeholder = lectureLineForShow.value.ifEmpty { "강의 선택" }, - division = division.value, - onLineItemClicked = { selectedLineData -> - line.value = selectedLineData - lectureLineForShow.value = selectedLineData - }, - isClickedPickerType = "강의 계열", - onSearchLineClicked = { keyword, division -> - onSearchLineClicked(keyword, division) - }, - searchLineData = searchLineData, - searchDepartmentData = searchDepartmentData, - searchProfessorData = searchProfessorData, - searchDivisionData = searchDivisionData - ) - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.department), - ) - - LectureDetailSettingSearchTextField( - modifier = modifier.fillMaxWidth(), - placeholder = lectureDepartmentForShow.value.ifEmpty { "학과 선택" }, - isClickedPickerType = "학과", - onDepartmentItemClicked = { selectedDepartmentData -> - department.value = selectedDepartmentData - lectureDepartmentForShow.value = selectedDepartmentData - }, - onSearchDepartmentClicked = { keyword -> - onSearchDepartmentClicked(keyword) - }, - searchLineData = searchLineData, - searchDepartmentData = searchDepartmentData, - searchProfessorData = searchProfessorData, - searchDivisionData = searchDivisionData - ) - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.teacher_in_charge), - ) - - LectureDetailSettingSearchTextField( - modifier = modifier.fillMaxWidth(), - placeholder = lectureTeacherInChargeForShow.value.ifEmpty { "담당 강사 선택" }, - isClickedPickerType = "담당 교수", - onProfessorItemClicked = { selectedProfessorUUID, selectedProfessorName -> - userId.value = selectedProfessorUUID - lectureTeacherInChargeForShow.value = selectedProfessorName - }, - onSearchProfessorClicked = { keyword -> - onSearchProfessorClicked(keyword) - }, - searchLineData = searchLineData, - searchDepartmentData = searchDepartmentData, - searchProfessorData = searchProfessorData, - searchDivisionData = searchDivisionData - ) - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.application_start_date), - ) - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "예시: ○○○○년 ○○월 ○○일", - onItemChange = { inputApplicationStartDate -> - applicationStartDateForShow.value = inputApplicationStartDate - }, - ) - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "○○시 ○○분", - onItemChange = { inputApplicationStartTime -> - applicationStartTimeForShow.value = inputApplicationStartTime - }, - ) - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.application_deadline_date), - ) - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "예시: ○○○○년 ○○월 ○○일", - onItemChange = { inputApplicationEndDate -> - applicationEndDateForShow.value = inputApplicationEndDate - }, - ) - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "○○시 ○○분", - onItemChange = { inputApplicationEndTime -> - applicationEndTimeForShow.value = inputApplicationEndTime - }, - ) - - Spacer(modifier = modifier.height(24.dp)) - } - item { - BitgoeulSubjectText( - subjectText = stringResource(id = R.string.lecture_attendance_date), - ) - - LectureDetailSettingLectureDatesTextField( - modifier = modifier.fillMaxWidth(), - selectedItem = lectureDatesForShow[0].ifEmpty { "수강일 입력(필수)" }, - onLectureDatesChanged = { completeDates, startTime, endTime -> - onLectureDatesChanged(completeDates, startTime, endTime) - Log.e("0 index completeDates", completeDates.toString()) - Log.e("0 index startTime", startTime.toString()) - Log.e("0 index endTime", endTime.toString()) - lectureDatesForShow[0] = - completeDates.toKoreanFormat() + " " + startTime.toKoreanFormat() + " ~ " + endTime.toKoreanFormat() - } - ) - - Spacer(modifier = modifier.height(8.dp)) - } - - itemsIndexed(lectureDatesForShow) { index, _ -> - Row( - verticalAlignment = Alignment.CenterVertically - ) { - LectureDetailSettingLectureDatesTextField( - modifier = modifier.weight(0.9f), - selectedItem = lectureDatesForShow[index].ifEmpty { "수강일 입력(선택)" }, - onLectureDatesChanged = { completeDates, startTime, endTime -> - onLectureDatesChanged(completeDates, startTime, endTime) - lectureDatesForShow.getOrNull(index)?.let { - lectureDatesForShow[index] = - completeDates.toKoreanFormat() + " " + startTime.toKoreanFormat() + " ~ " + endTime.toKoreanFormat() - } - } - ) - - Spacer(modifier = modifier.width(12.dp)) - - DeleteIcon( - modifier = modifier - .clickable { - onLectureDatesRemoveClicked() - lectureDatesForShow.forEachIndexed { index, _ -> - lectureDatesForShow.removeAt( - index - ) - } - } - ) - } - - Spacer(modifier = modifier.height(8.dp)) - } - - item { - AddLectureDatesButton( - modifier = modifier.fillMaxWidth() - ) { - lectureDatesForShow.add("") - onLectureDatesAddClicked() - } - - Spacer(modifier = modifier.height(24.dp)) - } - - item { - BitgoeulSubjectText(subjectText = "수강 인원") - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "수강 인원 입력 (5~10명)", - onItemChange = { inputMaxRegisteredUser -> - maxRegisteredUser.value = inputMaxRegisteredUser.toInt() - }, - ) - - Spacer(modifier = modifier.height(200.dp)) - } - } - - Column( - modifier = modifier.fillMaxSize(), - verticalArrangement = Arrangement.Bottom - ) { - Box( - modifier = modifier - .fillMaxWidth() - .background(color = colors.WHITE) - ) { - BitgoeulButton( - text = stringResource(id = R.string.apply), - modifier = modifier - .padding(bottom = 14.dp, top = 16.dp) - .align(Alignment.BottomCenter) - .fillMaxWidth() - .height(52.dp) - .padding(horizontal = 24.dp), - ) { - onApplyClicked( - lectureType.value, - semester.value, - division.value, - department.value, - line.value, - userId.value, - credit.value, - startDate.value, - endDate.value, - maxRegisteredUser.value, - ) - } - } - } - } - } -} - -@Preview -@Composable -private fun LectureDetailSettingScreenPre() { - LectureDetailSettingScreen( - onCloseClicked = {}, - onApplyClicked = { _, _, _, _, _, _, _, _, _, _ -> }, - onSearchProfessorClicked = {}, - onSearchLineClicked = { _, _ -> }, - onSearchDepartmentClicked = {}, - onSearchDivisionClicked = {}, - onLectureDatesAddClicked = {}, - onLectureDatesRemoveClicked = {}, - onLectureDatesChanged = { _, _, _ -> }, - searchLineData = SearchLineEntity( - lines = listOf("A계열", "B계열", "C계열") - ), - searchProfessorData = SearchProfessorEntity( - instructors = listOf( - Instructors( - id = UUID.randomUUID(), - name = "채종인", - organization = "광주소프트웨어마이스터고등학교", - authority = Authority.ROLE_PROFESSOR - ) - ) - ), - searchDepartmentData = SearchDepartmentEntity( - departments = listOf("A학과", "B학과", "C학과") - ), - searchDivisionData = SearchDivisionEntity( - divisions = listOf("A구분", "B구분", "C구분") - ), - savedLectureType = "lectureType", - savedSemester = "semester", - savedDivision = "division", - savedDepartment = "department", - savedLine = "line", - savedUserId = UUID.randomUUID(), - savedCreditPoint = 3, - savedStartDate = LocalDateTime.now(), - savedEndDate = LocalDateTime.now(), - savedMaxRegisteredUser = 10, - focusManager = LocalFocusManager.current - ) -} \ No newline at end of file From ac869a020cb841d1dd5c48a1fa4901dd3564bde9 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:43:36 +0900 Subject: [PATCH 07/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureDetailSettingText?= =?UTF-8?q?Field=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LectureDetailSettingTextField.kt | 209 ------------------ 1 file changed, 209 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingTextField.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingTextField.kt b/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingTextField.kt deleted file mode 100644 index 459d56c6..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDetailSettingTextField.kt +++ /dev/null @@ -1,209 +0,0 @@ -package com.msg.lecture.component - -import androidx.compose.foundation.background -import androidx.compose.foundation.border -import androidx.compose.foundation.clickable -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp -import com.msg.design_system.R -import com.msg.design_system.component.textfield.DefaultTextField -import com.msg.design_system.theme.BitgoeulAndroidTheme -import com.msg.lecture.util.toLocalDate -import com.msg.lecture.util.toLocalTime -import com.msg.model.entity.lecture.SearchDepartmentEntity -import com.msg.model.entity.lecture.SearchDivisionEntity -import com.msg.model.entity.lecture.SearchLineEntity -import com.msg.model.entity.lecture.SearchProfessorEntity -import java.time.LocalDate -import java.time.LocalTime -import java.util.UUID - - -@Composable -internal fun LectureDetailSettingInputTextField( - modifier: Modifier = Modifier, - placeholder: String, - onItemChange: (item: String) -> Unit, -) { - BitgoeulAndroidTheme { colors, _ -> - Column( - modifier = modifier.background(color = colors.WHITE) - ) { - Spacer(modifier = modifier.height(8.dp)) - - DefaultTextField( - modifier = modifier.fillMaxWidth(), - placeholder = placeholder, - errorText = "", - isError = false, - isDisabled = false, - isLinked = false, - isReverseTrailingIcon = false, - onValueChange = { inputString -> - onItemChange(inputString) - }, - onButtonClicked = {}, - ) - } - } -} - -@Composable -internal fun LectureDetailSettingSearchTextField( - modifier: Modifier = Modifier, - placeholder: String, - division: String = "", - onSearchLineClicked: (String, String) -> Unit = { _, _ -> }, - onSearchDepartmentClicked: (String) -> Unit = {}, - onSearchProfessorClicked: (String) -> Unit = {}, - onSearchDivisionClicked: (String) -> Unit = {}, - onProfessorItemClicked: (userId: UUID, professorName: String) -> Unit = { _, _ -> }, - onDepartmentItemClicked: (String) -> Unit = {}, - onLineItemClicked: (String) -> Unit = {}, - onDivisionItemClicked: (String) -> Unit = {}, - isClickedPickerType: String, - searchProfessorData: SearchProfessorEntity, - searchLineData: SearchLineEntity, - searchDepartmentData: SearchDepartmentEntity, - searchDivisionData: SearchDivisionEntity, -) { - val isFocused = remember { mutableStateOf(false) } - - BitgoeulAndroidTheme { colors, typography -> - Row( - modifier = modifier - .border( - width = 1.dp, - color = if (isFocused.value) colors.P5 else colors.G1, - shape = RoundedCornerShape(8.dp) - ) - .background(color = colors.WHITE) - .padding(vertical = 15.dp, horizontal = 20.dp) - .clickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null - ) { - isFocused.value = true - }, - ) { - Text( - text = placeholder, - style = typography.bodySmall, - color = colors.G2 - ) - } - if (isFocused.value) { - LectureDetailSettingSearchBottomSheet( - searchPlaceHolder = when (isClickedPickerType) { - "강의 계열" -> stringResource(id = R.string.lecture_series_placeholder) - "학과" -> stringResource(id = R.string.department_placeholder) - "담당 교수" -> stringResource(id = R.string.professor_in_charge_placeholder) - "구분" -> stringResource(id = R.string.division_placeholder) - else -> "" - }, - onSearchButtonClicked = { keyword, division -> - when (isClickedPickerType) { - "강의 계열" -> { - onSearchLineClicked(keyword, division) - } - - "학과" -> { - onSearchDepartmentClicked(keyword) - } - - "담당 교수" -> { - onSearchProfessorClicked(keyword) - } - - "구분" -> { - onSearchDivisionClicked(keyword) - } - - else -> {} - } - }, - searchAPIType = isClickedPickerType, - onProfessorListClicked = { selectedProfessorUUID, selectedProfessorName -> - onProfessorItemClicked(selectedProfessorUUID, selectedProfessorName) - }, - division = division, - onDepartmentListClicked = { selectedDepartmentData -> - onDepartmentItemClicked(selectedDepartmentData) - }, - onLineListClicked = { selectedLineData -> - onLineItemClicked(selectedLineData) - }, - onDivisionListClicked = { selectedDivisionData -> - onDivisionItemClicked(selectedDivisionData) - }, - onQuit = { - isFocused.value = false - }, - searchProfessorData = searchProfessorData, - searchLineData = searchLineData, - searchDepartmentData = searchDepartmentData, - searchDivisionData = searchDivisionData - ) - } - } -} - -@Composable -internal fun LectureDetailSettingLectureDatesTextField( - modifier: Modifier = Modifier, - selectedItem: String, - onLectureDatesChanged: (completeDate: LocalDate, startTIme: LocalTime, endTime: LocalTime) -> Unit, -) { - val isFocused = remember { mutableStateOf(false) } - - BitgoeulAndroidTheme { colors, typography -> - Row( - modifier = modifier - .border( - width = 1.dp, - color = if (isFocused.value) colors.P5 else colors.G1, - shape = RoundedCornerShape(8.dp) - ) - .background(color = colors.WHITE) - .padding(vertical = 15.dp, horizontal = 20.dp) - .clickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null - ) { - isFocused.value = true - }, - ) { - Text( - text = selectedItem, - style = typography.labelMedium, - color = colors.G2, - ) - } - if (isFocused.value) { - LectureDetailSettingLectureDatesBottomSheet( - onQuit = { completeDates, startTime, endTime -> - if (completeDates.isNotEmpty() && startTime.isNotEmpty() && endTime.isNotEmpty()) { - onLectureDatesChanged( - completeDates.toLocalDate(), - startTime.toLocalTime(), - endTime.toLocalTime() - ) - } - }, - ) - } - } -} \ No newline at end of file From 5b43b1d1314ee8c7594496575b50403118f3e605 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:44:17 +0900 Subject: [PATCH 08/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureDomainBottomSheet?= =?UTF-8?q?=20=EC=A4=91=20LectureDetailSettingSearchBottomSheet=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/LectureDomainBottomSheet.kt | 219 ------------------ 1 file changed, 219 deletions(-) diff --git a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDomainBottomSheet.kt b/feature/lecture/src/main/java/com/msg/lecture/component/LectureDomainBottomSheet.kt index c5322982..704811b0 100644 --- a/feature/lecture/src/main/java/com/msg/lecture/component/LectureDomainBottomSheet.kt +++ b/feature/lecture/src/main/java/com/msg/lecture/component/LectureDomainBottomSheet.kt @@ -6,241 +6,22 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.msg.design_system.component.button.BitgoeulButton -import com.msg.design_system.component.icon.CloseIcon import com.msg.design_system.component.icon.FileIcon import com.msg.design_system.component.icon.RedCloseIcon -import com.msg.design_system.component.textfield.TrailingIconTextField import com.msg.design_system.theme.BitgoeulAndroidTheme -import com.msg.model.entity.lecture.SearchDepartmentEntity -import com.msg.model.entity.lecture.SearchDivisionEntity -import com.msg.model.entity.lecture.SearchLineEntity -import com.msg.model.entity.lecture.SearchProfessorEntity import kotlinx.coroutines.launch -import java.util.UUID -@OptIn(ExperimentalMaterial3Api::class) -@Composable -internal fun LectureDetailSettingSearchBottomSheet( - searchProfessorData: SearchProfessorEntity, - searchLineData: SearchLineEntity, - searchDepartmentData: SearchDepartmentEntity, - searchDivisionData: SearchDivisionEntity, - modifier: Modifier = Modifier, - searchPlaceHolder: String, - division: String, - searchAPIType: String, - onSearchButtonClicked: (keyword: String, division: String) -> Unit, - onProfessorListClicked: (professorUUID: UUID, professorName: String) -> Unit, - onDepartmentListClicked: (String) -> Unit, - onLineListClicked: (String) -> Unit, - onDivisionListClicked: (String) -> Unit, - onQuit: () -> Unit, -) { - val keywordState = remember { mutableStateOf("") } - - BitgoeulAndroidTheme { colors, _ -> - ModalBottomSheet( - onDismissRequest = { - onQuit() - }, - containerColor = colors.WHITE - ) { - LaunchedEffect(true) { - onSearchButtonClicked("", "") - } - Column( - modifier = modifier - .wrapContentSize() - .background(color = colors.WHITE) - .padding(horizontal = 28.dp, vertical = 24.dp) - ) { - TrailingIconTextField( - modifier = modifier - .fillMaxWidth(), - placeholder = searchPlaceHolder, - value = keywordState.value, - onValueChange = { keyword -> - keywordState.value = keyword - }, - isDisabled = false, - onButtonClicked = { - onSearchButtonClicked(keywordState.value, division) - }, - ) - - Spacer(modifier = modifier.height(8.dp)) - if (searchProfessorData.instructors.isNotEmpty() || searchDepartmentData.departments.isNotEmpty() || searchLineData.lines.isNotEmpty() || searchDivisionData.divisions.isNotEmpty()) { - when (searchAPIType) { - "강의 계열" -> { - LectureLineList( - modifier = modifier, - onClicked = { selectedLineData -> - onLineListClicked(selectedLineData) - }, - data = searchLineData, - division = division, - keyword = keywordState.value - ) - } - - "담당 교수" -> { - LectureProfessorList( - modifier = modifier, - onClicked = { professor, selectedProfessorName -> - onProfessorListClicked(professor, selectedProfessorName) - }, - data = searchProfessorData, - division = division, - keyword = keywordState.value - ) - } - - "학과" -> { - LectureDepartmentList( - modifier = modifier, - onClicked = { department -> - onDepartmentListClicked(department) - }, - data = searchDepartmentData - ) - } - - "구분" -> { - LectureDivisionList( - modifier = modifier, - onClicked = { division -> - onDivisionListClicked(division) - }, - data = searchDivisionData - ) - } - } - } - } - } - } -} - -@Composable -@OptIn(ExperimentalMaterial3Api::class) -internal fun LectureDetailSettingLectureDatesBottomSheet( - modifier: Modifier = Modifier, - onQuit: (completeDates: String, startTime: String, endTime: String) -> Unit, -) { - val completeDates = remember { mutableStateOf("") } - val startTime = remember { mutableStateOf("") } - val endTime = remember { mutableStateOf("") } - val bottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) - val coroutineScope = rememberCoroutineScope() - - BitgoeulAndroidTheme { colors, typography -> - LaunchedEffect(key1 = Unit) { - bottomSheetState.expand() - } - - if (bottomSheetState.isVisible) { - ModalBottomSheet( - containerColor = colors.WHITE, - sheetState = bottomSheetState, - onDismissRequest = { - if (completeDates.value.isNotEmpty() && startTime.value.isNotEmpty() && endTime.value.isNotEmpty()) { - onQuit(completeDates.value, startTime.value, endTime.value) - } - }, - ) { - Column( - modifier = modifier - .fillMaxSize() - .background(color = colors.WHITE) - .padding(horizontal = 28.dp, vertical = 24.dp) - ) { - Row { - Text( - text = "강의 수강일", - color = colors.BLACK, - style = typography.labelLarge - ) - - Spacer(modifier = modifier.weight(1f)) - - CloseIcon( - modifier.clickable { - if (completeDates.value.isNotEmpty() && startTime.value.isNotEmpty() && endTime.value.isNotEmpty()) { - onQuit(completeDates.value, startTime.value, endTime.value) - } else { - coroutineScope.launch { - bottomSheetState.hide() - } - } - } - ) - } - Spacer(modifier = modifier.height(24.dp)) - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "수강일 예) 2024년 02월 04일", - onItemChange = { inputCompleteDates -> - completeDates.value = inputCompleteDates - }, - ) - - Spacer(modifier = modifier.height(16.dp)) - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "시작 시간 입력 예) 13시 50분", - onItemChange = { inputStartTime -> - startTime.value = inputStartTime - }, - ) - - Spacer(modifier = modifier.height(16.dp)) - - LectureDetailSettingInputTextField( - modifier = modifier.fillMaxWidth(), - placeholder = "종료 시간 입력 예) 15시 30분", - onItemChange = { inputEndTime -> - endTime.value = inputEndTime - }, - ) - - Spacer(modifier = modifier.height(80.dp)) - - BitgoeulButton( - modifier = modifier.fillMaxWidth(), - onClicked = { - if (completeDates.value.isNotEmpty() && startTime.value.isNotEmpty() && endTime.value.isNotEmpty()) { - onQuit(completeDates.value, startTime.value, endTime.value) - coroutineScope.launch { - bottomSheetState.hide() - } - } - }, - text = "적용하기", - ) - } - } - } - } -} @Composable @OptIn(ExperimentalMaterial3Api::class) From a84919ac07feed5e6899beb108455cfd6b9d42c0 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:44:30 +0900 Subject: [PATCH 09/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureSettingTag=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lecture/component/LectureSettingTag.kt | 59 ------------------- 1 file changed, 59 deletions(-) delete mode 100644 feature/lecture/src/main/java/com/msg/lecture/component/LectureSettingTag.kt diff --git a/feature/lecture/src/main/java/com/msg/lecture/component/LectureSettingTag.kt b/feature/lecture/src/main/java/com/msg/lecture/component/LectureSettingTag.kt deleted file mode 100644 index bed39dd8..00000000 --- a/feature/lecture/src/main/java/com/msg/lecture/component/LectureSettingTag.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.msg.lecture.component - -import androidx.compose.foundation.background -import androidx.compose.foundation.border -import androidx.compose.foundation.clickable -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.ripple.rememberRipple -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.unit.dp -import com.msg.design_system.theme.BitgoeulAndroidTheme - -@Composable -internal fun LectureSettingTag( - isSelected: Boolean, - onClicked: (() -> Unit)?, - modifier: Modifier = Modifier, - text: String, -) { - val interactionSource = remember { mutableStateOf(MutableInteractionSource()) } - BitgoeulAndroidTheme { colors, typography -> - Box(modifier = modifier - .clip(RoundedCornerShape(99.dp)) - .border( - width = 1.dp, - color = if (isSelected) colors.P5 else colors.G2 - , - shape = RoundedCornerShape(99.dp) - ) - .background( - color = if (isSelected) colors.P5 else colors.WHITE - , - ) - .clickable( - interactionSource = interactionSource.value, - indication = rememberRipple(bounded = false) - ) { - if (onClicked != null) { - onClicked() - } - }) { - Text( - text = text, - style = typography.bodyMedium, - color = if (isSelected) colors.WHITE else colors.G2 - , - modifier = modifier.padding(horizontal = 16.dp, vertical = 8.dp) - ) - - } - } -} \ No newline at end of file From 9604c66752f78420b05269d260dc8ebbafe870f3 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:45:56 +0900 Subject: [PATCH 10/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureViewModel=20?= =?UTF-8?q?=EA=B2=80=EC=83=89/=EA=B0=95=EC=9D=98=20=EA=B0=9C=EC=84=A4=20?= =?UTF-8?q?=ED=95=A8=EC=88=98,=20=ED=95=84=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msg/lecture/viewmodel/LectureViewModel.kt | 264 ------------------ 1 file changed, 264 deletions(-) diff --git a/feature/lecture/src/main/java/com/msg/lecture/viewmodel/LectureViewModel.kt b/feature/lecture/src/main/java/com/msg/lecture/viewmodel/LectureViewModel.kt index 96c85ff5..061dc147 100644 --- a/feature/lecture/src/main/java/com/msg/lecture/viewmodel/LectureViewModel.kt +++ b/feature/lecture/src/main/java/com/msg/lecture/viewmodel/LectureViewModel.kt @@ -1,8 +1,6 @@ package com.msg.lecture.viewmodel import android.app.Application -import androidx.compose.runtime.mutableIntStateOf -import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -14,7 +12,6 @@ import com.msg.domain.usecase.lecture.* import com.msg.model.entity.lecture.* import com.msg.model.enumdata.* import com.msg.model.model.lecture.* -import com.msg.model.param.lecture.OpenLectureParam import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow @@ -31,14 +28,8 @@ import javax.inject.Inject class LectureViewModel @Inject constructor( private val getLectureListUseCase: GetLectureListUseCase, private val getDetailLectureUseCase: GetDetailLectureUseCase, - private val openLectureUseCase: OpenLectureUseCase, private val lectureApplicationUseCase: LectureApplicationUseCase, private val lectureApplicationCancelUseCase: LectureApplicationCancelUseCase, - private val searchProfessorUseCase: SearchProfessorUseCase, - private val searchLineUseCase: SearchLineUseCase, - private val searchDepartmentUseCase: SearchDepartmentUseCase, - private val searchDivisionUseCase: SearchDivisionUseCase, - private val getLectureSignUpHistoryUseCase: GetLectureSignUpHistoryUseCase, private val getTakingLectureStudentListUseCase: GetTakingLectureStudentListUseCase, private val editLectureCourseCompletionStatusUseCase: EditLectureCourseCompletionStatusUseCase, private val downloadExcelFileUseCase: DownloadExcelFileUseCase, @@ -53,27 +44,12 @@ class LectureViewModel @Inject constructor( private val _getDetailLectureResponse = MutableStateFlow>(Event.Loading) val getDetailLectureResponse = _getDetailLectureResponse.asStateFlow() - private val _openLectureResponse = MutableStateFlow>(Event.Loading) - val openLectureResponse = _openLectureResponse.asStateFlow() - private val _lectureApplicationResponse = MutableStateFlow>(Event.Loading) val lectureApplicationResponse = _lectureApplicationResponse.asStateFlow() private val _lectureApplicationCancelResponse = MutableStateFlow>(Event.Loading) val lectureApplicationCancelResponse = _lectureApplicationCancelResponse.asStateFlow() - private val _searchProfessorResponse = MutableStateFlow>(Event.Loading) - val searchProfessorResponse = _searchProfessorResponse.asStateFlow() - - private val _searchLineResponse = MutableStateFlow>(Event.Loading) - val searchLineResponse = _searchLineResponse.asStateFlow() - - private val _searchDepartmentResponse = MutableStateFlow>(Event.Loading) - val searchDepartmentResponse = _searchDepartmentResponse.asStateFlow() - - private val _searchDivisionResponse = MutableStateFlow>(Event.Loading) - val searchDivisionResponse = _searchDivisionResponse.asStateFlow() - private val _getLectureSignUpHistoryResponse = MutableStateFlow>(Event.Loading) val getLectureSignUpHistoryResponse = _getLectureSignUpHistoryResponse.asStateFlow() @@ -173,46 +149,6 @@ class LectureViewModel @Inject constructor( ) ) - var searchProfessorData = mutableStateOf( - SearchProfessorEntity( - instructors = listOf( - Instructors( - id = UUID.randomUUID(), - authority = Authority.ROLE_ADMIN, - name = "", - organization = "" - ) - ) - ) - ) - private set - - var searchLineData = mutableStateOf( - SearchLineEntity( - lines = listOf( - "" - ) - ) - ) - private set - - var searchDepartmentData = mutableStateOf( - SearchDepartmentEntity( - departments = listOf( - "" - ) - ) - ) - private set - - var searchDivisionData = mutableStateOf( - SearchDivisionEntity( - divisions = listOf( - "" - ) - ) - ) - var lectureDetailData = mutableStateOf( DetailLectureEntity( name = "", @@ -253,54 +189,9 @@ class LectureViewModel @Inject constructor( var name = mutableStateOf("") private set - var content = mutableStateOf("") - private set - - var credit = mutableIntStateOf(1) - private set - - var maxRegisteredUser = mutableIntStateOf(0) - private set - - var semester = mutableStateOf("") - private set - - var division = mutableStateOf("") - private set - - var department = mutableStateOf("") - private set - var line = mutableStateOf("") private set - var userId = mutableStateOf(UUID.randomUUID()) - private set - - var lectureType = mutableStateOf("") - private set - - var startDate = mutableStateOf(null) - private set - - var endDate = mutableStateOf(null) - private set - - var completeDate = mutableStateOf(null) - private set - - var startTime = mutableStateOf(null) - private set - - var endTime = mutableStateOf(null) - private set - - var lectureDates = mutableStateListOf() - private set - - var essentialComplete = mutableStateOf(false) - private set - internal fun getLectureList( page: Int, size: Int, @@ -337,78 +228,6 @@ class LectureViewModel @Inject constructor( } } - internal fun openLecture( - name: String, - content: String, - semester: String, - division: String, - department: String, - line: String, - userId: UUID, - startDate: LocalDateTime, - endDate: LocalDateTime, - lectureType: String, - credit: Int, - maxRegisteredUser: Int, - essentialComplete: Boolean, - ) = viewModelScope.launch { - openLectureUseCase( - OpenLectureParam( - name = name, - content = content, - semester = semester, - division = division, - department = department, - line = line, - userId = userId, - startDate = startDate, - endDate = endDate, - lectureDates = lectureDates, - lectureType = lectureType, - credit = credit, - maxRegisteredUser = maxRegisteredUser, - essentialComplete = essentialComplete, - address = "", - locationDetails = "" - ) - ).onSuccess { - it.catch { remoteError -> - _openLectureResponse.value = remoteError.errorHandling() - }.collect { - _openLectureResponse.value = Event.Success() - } - }.onFailure { error -> - _openLectureResponse.value = error.errorHandling() - } - } - - internal fun addLectureDates() { - if (completeDate.value != null || startTime.value != null || endTime.value != null) { - lectureDates.add( - LectureDates( - completeDate = completeDate.value!!, - startTime = startTime.value!!, - endTime = endTime.value!! - ) - ) - completeDate.value = null - startTime.value = null - endTime.value = null - } - } - - internal fun saveLectureDatesList() { - lectureDates.forEachIndexed { index, _ -> - if (lectureDates.isEmpty()) lectureDates.removeAt(index) - } - } - - internal fun removeLectureDates() { - if (lectureDates.isNotEmpty()) { - lectureDates.removeAt(lectureDates.size - 1) - } - } - internal fun lectureApplication( id: UUID, ) = viewModelScope.launch { @@ -441,89 +260,6 @@ class LectureViewModel @Inject constructor( } } - internal fun searchProfessor( - keyword: String, - ) = viewModelScope.launch { - searchProfessorUseCase( - keyword = keyword - ).onSuccess { - it.catch { remoteError -> - _searchProfessorResponse.value = remoteError.errorHandling() - }.collect { response -> - _searchProfessorResponse.value = Event.Success(data = response) - } - }.onFailure { error -> - _searchProfessorResponse.value = error.errorHandling() - } - } - - internal fun searchLine( - keyword: String, - division: String, - ) = viewModelScope.launch { - searchLineUseCase( - keyword = keyword, - division = division - ).onSuccess { - it.catch { remoteError -> - _searchLineResponse.value = remoteError.errorHandling() - }.collect { response -> - _searchLineResponse.value = Event.Success(data = response) - } - }.onFailure { error -> - _searchLineResponse.value = error.errorHandling() - - } - } - - internal fun searchDepartment( - keyword: String, - ) = viewModelScope.launch { - searchDepartmentUseCase( - keyword = keyword, - ).onSuccess { - it.catch { remoteError -> - _searchDepartmentResponse.value = remoteError.errorHandling() - }.collect { response -> - _searchDepartmentResponse.value = Event.Success(data = response) - } - }.onFailure { error -> - _searchDepartmentResponse.value = error.errorHandling() - } - } - - internal fun searchDivision( - keyword: String, - ) = viewModelScope.launch { - searchDivisionUseCase( - keyword = keyword, - ).onSuccess { - it.catch { remoteError -> - _searchDivisionResponse.value = remoteError.errorHandling() - }.collect { response -> - _searchDivisionResponse.value = Event.Success(data = response) - } - }.onFailure { error -> - _searchDivisionResponse.value = error.errorHandling() - } - } - - internal fun getLectureSignUpHistory( - studentId: UUID, - ) = viewModelScope.launch { - getLectureSignUpHistoryUseCase( - studentId = studentId - ).onSuccess { - it.catch { remoteError -> - _getLectureSignUpHistoryResponse.value = remoteError.errorHandling() - }.collect { response -> - _getLectureSignUpHistoryResponse.value = Event.Success(data = response) - } - }.onFailure { error -> - _getLectureSignUpHistoryResponse.value = error.errorHandling() - } - } - internal fun getTakingLectureStudentList() = viewModelScope.launch { getTakingLectureStudentListUseCase( id = selectedLectureId.value From baf56a33a04573d95784d7634e8e4c0062be15d4 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:46:17 +0900 Subject: [PATCH 11/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureNavigation=20?= =?UTF-8?q?=EC=84=B8=EB=B6=80=20=EC=84=A4=EC=A0=95,=20=EA=B0=95=EC=9D=98?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A4=20Screen=20Navigation=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lecture/navigation/LectureNavigation.kt | 42 ------------------- 1 file changed, 42 deletions(-) diff --git a/feature/lecture/src/main/java/com/msg/lecture/navigation/LectureNavigation.kt b/feature/lecture/src/main/java/com/msg/lecture/navigation/LectureNavigation.kt index 08e30d3f..09051f24 100644 --- a/feature/lecture/src/main/java/com/msg/lecture/navigation/LectureNavigation.kt +++ b/feature/lecture/src/main/java/com/msg/lecture/navigation/LectureNavigation.kt @@ -5,19 +5,13 @@ import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptions import androidx.navigation.compose.composable import com.msg.lecture.LectureDetailRoute -import com.msg.lecture.LectureDetailSettingRoute import com.msg.lecture.LectureListRoute -import com.msg.lecture.LectureOpenRoute import com.msg.lecture.LectureTakingStudentListRoute const val lectureListRoute = "lecture_list_route" const val lectureDetailRoute = "lecture_detail_route" -const val lectureDetailSettingRoute = "lecture_detail_setting_route" - -const val lectureOpenRoute = "lecture_open_route" - const val lectureTakingStudentListRoute = "lecture_taking_student_list_route" fun NavController.navigateToLecture(navOptions: NavOptions? = null) { this.navigate(lectureListRoute, navOptions) @@ -27,25 +21,15 @@ fun NavController.navigateToLectureDetail(navOptions: NavOptions? = null) { this.navigate(lectureDetailRoute, navOptions) } -fun NavController.navigateToLectureOpen(navOptions: NavOptions? = null) { - this.navigate(lectureOpenRoute, navOptions) -} - -fun NavController.navigateToLectureDetailSetting(navOptions: NavOptions? = null) { - this.navigate(lectureDetailSettingRoute, navOptions) -} - fun NavController.navigateToLectureTakingStudentList(navOptions: NavOptions? = null) { this.navigate(lectureTakingStudentListRoute, navOptions) } fun NavGraphBuilder.lectureListScreen( - onOpenClicked: () -> Unit, onItemClicked: () -> Unit, ) { composable(route = lectureListRoute) { LectureListRoute( - onOpenClicked = onOpenClicked, onItemClicked = onItemClicked, ) } @@ -63,32 +47,6 @@ fun NavGraphBuilder.lectureDetailScreen( } } -fun NavGraphBuilder.lectureOpenScreen( - onActionClicked: () -> Unit, - onSettingClicked: () -> Unit, - onBackClicked: () -> Unit, -) { - composable(route = lectureOpenRoute) { - LectureOpenRoute( - onActionClicked = onActionClicked, - onSettingClicked = onSettingClicked, - onBackClicked = onBackClicked, - ) - } -} - -fun NavGraphBuilder.lectureDetailSettingScreen( - onCloseClicked: () -> Unit, - onApplyClicked: () -> Unit, -) { - composable(route = lectureDetailSettingRoute) { - LectureDetailSettingRoute( - onCloseClicked = onCloseClicked, - onApplyClicked = onApplyClicked, - ) - } -} - fun NavGraphBuilder.lectureTakingStudentListScreen( onBackClicked: () -> Unit, ) { From db91c84bb050241b7f7233ca8e7f58a15c9565c1 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:53:15 +0900 Subject: [PATCH 12/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureListScreen=20?= =?UTF-8?q?=EA=B0=95=EC=9D=98=20=EA=B0=9C=EC=84=A4=20=EB=B2=84=ED=8A=BC,?= =?UTF-8?q?=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/msg/lecture/LectureListScreen.kt | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/feature/lecture/src/main/java/com/msg/lecture/LectureListScreen.kt b/feature/lecture/src/main/java/com/msg/lecture/LectureListScreen.kt index 09f369b9..6b362c0b 100644 --- a/feature/lecture/src/main/java/com/msg/lecture/LectureListScreen.kt +++ b/feature/lecture/src/main/java/com/msg/lecture/LectureListScreen.kt @@ -42,7 +42,6 @@ import java.util.UUID @Composable internal fun LectureListRoute( - onOpenClicked: () -> Unit, onItemClicked: () -> Unit, viewModel: LectureViewModel = hiltViewModel(LocalContext.current as ComponentActivity), ) { @@ -64,7 +63,6 @@ internal fun LectureListRoute( } LectureListScreen( data = viewModel.lectureList.value, - onOpenClicked = onOpenClicked, onItemClicked = { id -> viewModel.selectedLectureId.value = id viewModel.getDetailLecture(id) @@ -132,7 +130,6 @@ private suspend fun getLectureList( internal fun LectureListScreen( modifier: Modifier = Modifier, data: LectureListEntity? = null, - onOpenClicked: () -> Unit, onItemClicked: (UUID) -> Unit, onFilterChanged: (type: String?) -> Unit, role: String, @@ -169,17 +166,6 @@ internal fun LectureListScreen( Spacer(modifier = modifier.weight(1f)) - if (role == "ROLE_ADMIN") { - IconButton( - onClick = onOpenClicked, - modifier = modifier.padding(top = 4.dp), - content = { PlusIcon() } - ) - - Spacer(modifier = modifier.width(24.dp)) - - } - FilterIcon( modifier = modifier .padding(end = 8.dp) @@ -310,7 +296,6 @@ private fun LectureListScreenPre() { LectureListScreen( data = initialLectureList, - onOpenClicked = {}, onItemClicked = {}, onFilterChanged = { type -> }, role = "ROLE_ADMIN" From f5efb37a33d0a054d47f38e5440bd221b786e207 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:54:12 +0900 Subject: [PATCH 13/25] =?UTF-8?q?=F0=9F=94=A5::=20OpenLectureRequest=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/lecture/OpenLectureRequest.kt | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 core/network/src/main/java/com/msg/network/request/lecture/OpenLectureRequest.kt diff --git a/core/network/src/main/java/com/msg/network/request/lecture/OpenLectureRequest.kt b/core/network/src/main/java/com/msg/network/request/lecture/OpenLectureRequest.kt deleted file mode 100644 index cedeb980..00000000 --- a/core/network/src/main/java/com/msg/network/request/lecture/OpenLectureRequest.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.msg.network.request.lecture - -import com.msg.model.model.lecture.LectureDates -import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass -import java.time.LocalDateTime -import java.util.UUID - -@JsonClass(generateAdapter = true) -data class OpenLectureRequest( - @Json(name = "name") val name: String, - @Json(name = "content") val content: String, - @Json(name = "semester") val semester: String, - @Json(name = "division") val division: String, - @Json(name = "department") val department: String, - @Json(name = "line") val line: String, - @Json(name = "userId") val userId: UUID, - @Json(name = "startDate") val startDate: LocalDateTime, - @Json(name = "endDate") val endDate: LocalDateTime, - @Json(name = "lectureDates") val lectureDates: List, - @Json(name = "lectureType") val lectureType: String, - @Json(name = "credit") val credit: Int, - @Json(name = "maxRegisteredUser") val maxRegisteredUser: Int, - @Json(name = "address") val address: String, - @Json(name = "locationDetails") val locationDetails: String, - @Json(name = "essentialComplete") val essentialComplete: Boolean, -) \ No newline at end of file From fc1320a8c15ad586453d4b4d8322d9a55a33e986 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:54:35 +0900 Subject: [PATCH 14/25] =?UTF-8?q?=F0=9F=94=A5::=20Search=20API=20Response?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lecture/SearchDepartmentResponse.kt | 9 --------- .../response/lecture/SearchDivisionResponse.kt | 9 --------- .../response/lecture/SearchLineResponse.kt | 9 --------- .../lecture/SearchProfessorResponse.kt | 18 ------------------ 4 files changed, 45 deletions(-) delete mode 100644 core/network/src/main/java/com/msg/network/response/lecture/SearchDepartmentResponse.kt delete mode 100644 core/network/src/main/java/com/msg/network/response/lecture/SearchDivisionResponse.kt delete mode 100644 core/network/src/main/java/com/msg/network/response/lecture/SearchLineResponse.kt delete mode 100644 core/network/src/main/java/com/msg/network/response/lecture/SearchProfessorResponse.kt diff --git a/core/network/src/main/java/com/msg/network/response/lecture/SearchDepartmentResponse.kt b/core/network/src/main/java/com/msg/network/response/lecture/SearchDepartmentResponse.kt deleted file mode 100644 index 9f473fe4..00000000 --- a/core/network/src/main/java/com/msg/network/response/lecture/SearchDepartmentResponse.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.msg.network.response.lecture - -import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass - -@JsonClass(generateAdapter = true) -data class SearchDepartmentResponse( - @Json(name = "departments") val departments: List, -) \ No newline at end of file diff --git a/core/network/src/main/java/com/msg/network/response/lecture/SearchDivisionResponse.kt b/core/network/src/main/java/com/msg/network/response/lecture/SearchDivisionResponse.kt deleted file mode 100644 index 128aeed4..00000000 --- a/core/network/src/main/java/com/msg/network/response/lecture/SearchDivisionResponse.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.msg.network.response.lecture - -import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass - -@JsonClass(generateAdapter = true) -data class SearchDivisionResponse( - @Json(name = "divisions") val divisions: List, -) \ No newline at end of file diff --git a/core/network/src/main/java/com/msg/network/response/lecture/SearchLineResponse.kt b/core/network/src/main/java/com/msg/network/response/lecture/SearchLineResponse.kt deleted file mode 100644 index 0a175f10..00000000 --- a/core/network/src/main/java/com/msg/network/response/lecture/SearchLineResponse.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.msg.network.response.lecture - -import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass - -@JsonClass(generateAdapter = true) -data class SearchLineResponse( - @Json(name = "lines") val lines: List, -) \ No newline at end of file diff --git a/core/network/src/main/java/com/msg/network/response/lecture/SearchProfessorResponse.kt b/core/network/src/main/java/com/msg/network/response/lecture/SearchProfessorResponse.kt deleted file mode 100644 index 822623b9..00000000 --- a/core/network/src/main/java/com/msg/network/response/lecture/SearchProfessorResponse.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.msg.network.response.lecture - -import com.msg.model.enumdata.Authority -import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass -import java.util.UUID - -@JsonClass(generateAdapter = true) -data class SearchProfessorResponse( - @Json(name = "instructors") var instructors: List, -) { - data class Instructors( - @Json(name = "id") val id: UUID, - @Json(name = "name") val name: String, - @Json(name = "organization") val organization: String, - @Json(name = "authority") val authority: Authority, - ) -} \ No newline at end of file From 77dca38ac423712f6a2c849eee8787fb91638ff8 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:55:08 +0900 Subject: [PATCH 15/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureAPI=20=EA=B2=80?= =?UTF-8?q?=EC=83=89,=20=EA=B0=9C=EC=84=A4=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/msg/network/api/LectureAPI.kt | 43 +++---------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/core/network/src/main/java/com/msg/network/api/LectureAPI.kt b/core/network/src/main/java/com/msg/network/api/LectureAPI.kt index 037aabe5..710046d2 100644 --- a/core/network/src/main/java/com/msg/network/api/LectureAPI.kt +++ b/core/network/src/main/java/com/msg/network/api/LectureAPI.kt @@ -1,15 +1,11 @@ package com.msg.network.api -import com.msg.network.request.lecture.OpenLectureRequest +// import com.msg.network.request.lecture.OpenLectureRequest import com.msg.network.response.lecture.DetailLectureResponse import com.msg.network.response.lecture.DownloadExcelFileResponse import com.msg.network.response.lecture.GetLectureSignUpHistoryResponse import com.msg.network.response.lecture.GetTakingLectureStudentListResponse import com.msg.network.response.lecture.LectureListResponse -import com.msg.network.response.lecture.SearchDepartmentResponse -import com.msg.network.response.lecture.SearchDivisionResponse -import com.msg.network.response.lecture.SearchLineResponse -import com.msg.network.response.lecture.SearchProfessorResponse import retrofit2.http.Body import retrofit2.http.DELETE import retrofit2.http.GET @@ -20,11 +16,6 @@ import retrofit2.http.Query import java.util.UUID interface LectureAPI { - @POST("lecture") - suspend fun openLecture( - @Body body: OpenLectureRequest, - ) - @GET("lecture") suspend fun getLectureList( @Query("page") page: Int, @@ -37,11 +28,11 @@ interface LectureAPI { @Path("id") id: UUID, ): DetailLectureResponse - @PATCH("lecture/{id}") - suspend fun patchLecture( - @Path("id") id: UUID, - @Body body: OpenLectureRequest - ) +// @PATCH("lecture/{id}") +// suspend fun patchLecture( +// @Path("id") id: UUID, +// @Body body: OpenLectureRequest +// ) @POST("lecture/{id}") suspend fun lectureApplication( @@ -53,28 +44,6 @@ interface LectureAPI { @Path("id") id: UUID, ) - @GET("lecture/instructor") - suspend fun searchProfessor( - @Query("keyword") keyword: String, - ): SearchProfessorResponse - - - @GET("lecture/line") - suspend fun searchLine( - @Query("keyword") keyword: String, - @Query("division") division: String, - ): SearchLineResponse - - @GET("lecture/department") - suspend fun searchDepartment( - @Query("keyword") keyword: String, - ): SearchDepartmentResponse - - @GET("lecture/division") - suspend fun searchDivision( - @Query("keyword") keyword: String, - ): SearchDivisionResponse - @GET("lecture/{student_id}}/signup") suspend fun getLectureSignUpHistory( @Path("student_id") studentId: UUID, From 84fbe54c1dd9b8ca7bdf70211b7e113d8f98a3a3 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:55:19 +0900 Subject: [PATCH 16/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureDataSource=20?= =?UTF-8?q?=EA=B2=80=EC=83=89,=20=EA=B0=9C=EC=84=A4=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/lecture/LectureDataSource.kt | 9 ++------ .../lecture/LectureDataSourceImpl.kt | 21 +++---------------- 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSource.kt b/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSource.kt index 5a8c2438..788a49a8 100644 --- a/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSource.kt +++ b/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSource.kt @@ -1,21 +1,16 @@ package com.msg.network.datasource.lecture import com.msg.network.response.lecture.* -import com.msg.network.request.lecture.OpenLectureRequest +// import com.msg.network.request.lecture.OpenLectureRequest import kotlinx.coroutines.flow.Flow import java.util.UUID interface LectureDataSource { - fun openLecture(body: OpenLectureRequest): Flow fun getLectureList(page: Int, size: Int, type: String?): Flow fun getDetailLecture(id: UUID): Flow - fun patchLecture(id: UUID, body: OpenLectureRequest): Flow + // fun patchLecture(id: UUID, body: OpenLectureRequest): Flow fun lectureApplication(id: UUID): Flow fun lectureApplicationCancel(id: UUID): Flow - fun searchProfessor(keyword: String): Flow - fun searchLine(keyword: String, division: String): Flow - fun searchDepartment(keyword: String): Flow - fun searchDivision(keyword: String): Flow fun getLectureSignUpHistory(studentId: UUID): Flow fun getTakingLectureStudentList(id: UUID): Flow fun editLectureCourseCompletionStatus(id: UUID, studentId: UUID, isComplete: Boolean): Flow diff --git a/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSourceImpl.kt b/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSourceImpl.kt index 6dac41b9..f0307b26 100644 --- a/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSourceImpl.kt +++ b/core/network/src/main/java/com/msg/network/datasource/lecture/LectureDataSourceImpl.kt @@ -2,7 +2,7 @@ package com.msg.network.datasource.lecture import com.msg.network.response.lecture.* import com.msg.network.api.LectureAPI -import com.msg.network.request.lecture.OpenLectureRequest +// import com.msg.network.request.lecture.OpenLectureRequest import com.msg.network.util.makeRequest import kotlinx.coroutines.flow.Flow import java.util.UUID @@ -11,17 +11,14 @@ import javax.inject.Inject class LectureDataSourceImpl @Inject constructor( private val lectureAPI: LectureAPI, ) : LectureDataSource { - override fun openLecture(body: OpenLectureRequest): Flow = - makeRequest { lectureAPI.openLecture(body) } - override fun getLectureList(page: Int, size: Int, type: String?): Flow = makeRequest { lectureAPI.getLectureList(page, size, type) } override fun getDetailLecture(id: UUID): Flow = makeRequest { lectureAPI.getDetailLecture(id) } - override fun patchLecture(id: UUID, body: OpenLectureRequest): Flow = - makeRequest { lectureAPI.patchLecture(id = id, body = body) } +// override fun patchLecture(id: UUID, body: OpenLectureRequest): Flow = +// makeRequest { lectureAPI.patchLecture(id = id, body = body) } override fun lectureApplication(id: UUID): Flow = makeRequest { lectureAPI.lectureApplication(id) } @@ -29,18 +26,6 @@ class LectureDataSourceImpl @Inject constructor( override fun lectureApplicationCancel(id: UUID): Flow = makeRequest { lectureAPI.lectureApplicationCancel(id) } - override fun searchProfessor(keyword: String): Flow = - makeRequest { lectureAPI.searchProfessor(keyword) } - - override fun searchLine(keyword: String, division: String): Flow = - makeRequest { lectureAPI.searchLine(keyword, division) } - - override fun searchDepartment(keyword: String): Flow = - makeRequest { lectureAPI.searchDepartment(keyword) } - - override fun searchDivision(keyword: String): Flow = - makeRequest { lectureAPI.searchDivision(keyword) } - override fun getLectureSignUpHistory(studentId: UUID): Flow = makeRequest { lectureAPI.getLectureSignUpHistory(studentId) } From f58265aa4da74be9a8f29956f992b2cb41f49d7a Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:55:38 +0900 Subject: [PATCH 17/25] =?UTF-8?q?=F0=9F=94=A5::=20Search=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20API=20Entity=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/lecture/SearchDepartmentEntity.kt | 5 ----- .../model/entity/lecture/SearchDivisionEntity.kt | 5 ----- .../msg/model/entity/lecture/SearchLineEntity.kt | 5 ----- .../model/entity/lecture/SearchProfessorEntity.kt | 15 --------------- 4 files changed, 30 deletions(-) delete mode 100644 core/model/src/main/java/com/msg/model/entity/lecture/SearchDepartmentEntity.kt delete mode 100644 core/model/src/main/java/com/msg/model/entity/lecture/SearchDivisionEntity.kt delete mode 100644 core/model/src/main/java/com/msg/model/entity/lecture/SearchLineEntity.kt delete mode 100644 core/model/src/main/java/com/msg/model/entity/lecture/SearchProfessorEntity.kt diff --git a/core/model/src/main/java/com/msg/model/entity/lecture/SearchDepartmentEntity.kt b/core/model/src/main/java/com/msg/model/entity/lecture/SearchDepartmentEntity.kt deleted file mode 100644 index 196650c7..00000000 --- a/core/model/src/main/java/com/msg/model/entity/lecture/SearchDepartmentEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.msg.model.entity.lecture - -data class SearchDepartmentEntity( - val departments: List -) diff --git a/core/model/src/main/java/com/msg/model/entity/lecture/SearchDivisionEntity.kt b/core/model/src/main/java/com/msg/model/entity/lecture/SearchDivisionEntity.kt deleted file mode 100644 index b46826d6..00000000 --- a/core/model/src/main/java/com/msg/model/entity/lecture/SearchDivisionEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.msg.model.entity.lecture - -data class SearchDivisionEntity( - val divisions: List, -) diff --git a/core/model/src/main/java/com/msg/model/entity/lecture/SearchLineEntity.kt b/core/model/src/main/java/com/msg/model/entity/lecture/SearchLineEntity.kt deleted file mode 100644 index 21114bdf..00000000 --- a/core/model/src/main/java/com/msg/model/entity/lecture/SearchLineEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.msg.model.entity.lecture - -data class SearchLineEntity( - val lines: List -) diff --git a/core/model/src/main/java/com/msg/model/entity/lecture/SearchProfessorEntity.kt b/core/model/src/main/java/com/msg/model/entity/lecture/SearchProfessorEntity.kt deleted file mode 100644 index 6606581d..00000000 --- a/core/model/src/main/java/com/msg/model/entity/lecture/SearchProfessorEntity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.msg.model.entity.lecture - -import com.msg.model.enumdata.Authority -import java.util.UUID - -data class SearchProfessorEntity( - var instructors: List -) - -data class Instructors( - val id: UUID, - val name: String, - val organization: String, - val authority: Authority, -) From 030d4b4379ff3421a9ff640ec5d1d5925b402d3a Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:55:46 +0900 Subject: [PATCH 18/25] =?UTF-8?q?=F0=9F=94=A5::=20=EA=B0=95=EC=9D=98=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A4=20Param=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/param/lecture/OpenLectureParam.kt | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 core/model/src/main/java/com/msg/model/param/lecture/OpenLectureParam.kt diff --git a/core/model/src/main/java/com/msg/model/param/lecture/OpenLectureParam.kt b/core/model/src/main/java/com/msg/model/param/lecture/OpenLectureParam.kt deleted file mode 100644 index 16aff099..00000000 --- a/core/model/src/main/java/com/msg/model/param/lecture/OpenLectureParam.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.msg.model.param.lecture - -import com.msg.model.model.lecture.LectureDates -import java.time.LocalDateTime -import java.util.UUID - - -data class OpenLectureParam( - val name: String, - val content: String, - val semester: String, - val division: String, - val department: String, - val line: String, - val userId: UUID, - val startDate: LocalDateTime, - val endDate: LocalDateTime, - val lectureDates: List, - val lectureType: String, - val credit: Int, - val address: String, - val locationDetails: String, - val maxRegisteredUser: Int, - val essentialComplete: Boolean, -) From 273695974d310be3c214fd4d38cf8e009a112cd6 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:55:59 +0900 Subject: [PATCH 19/25] =?UTF-8?q?=F0=9F=94=A5::=20Search=20API=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20UseCase=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../usecase/lecture/SearchDepartmentUseCase.kt | 12 ------------ .../domain/usecase/lecture/SearchDivisionUseCase.kt | 12 ------------ .../msg/domain/usecase/lecture/SearchLineUseCase.kt | 12 ------------ .../domain/usecase/lecture/SearchProfessorUseCase.kt | 12 ------------ 4 files changed, 48 deletions(-) delete mode 100644 core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDepartmentUseCase.kt delete mode 100644 core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDivisionUseCase.kt delete mode 100644 core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchLineUseCase.kt delete mode 100644 core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchProfessorUseCase.kt diff --git a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDepartmentUseCase.kt b/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDepartmentUseCase.kt deleted file mode 100644 index e3b2b7ee..00000000 --- a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDepartmentUseCase.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.msg.domain.usecase.lecture - -import com.msg.data.repository.lecture.LectureRepository -import javax.inject.Inject - -class SearchDepartmentUseCase @Inject constructor( - private val lectureRepository: LectureRepository, -) { - suspend operator fun invoke(keyword: String) = runCatching { - lectureRepository.searchDepartment(keyword = keyword) - } -} \ No newline at end of file diff --git a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDivisionUseCase.kt b/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDivisionUseCase.kt deleted file mode 100644 index 2144aba8..00000000 --- a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchDivisionUseCase.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.msg.domain.usecase.lecture - -import com.msg.data.repository.lecture.LectureRepository -import javax.inject.Inject - -class SearchDivisionUseCase @Inject constructor( - private val lectureRepository: LectureRepository -) { - suspend operator fun invoke(keyword: String) = runCatching { - lectureRepository.searchDivision(keyword = keyword) - } -} \ No newline at end of file diff --git a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchLineUseCase.kt b/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchLineUseCase.kt deleted file mode 100644 index 3d3723a7..00000000 --- a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchLineUseCase.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.msg.domain.usecase.lecture - -import com.msg.data.repository.lecture.LectureRepository -import javax.inject.Inject - -class SearchLineUseCase @Inject constructor( - private val lectureRepository: LectureRepository, -) { - suspend operator fun invoke(keyword: String, division: String) = runCatching { - lectureRepository.searchLine(keyword = keyword, division = division) - } -} diff --git a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchProfessorUseCase.kt b/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchProfessorUseCase.kt deleted file mode 100644 index f2af50b4..00000000 --- a/core/domain/src/main/java/com/msg/domain/usecase/lecture/SearchProfessorUseCase.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.msg.domain.usecase.lecture - -import com.msg.data.repository.lecture.LectureRepository -import javax.inject.Inject - -class SearchProfessorUseCase @Inject constructor( - private val lectureRepository: LectureRepository, -) { - suspend operator fun invoke(keyword: String) = runCatching { - lectureRepository.searchProfessor(keyword = keyword) - } -} From 19d12a39ab48e59eeebd95a0354af99bf2476479 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:56:08 +0900 Subject: [PATCH 20/25] =?UTF-8?q?=F0=9F=94=A5::=20=EA=B0=95=EC=9D=98=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A4=20UseCase=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/usecase/lecture/OpenLectureUseCase.kt | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 core/domain/src/main/java/com/msg/domain/usecase/lecture/OpenLectureUseCase.kt diff --git a/core/domain/src/main/java/com/msg/domain/usecase/lecture/OpenLectureUseCase.kt b/core/domain/src/main/java/com/msg/domain/usecase/lecture/OpenLectureUseCase.kt deleted file mode 100644 index 1096a00f..00000000 --- a/core/domain/src/main/java/com/msg/domain/usecase/lecture/OpenLectureUseCase.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.msg.domain.usecase.lecture - -import com.msg.data.repository.lecture.LectureRepository -import com.msg.model.param.lecture.OpenLectureParam -import javax.inject.Inject - -class OpenLectureUseCase @Inject constructor( - private val lectureRepository: LectureRepository, -) { - suspend operator fun invoke(body: OpenLectureParam) = runCatching { - lectureRepository.openLecture(body = body) - } -} \ No newline at end of file From 887bcf02c20d3fb6c6babccf446249e298a5410c Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:56:43 +0900 Subject: [PATCH 21/25] =?UTF-8?q?=F0=9F=94=A5::=20=EA=B0=95=EC=9D=98=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A4=20Mapper=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/mapper/lecture/OpenLectureMapper.kt | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 core/data/src/main/java/com/msg/data/mapper/lecture/OpenLectureMapper.kt diff --git a/core/data/src/main/java/com/msg/data/mapper/lecture/OpenLectureMapper.kt b/core/data/src/main/java/com/msg/data/mapper/lecture/OpenLectureMapper.kt deleted file mode 100644 index d31f3c27..00000000 --- a/core/data/src/main/java/com/msg/data/mapper/lecture/OpenLectureMapper.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.msg.data.mapper.lecture - -import com.msg.model.param.lecture.OpenLectureParam -import com.msg.network.request.lecture.OpenLectureRequest - -fun OpenLectureParam.toRequest() = OpenLectureRequest( - name = name, - content = content, - semester = semester, - division = division, - department = department, - line = line, - userId = userId, - startDate = startDate, - endDate = endDate, - lectureDates = lectureDates, - lectureType = lectureType, - credit = credit, - address = address, - locationDetails = locationDetails, - maxRegisteredUser = maxRegisteredUser, - essentialComplete = essentialComplete, -) \ No newline at end of file From a0507df119073024f0dbb8cb44d64cb1ad5b48f3 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:56:55 +0900 Subject: [PATCH 22/25] =?UTF-8?q?=F0=9F=94=A5::=20Search=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20API=20Mapper=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/lecture/SearchDepartmentMapper.kt | 8 -------- .../data/mapper/lecture/SearchDivisionMapper.kt | 8 -------- .../msg/data/mapper/lecture/SearchLineMapper.kt | 8 -------- .../data/mapper/lecture/SearchProfessorMapper.kt | 16 ---------------- 4 files changed, 40 deletions(-) delete mode 100644 core/data/src/main/java/com/msg/data/mapper/lecture/SearchDepartmentMapper.kt delete mode 100644 core/data/src/main/java/com/msg/data/mapper/lecture/SearchDivisionMapper.kt delete mode 100644 core/data/src/main/java/com/msg/data/mapper/lecture/SearchLineMapper.kt delete mode 100644 core/data/src/main/java/com/msg/data/mapper/lecture/SearchProfessorMapper.kt diff --git a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchDepartmentMapper.kt b/core/data/src/main/java/com/msg/data/mapper/lecture/SearchDepartmentMapper.kt deleted file mode 100644 index 50a5a3a0..00000000 --- a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchDepartmentMapper.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.msg.data.mapper.lecture - -import com.msg.model.entity.lecture.SearchDepartmentEntity -import com.msg.network.response.lecture.SearchDepartmentResponse - -fun SearchDepartmentResponse.toEntity() = SearchDepartmentEntity( - departments = departments -) \ No newline at end of file diff --git a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchDivisionMapper.kt b/core/data/src/main/java/com/msg/data/mapper/lecture/SearchDivisionMapper.kt deleted file mode 100644 index 21612b09..00000000 --- a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchDivisionMapper.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.msg.data.mapper.lecture - -import com.msg.model.entity.lecture.SearchDivisionEntity -import com.msg.network.response.lecture.SearchDivisionResponse - -fun SearchDivisionResponse.toEntity() = SearchDivisionEntity( - divisions = divisions -) \ No newline at end of file diff --git a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchLineMapper.kt b/core/data/src/main/java/com/msg/data/mapper/lecture/SearchLineMapper.kt deleted file mode 100644 index 7eb47adf..00000000 --- a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchLineMapper.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.msg.data.mapper.lecture - -import com.msg.model.entity.lecture.SearchLineEntity -import com.msg.network.response.lecture.SearchLineResponse - -fun SearchLineResponse.toEntity() = SearchLineEntity( - lines = lines -) \ No newline at end of file diff --git a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchProfessorMapper.kt b/core/data/src/main/java/com/msg/data/mapper/lecture/SearchProfessorMapper.kt deleted file mode 100644 index 87e376fd..00000000 --- a/core/data/src/main/java/com/msg/data/mapper/lecture/SearchProfessorMapper.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.msg.data.mapper.lecture - -import com.msg.model.entity.lecture.SearchProfessorEntity -import com.msg.network.response.lecture.SearchProfessorResponse -import com.msg.model.entity.lecture.Instructors as DomainInstructors - -fun SearchProfessorResponse.Instructors.toDomainInstructor() = DomainInstructors( - id = id, - name = name, - organization = organization, - authority = authority, -) - -fun SearchProfessorResponse.toEntity() = SearchProfessorEntity( - instructors = instructors.map { it.toDomainInstructor() } -) \ No newline at end of file From bd03f1f7443a9115e1f387fb54e5d112f84ddc65 Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:57:18 +0900 Subject: [PATCH 23/25] =?UTF-8?q?=F0=9F=94=A5::=20LectureRepository=20?= =?UTF-8?q?=EA=B0=95=EC=9D=98=20=EA=B0=9C=EC=84=A4,=20Search=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/lecture/LectureRepository.kt | 13 +--- .../lecture/LectureRepositoryImpl.kt | 59 +++---------------- 2 files changed, 10 insertions(+), 62 deletions(-) diff --git a/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepository.kt b/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepository.kt index c10ec4d9..694f3708 100644 --- a/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepository.kt +++ b/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepository.kt @@ -5,25 +5,16 @@ import com.msg.model.entity.lecture.DownloadExcelFileEntity import com.msg.model.entity.lecture.GetLectureSignUpHistoryEntity import com.msg.model.entity.lecture.GetTakingLectureStudentListEntity import com.msg.model.entity.lecture.LectureListEntity -import com.msg.model.entity.lecture.SearchDepartmentEntity -import com.msg.model.entity.lecture.SearchDivisionEntity -import com.msg.model.entity.lecture.SearchLineEntity -import com.msg.model.entity.lecture.SearchProfessorEntity -import com.msg.model.param.lecture.OpenLectureParam +// import com.msg.model.param.lecture.OpenLectureParam import kotlinx.coroutines.flow.Flow import java.util.UUID interface LectureRepository { - fun openLecture(body: OpenLectureParam): Flow fun getLectureList(page: Int, size: Int, type: String?): Flow fun getDetailLecture(id: UUID): Flow - fun patchLecture(id: UUID, body: OpenLectureParam): Flow + // fun patchLecture(id: UUID, body: OpenLectureParam): Flow fun lectureApplication(id: UUID): Flow fun lectureApplicationCancel(id: UUID): Flow - fun searchProfessor(keyword: String): Flow - fun searchLine(keyword: String, division: String): Flow - fun searchDepartment(keyword: String): Flow - fun searchDivision(keyword: String): Flow fun getLectureSignUpHistory(studentId: UUID): Flow fun getTakingLectureStudentList(id: UUID): Flow fun editLectureCourseCompletionStatus(id: UUID, studentId: UUID, isComplete: Boolean): Flow diff --git a/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepositoryImpl.kt b/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepositoryImpl.kt index de90cf3c..bfce1568 100644 --- a/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepositoryImpl.kt +++ b/core/data/src/main/java/com/msg/data/repository/lecture/LectureRepositoryImpl.kt @@ -1,17 +1,13 @@ package com.msg.data.repository.lecture import com.msg.data.mapper.lecture.toEntity -import com.msg.data.mapper.lecture.toRequest +// import com.msg.data.mapper.lecture.toRequest import com.msg.model.entity.lecture.DetailLectureEntity import com.msg.model.entity.lecture.DownloadExcelFileEntity import com.msg.model.entity.lecture.GetLectureSignUpHistoryEntity import com.msg.model.entity.lecture.GetTakingLectureStudentListEntity import com.msg.model.entity.lecture.LectureListEntity -import com.msg.model.entity.lecture.SearchDepartmentEntity -import com.msg.model.entity.lecture.SearchDivisionEntity -import com.msg.model.entity.lecture.SearchLineEntity -import com.msg.model.entity.lecture.SearchProfessorEntity -import com.msg.model.param.lecture.OpenLectureParam +// import com.msg.model.param.lecture.OpenLectureParam import com.msg.network.datasource.lecture.LectureDataSource import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.transform @@ -21,12 +17,6 @@ import javax.inject.Inject class LectureRepositoryImpl @Inject constructor( private val lectureDataSource: LectureDataSource, ) : LectureRepository { - override fun openLecture(body: OpenLectureParam): Flow { - return lectureDataSource.openLecture( - body = body.toRequest() - ) - } - override fun getLectureList( page: Int, size: Int, @@ -49,12 +39,12 @@ class LectureRepositoryImpl @Inject constructor( } } - override fun patchLecture(id: UUID, body: OpenLectureParam): Flow { - return lectureDataSource.patchLecture( - id = id, - body = body.toRequest() - ) - } +// override fun patchLecture(id: UUID, body: OpenLectureParam): Flow { +// return lectureDataSource.patchLecture( +// id = id, +// body = body.toRequest() +// ) +// } override fun lectureApplication(id: UUID): Flow { return lectureDataSource.lectureApplication( @@ -68,39 +58,6 @@ class LectureRepositoryImpl @Inject constructor( ) } - override fun searchProfessor(keyword: String): Flow { - return lectureDataSource.searchProfessor( - keyword = keyword - ).transform { response -> - response.toEntity() - } - } - - override fun searchLine(keyword: String, division: String): Flow { - return lectureDataSource.searchLine( - keyword = keyword, - division = division - ).transform { response -> - response.toEntity() - } - } - - override fun searchDepartment(keyword: String): Flow { - return lectureDataSource.searchDepartment( - keyword = keyword - ).transform { response -> - response.toEntity() - } - } - - override fun searchDivision(keyword: String): Flow { - return lectureDataSource.searchDivision( - keyword = keyword - ).transform { response -> - response.toEntity() - } - } - override fun getLectureSignUpHistory(studentId: UUID): Flow { return lectureDataSource.getLectureSignUpHistory(studentId) .transform { response -> From 3da57232884743e9665bf5df4f3efbe34c4ddafd Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 19:57:46 +0900 Subject: [PATCH 24/25] =?UTF-8?q?=F0=9F=94=A5::=20BitgoeulNavHost=20?= =?UTF-8?q?=EA=B0=95=EC=9D=98=20=EA=B0=9C=EC=84=A4=20Screen,=20=EA=B0=95?= =?UTF-8?q?=EC=9D=98=20=EC=84=B8=EB=B6=80=20=EC=84=A4=EC=A0=95=20Screen=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=ED=95=B4=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bitgoeul_android/navigation/BitgoeulNavHost.kt | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/app/src/main/java/com/msg/bitgoeul_android/navigation/BitgoeulNavHost.kt b/app/src/main/java/com/msg/bitgoeul_android/navigation/BitgoeulNavHost.kt index 92b27269..e73144d3 100644 --- a/app/src/main/java/com/msg/bitgoeul_android/navigation/BitgoeulNavHost.kt +++ b/app/src/main/java/com/msg/bitgoeul_android/navigation/BitgoeulNavHost.kt @@ -27,13 +27,9 @@ import com.msg.club.navigation.clubDetailScreen import com.msg.club.navigation.clubScreen import com.msg.club.navigation.navigateToClubDetailPage import com.msg.lecture.navigation.lectureDetailScreen -import com.msg.lecture.navigation.lectureDetailSettingScreen import com.msg.lecture.navigation.lectureListScreen -import com.msg.lecture.navigation.lectureOpenScreen import com.msg.lecture.navigation.lectureTakingStudentListScreen import com.msg.lecture.navigation.navigateToLectureDetail -import com.msg.lecture.navigation.navigateToLectureDetailSetting -import com.msg.lecture.navigation.navigateToLectureOpen import com.msg.lecture.navigation.navigateToLectureTakingStudentList import com.msg.main.navigation.mainPageScreen import com.msg.main.navigation.navigateToMainPage @@ -115,7 +111,6 @@ fun BitgoeulNavHost( onApplyClicked = navController::navigateUp ) lectureListScreen( - onOpenClicked = navController::navigateToLectureOpen, onItemClicked = navController::navigateToLectureDetail, ) lectureDetailScreen( @@ -125,15 +120,6 @@ fun BitgoeulNavHost( lectureTakingStudentListScreen( onBackClicked = navController::navigateUp, ) - lectureOpenScreen( - onActionClicked = navController::navigateUp, - onSettingClicked = navController::navigateToLectureDetailSetting, - onBackClicked = navController::navigateUp, - ) - lectureDetailSettingScreen( - onCloseClicked = navController::navigateUp, - onApplyClicked = navController::navigateUp, - ) myPageScreen( onPasswordChangeClicked = navController::navigateToPasswordChange, onWithdrawClicked = navController::navigateToLogin, From 4a3af7a284d8b63e1a94d1965ac3fe7c94cb5a8e Mon Sep 17 00:00:00 2001 From: Chaejongin12 Date: Thu, 29 Aug 2024 20:20:36 +0900 Subject: [PATCH 25/25] =?UTF-8?q?:green=5Fheart:=20::=20PatchLectureUseCas?= =?UTF-8?q?e=20=EC=A3=BC=EC=84=9D=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit :: PatchLectureUseCase 주석처리 --- .../domain/usecase/lecture/PatchLecture.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/core/domain/src/main/java/com/msg/domain/usecase/lecture/PatchLecture.kt b/core/domain/src/main/java/com/msg/domain/usecase/lecture/PatchLecture.kt index d07fedd1..2111c2a0 100644 --- a/core/domain/src/main/java/com/msg/domain/usecase/lecture/PatchLecture.kt +++ b/core/domain/src/main/java/com/msg/domain/usecase/lecture/PatchLecture.kt @@ -1,14 +1,14 @@ package com.msg.domain.usecase.lecture -import com.msg.data.repository.lecture.LectureRepository -import com.msg.model.param.lecture.OpenLectureParam -import java.util.UUID -import javax.inject.Inject - -class PatchLecture @Inject constructor( - private val lectureRepository: LectureRepository -) { - operator fun invoke(id: UUID, body: OpenLectureParam) = runCatching { - lectureRepository.patchLecture(id = id, body = body) - } -} \ No newline at end of file +//import com.msg.data.repository.lecture.LectureRepository +//import com.msg.model.param.lecture.OpenLectureParam +//import java.util.UUID +//import javax.inject.Inject +// +//class PatchLecture @Inject constructor( +// private val lectureRepository: LectureRepository +//) { +// operator fun invoke(id: UUID, body: OpenLectureParam) = runCatching { +// lectureRepository.patchLecture(id = id, body = body) +// } +//} \ No newline at end of file