Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
android:usesCleartextTraffic="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_main"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/ic_main"
android:supportsRtl="true"
android:theme="@style/Theme.HsLink">

Expand Down
Binary file added app/src/main/ic_main-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.hsLink.hslink.data.dto.request.onboarding

import com.hsLink.hslink.presentation.onboarding.model.AcademicStatus
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand All @@ -16,5 +17,7 @@ data class OnboardingRequest (
@SerialName("mentor")
val mentor : Boolean,
@SerialName("email")
val email : String
val email : String,
@SerialName("academicStatus")
val academicStatus: AcademicStatus
)
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ data class LinkResponse(

@Serializable
data class CareerDto(
val id: Long,
val id: Int,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify API contract supports Int range for career IDs.

The change from Long to Int could cause issues if the backend returns IDs exceeding Int.MAX_VALUE (2,147,483,647). Ensure the API specification guarantees career IDs will remain within the Int range.


🏁 Script executed:

#!/bin/bash
# Search for career ID usages that might still expect Long
rg -nP '\bcareer.*[iI]d.*Long\b|\bLong.*career.*[iI]d\b' --type=kotlin -C3

Length of output: 8992



Update careerId type from Long to Int across repository, service, and view model layers.

The change to use Int in CareerResponse.kt is incompletely migrated. Multiple layers still expect Long:

  • CareerRepository.kt: getCareer(careerId: Long) and updateCareer(careerId: Long, ...)
  • CareerService.kt: Service methods with @Path("careerId") careerId: Long
  • CareerRepositoryImpl.kt: Implementation methods still using Long
  • CareerViewModel.kt: updateCareer(careerId: Long) and loadCareer(careerId: Long)
  • CareerEditScreen.kt: Route parameter careerId: Long?

Workarounds like .toLong() conversions in navigation don't address the underlying type inconsistency. Update all method signatures and parameter types to use Int consistently.

🤖 Prompt for AI Agents
app/src/main/java/com/hsLink/hslink/data/dto/response/CareerResponse.kt around
line 31: the repository/service/viewmodel layers are still using Long for
careerId while CareerResponse now uses Int; update all method signatures,
parameters and route types to Int to maintain consistency — change
CareerRepository.kt (getCareer, updateCareer) and CareerRepositoryImpl.kt method
parameter types to Int, change CareerService.kt path parameter annotations and
method signatures to use Int, update CareerViewModel.kt (loadCareer,
updateCareer) and CareerEditScreen.kt route parameter parsing to Int (and remove
any .toLong() conversions), and ensure any callers and tests are adjusted
accordingly and project builds cleanly.

val companyName: String,
val position: String,
val jobType: JobType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ data class MentorItemDto(
val major: String,
val jobSeeking: Boolean,
val employed: Boolean,
val academicStatus: String
val academicStatus: String? = null
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify backend API compatibility and null handling.

Making academicStatus nullable is a significant API change. While this likely addresses the HTTP 500 errors mentioned in the PR description by handling missing fields gracefully, please confirm:

  1. The backend API indeed returns null or omits this field in some responses
  2. All consumers of MentorItemDto properly handle null academicStatus values

Run the following script to check how academicStatus is used across the codebase:


🏁 Script executed:

#!/bin/bash
# Check MentorItemDto usage and academicStatus handling
echo "=== Searching for MentorItemDto usage ==="
rg -n "MentorItemDto" --type=kt -C 3

echo -e "\n=== Searching for academicStatus field access ==="
rg -n "\.academicStatus" --type=kt -C 2

Length of output: 146


🏁 Script executed:

#!/bin/bash
# Check MentorItemDto usage and academicStatus handling using corrected syntax
echo "=== Searching for MentorItemDto usage ==="
rg -n "MentorItemDto" -C 3

echo -e "\n=== Searching for academicStatus field access ==="
rg -n "\.academicStatus" -C 2

echo -e "\n=== Searching for SearchResponseDto and related DTOs ==="
rg -n "SearchResponseDto\|MentorItemDto" -C 2

Length of output: 6100


🏁 Script executed:

#!/bin/bash
# Check the function implementations that consume academicStatus
echo "=== Searching for buildStatusText function definition ==="
rg -n "fun buildStatusText" -C 5

echo -e "\n=== Searching for getAcademicStatusText function definition ==="
rg -n "fun getAcademicStatusText" -C 5

echo -e "\n=== Checking MentorItemDto data class full definition ==="
rg -n "data class MentorItemDto" -A 15

Length of output: 6221


Fix null handling in function consumers before release.

The change to make academicStatus nullable introduces type incompatibilities at multiple call sites:

  • SearchScreen.kt:196 passes nullable mentor.academicStatus to buildStatusText() which expects non-null String
  • ProfileCard.kt:174 passes nullable profile.academicStatus to getAcademicStatusText() which expects non-null String
  • MypageScreen.kt:175 passes nullable userSummary.academicStatus to buildStatusText() which expects non-null String

Update function signatures to accept String? or apply null-coalescing (e.g., ?: "") at call sites to match the non-null consumer functions' expectations.

🤖 Prompt for AI Agents
app/src/main/java/com/hsLink/hslink/data/dto/response/search/SearchResponseDto.kt
around line 27: academicStatus was made nullable (val academicStatus: String? =
null) but several consumers still require non-null String, causing type errors;
either update the consumer function signatures (buildStatusText,
getAcademicStatusText) to accept String? and handle null internally, or keep
consumers as-is and coalesce the nullable value at each call site (e.g., pass
academicStatus ?: "" or provide a sensible default). Modify only the call sites
in SearchScreen.kt:196, ProfileCard.kt:174, and MypageScreen.kt:175 or the three
consumer functions consistently so all usages compile and nulls are handled
explicitly.

)
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class SearchRepositoryImpl @Inject constructor(
major = dto.major,
jobSeeking = dto.jobSeeking,
employed = dto.employed,
academicStatus = dto.academicStatus
academicStatus = dto.academicStatus ?: ""
)
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import androidx.navigation.compose.rememberNavController
import androidx.navigation.navigation
import com.hsLink.hslink.core.designsystem.theme.HsLinkTheme
import com.hsLink.hslink.presentation.login.screen.KaKaoLoginScreen
import com.hsLink.hslink.presentation.mypage.navigation.career.careerNavGraph
import com.kakao.sdk.common.KakaoSdk
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.serialization.Serializable
Expand Down Expand Up @@ -160,9 +161,15 @@ fun NavGraphBuilder.authNavGraph(
com.hsLink.hslink.presentation.onboarding.OnboardingRoute(
paddingValues = paddingValues,
navigateUp = { navController.popBackStack() },
navigateToHome = onNavigateToAppMain
navigateToHome = onNavigateToAppMain,
navController = navController,
)

}
careerNavGraph(
padding = paddingValues,
navController = navController
)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import com.hsLink.hslink.presentation.mypage.screen.career.CareerEditRoute
import kotlinx.serialization.Serializable

// ← careerId 파라미터 추가
fun NavController.navigateToCareerEdit(careerId: Long, navOptions: NavOptions? = null) {
fun NavController.navigateToCareerEdit(careerId: Int, navOptions: NavOptions? = null) {
navigate(CareerEdit(careerId = careerId), navOptions)
Comment on lines +13 to 14
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Incomplete type migration creates inconsistency.

The navigation layer now uses Int for careerId, but CareerEditRoute still expects Long?, requiring a conversion on line 29. This partial migration creates type inconsistency.

Consider completing the migration by updating CareerEditRoute and related components to use Int consistently. This would eliminate the need for type conversions and improve code clarity.

Also applies to: 23-29, 35-35


🏁 Script executed:

#!/bin/bash
# Find CareerEditRoute and related components that might need Int migration
rg -nP 'CareerEditRoute|careerId.*Long' --type=kotlin -C5

Length of output: 14660



Let me search directly in the repository:




Let me also check for CareerEdit:





Based on the script output from earlier, I can see line 35 shows:

app/src/main/java/com/hsLink/hslink/presentation/mypage/navigation/career/CareerEditNavigation.kt-34-@Serializable

Let me search for the full CareerEdit definition:

Type boundary change creates clarity issue, but verify design intent.

The migration changed navigation to use Int (line 13) while CareerEditRoute still expects Long? (line 60), requiring conversion on line 29. This pattern suggests an intentional type boundary—using smaller Int at UI layer while maintaining Long in business logic.

Before enforcing the suggested refactor to use Int consistently, clarify:

  • Is this intentional layer separation (UI: Int, data: Long) or incomplete migration?
  • If intentional, document this boundary decision in code comments for clarity
  • If incomplete, update both navigation and CareerEditRoute to use the same type

🏁 Script executed:

#!/bin/bash
# Find CareerDto definition to check id field type
fd -e '.kt' | xargs grep -l 'data class CareerDto\|class CareerDto'

Length of output: 71


🏁 Script executed:

#!/bin/bash
# Find CareerDto definition
rg -nP 'data class CareerDto|class CareerDto' --type=kotlin -A10 | head -50

Length of output: 1023


🏁 Script executed:

#!/bin/bash
# Find CareerEdit serializable data class
rg -nP '@Serializable.*\ndata class CareerEdit|@Serializable\s+data class CareerEdit' --type=kotlin -A5

Length of output: 0


🏁 Script executed:

#!/bin/bash
# Search for CareerEdit more broadly
rg -nP 'data class CareerEdit|CareerEdit\s*\(' --type=kotlin -B2 -A2

Length of output: 3400


Complete the type migration: update CareerEditRoute to accept Int instead of Long.

The migration changed navigation to Int (CareerDto.id, CareerEdit class, navigateToCareerEdit function), but CareerEditRoute parameter still expects Long?. This requires an unnecessary .toLong() conversion on line 29. Update CareerEditRoute signature to accept Int? (CareerEditScreen.kt line 60) to align with the navigation layer and eliminate the type conversion.

CareerEditRoute(
    paddingValues = padding,
    navController = navController,
-   careerId = careerEdit.careerId.toLong() // removed: no longer needed
+   careerId = careerEdit.careerId
)

Separately, verify that the downstream ViewModel/Repository layer can accept Int or add conversion boundary at the ViewModel entry point if Long is required by backend.

🤖 Prompt for AI Agents
In
app/src/main/java/com/hsLink/hslink/presentation/mypage/navigation/career/CareerEditNavigation.kt
around lines 13-14 and related CareerEditScreen.kt at ~line 60, the navigation
layer was migrated to use Int for careerId but CareerEditRoute still expects
Long?, forcing a .toLong() conversion; update CareerEditRoute signature to
accept Int? instead of Long? (change parameter type in CareerEditScreen.kt at
the Route composable) and remove the unnecessary .toLong() call where
CareerEditRoute is invoked (pass careerEdit.careerId directly), then verify
downstream ViewModel/repository boundaries accept Int or perform conversion at
the ViewModel entry point if backend requires Long.

}

Expand All @@ -20,18 +20,16 @@ fun NavGraphBuilder.careerNavGraph(
) {
composable<CareerEdit> { backStackEntry ->
val careerEdit = backStackEntry.arguments?.let {
// ← careerId 추출
CareerEdit(careerId = it.getLong("careerId"))
} ?: CareerEdit(careerId = 0L)
CareerEdit(careerId = it.getInt("careerId")) // ← getLong → getInt 변경!
} ?: CareerEdit(careerId = 0) // ← 0L → 0 변경!

CareerEditRoute(
paddingValues = padding,
navController = navController,
careerId = careerEdit.careerId // ← careerId 전달
careerId = careerEdit.careerId.toLong() // ← CareerEditRoute가 Long을 받으면 여기서 변환
)
}
}

// ← data object에서 data class로 변경
@Serializable
data class CareerEdit(val careerId: Long) : Route
data class CareerEdit(val careerId: Int) : Route
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.hsLink.hslink.presentation.onboarding

import android.util.Log
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
Expand All @@ -19,9 +20,13 @@ import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavController
import com.hsLink.hslink.core.designsystem.component.HsLinkActionButton
import com.hsLink.hslink.core.designsystem.component.HsLinkActionButtonSize
import com.hsLink.hslink.core.designsystem.theme.HsLinkTheme
import com.hsLink.hslink.data.dto.response.onboarding.CareerDto
import com.hsLink.hslink.presentation.mypage.navigation.career.navigateToCareerEdit
import com.hsLink.hslink.presentation.mypage.viewmodel.CareerViewModel
import com.hsLink.hslink.presentation.onboarding.component.OnboardingProgressBar
import com.hsLink.hslink.presentation.onboarding.component.screen.CareerScreen
import com.hsLink.hslink.presentation.onboarding.component.screen.EmailScreen
Expand All @@ -42,9 +47,13 @@ fun OnboardingRoute(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateToHome: () -> Unit,
navController: NavController,
viewModel: OnboardingViewModel = hiltViewModel(),
//careerViewModel: CareerViewModel = hiltViewModel()
) {
val state by viewModel.state.collectAsStateWithLifecycle()
//val careerList by careerViewModel.careers.collectAsStateWithLifecycle()


when (state.currentStep) {
OnboardingStep.STUDENT_ID -> {
Expand Down Expand Up @@ -85,23 +94,43 @@ fun OnboardingRoute(

OnboardingStep.EMPLOYMENT_STATUS -> {
EmploymentStatusScreen(
selectedStatus = state.employmentStatus,
selectedStatus = state.academicStatus, // ← employmentStatus → academicStatus
progress = state.currentStep.progress,
paddingValues = paddingValues,
onStatusSelect = viewModel::updateEmploymentStatus,
onStatusSelect = viewModel::updateAcademicStatus, // ← updateEmploymentStatus → updateAcademicStatus
onPreviousClick = viewModel::moveToPreviousStep,
onNextClick = viewModel::moveToNextStep
)
}

OnboardingStep.CAREER -> {
// ← 안전한 변환으로 수정
val safeCareerList = try {
state.careerList.map { career ->
CareerDto(
id = career.id,
companyName = career.companyName,
position = career.position,
jobType = career.jobType,
employed = career.employed,
startYm = career.startYm,
endYm = career.endYm
)
}
} catch (e: Exception) {
Log.e("OnboardingRoute", "타입 변환 실패", e)
emptyList()
}

CareerScreen(
selectedCareer = state.career,
careerList = state.careerList,
careerList = safeCareerList, // ← 안전한 리스트 사용
progress = state.currentStep.progress,
paddingValues = paddingValues,
onCareerSelect = viewModel::updateCareer,
onCareerClick = { career -> // career는 이제 CareerDto 타입
navController.navigateToCareerEdit(careerId = career.id) // ← .toLong() 제거 (이미 Int로 맞춤)
},
onPreviousClick = viewModel::moveToPreviousStep,
onNextClick = viewModel::moveToNextStep,
onAddCareerClick = viewModel::openJobInfoForm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,20 @@ import androidx.compose.ui.unit.dp
import com.hsLink.hslink.R
import com.hsLink.hslink.core.designsystem.theme.HsLinkTheme
import com.hsLink.hslink.core.util.noRippleClickable
import com.hsLink.hslink.data.dto.response.onboarding.CareerDto
import com.hsLink.hslink.domain.model.search.CareerItemEntity
import com.hsLink.hslink.presentation.mypage.component.profile.CareerCard
import com.hsLink.hslink.presentation.onboarding.OnboardingScreen

@Composable
fun CareerScreen(
selectedCareer: Boolean?,
careerList: List<CareerItemEntity>,
//careerList: List<CareerItemEntity>,
careerList: List<CareerDto>,
progress: Float,
paddingValues: PaddingValues,
onCareerSelect: (Boolean) -> Unit,
onCareerClick: (CareerDto) -> Unit,
onPreviousClick: () -> Unit,
onNextClick: () -> Unit,
onAddCareerClick: () -> Unit,
Expand Down Expand Up @@ -57,7 +61,6 @@ fun CareerScreen(
modifier = modifier.fillMaxSize(),
verticalArrangement = Arrangement.spacedBy(16.dp)
) {

Box(
modifier = Modifier
.weight(1f)
Expand All @@ -69,12 +72,26 @@ fun CareerScreen(
verticalArrangement = Arrangement.spacedBy(12.dp)
) {
items(careerList) { career ->
CareerItem(career)
val dateRange = if (career.employed) {
"${career.startYm} ~ 재직 중"
} else {
"${career.startYm} ~ ${career.endYm ?: "-"}"
}

CareerCard(
name = career.companyName,
title = career.position,
dateRange = dateRange,
onClick = {
onCareerClick(career)
}
)
}
}
}
}

// ← "커리어 추가하기" 버튼이 여기에 와야 해요!
Box(
modifier = Modifier
.fillMaxWidth()
Expand Down Expand Up @@ -112,7 +129,7 @@ fun CareerScreen(
)
}
}
}
} // ← 여기서 Column이 끝나야 해요!
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ import com.hsLink.hslink.core.designsystem.component.HsLinkButtonSize
import com.hsLink.hslink.core.designsystem.component.HsLinkSelectButton
import com.hsLink.hslink.core.designsystem.theme.HsLinkTheme
import com.hsLink.hslink.presentation.onboarding.OnboardingScreen
import com.hsLink.hslink.presentation.onboarding.model.EmploymentStatus
import com.hsLink.hslink.presentation.onboarding.model.AcademicStatus

@OptIn(ExperimentalLayoutApi::class)
@Composable
fun EmploymentStatusScreen(
selectedStatus: EmploymentStatus?,
selectedStatus: AcademicStatus?, // ← EmploymentStatus → AcademicStatus,
progress: Float,
paddingValues: PaddingValues,
onStatusSelect: (EmploymentStatus) -> Unit,
onStatusSelect: (AcademicStatus) -> Unit, // ← EmploymentStatus → AcademicStatus
onPreviousClick: () -> Unit,
onNextClick: () -> Unit,
) {
Expand All @@ -52,7 +52,7 @@ fun EmploymentStatusScreen(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(12.dp),
) {
EmploymentStatus.entries.chunked(2).forEach { rowItems ->
AcademicStatus.entries.chunked(2).forEach { rowItems ->
Row(
horizontalArrangement = Arrangement.spacedBy(8.dp),
) {
Expand Down Expand Up @@ -80,12 +80,12 @@ fun EmploymentStatusScreen(
private fun EmploymentStatusScreenPreview() {
HsLinkTheme {
EmploymentStatusScreen(
selectedStatus = EmploymentStatus.WORKING,
selectedStatus = AcademicStatus.ENROLLED, // ← EmploymentStatus.WORKING → AcademicStatus.ENROLLED
progress = 0.9f,
paddingValues = PaddingValues(),
onStatusSelect = {},
onPreviousClick = {},
onNextClick = {}
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,16 @@ fun LinksScreen(
.weight(1f)
.fillMaxWidth()
) {
if (linkList.isNotEmpty()) {
LazyColumn(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.spacedBy(12.dp)
) {
items(linkList) { link ->
LinkItem(link)
}
}
}
// if (linkList.isNotEmpty()) {
// LazyColumn(
// modifier = Modifier.fillMaxSize(),
// verticalArrangement = Arrangement.spacedBy(12.dp)
// ) {
// items(linkList) { link ->
// LinkItem(link)
// }
// }
// }
Comment on lines +62 to +71
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Critical: Link display functionality is completely disabled.

Commenting out the link list rendering removes essential functionality from the onboarding flow. Users can still add links via the button below (line 103-107), but they cannot view what they've added. This creates a confusing and broken user experience.

Based on the PR description mentioning HTTP 500 errors, this appears to be a temporary workaround rather than a proper fix. However:

  1. This should not be merged as-is - it degrades functionality without providing a solution
  2. If this is intentionally temporary, add a clear TODO/FIXME comment explaining:
    • Why it was disabled
    • What needs to be fixed
    • When it will be re-enabled
  3. Consider adding a loading state or error boundary instead of hiding the feature entirely

If the underlying issue is related to API errors when fetching/displaying links, please verify the actual error and implement proper error handling:


🏁 Script executed:

#!/bin/bash
# Search for LinkItemEntity usage and API calls that might be causing HTTP 500 errors
rg -n "LinkItemEntity" --type=kotlin -C3

# Search for related API/network calls in the onboarding flow
rg -n "linkList|getLlinks|fetchLinks" --type=kotlin -C3

Length of output: 15859


Critical: Link display functionality is completely disabled.

Commenting out the link list rendering removes essential functionality from the onboarding flow. Users can still add links via the button below (lines 103-107), but they cannot view what they've added. This creates a confusing and broken user experience.

Based on the PR description mentioning HTTP 500 errors, this appears to be a temporary workaround. However:

  1. This should not be merged as-is — it degrades functionality without providing a solution
  2. If this is intentionally temporary, add a clear TODO/FIXME comment explaining:
    • Why it was disabled
    • What needs to be fixed
    • When it will be re-enabled
  3. Consider adding a loading state or error boundary instead of hiding the feature entirely

The underlying infrastructure is intact (the getLinks() API call and LinkItem composable both exist), so the proper fix is to restore the rendering and handle any API errors appropriately.

🤖 Prompt for AI Agents
In
app/src/main/java/com/hsLink/hslink/presentation/onboarding/component/screen/LinkScreen.kt
around lines 62-71 the LazyColumn that renders linkList was commented out,
removing link display; restore the original rendering block (re-enable the if
(linkList.isNotEmpty()) { LazyColumn ... items(linkList) { LinkItem(link) } } )
so users can see added links, and add proper error/loading handling around the
data source (show a loading indicator while fetching, show an error message or
retry UI if getLinks() fails) to avoid re-commenting UI for backend errors; if
this disablement was intended as a temporary workaround, instead of deleting the
UI add a TODO/FIXME above the restored block stating why it was disabled, what
needs to be fixed, and the target re-enable condition.

}

Box(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ data class OnboardingState(
val name: String = "",
val major: String = "",
val majorQuery: String = "",
val employmentStatus: EmploymentStatus? = null,
val academicStatus: AcademicStatus? = null,
val career: Boolean? = null,
val isExperiencedPath: Boolean = false,
val companyName: String = "",
Expand Down Expand Up @@ -64,8 +64,8 @@ enum class OnboardingStep(val stepNumber: Int, val totalSteps: Int = 11) {
}


enum class EmploymentStatus(val label: String) {
WORKING("재학 중"),
enum class AcademicStatus(val label: String) {
ENROLLED("재학 중"), // WORKING → ENROLLED (API 스펙에 맞게)
GRADUATED("졸업"),
EXPECTED_GRADUATION("졸업예정"),
COMPLETED("수료"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ fun NavGraphBuilder.onboardingNavGraph(
padding: PaddingValues,
navigateUp: () -> Unit,
navigateHome: () -> Unit,
navController: NavController,
) {
composable<Onboarding> {
OnboardingRoute(
paddingValues = padding,
navController = navController,
navigateUp = navigateUp,
navigateToHome = navigateHome
navigateToHome = navigateHome,
)
}
}
Expand Down
Loading