Skip to content
Merged
Show file tree
Hide file tree
Changes from 68 commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
de1f6a3
feat :: 관심 λΆ„μ•Ό 선택 viewmodel 생성
uson1004 Apr 24, 2025
3be3909
refactor :: 관심 λΆ„μ•Ό νŽ˜μ΄μ§€ λ„€λΉ„κ²Œμ΄μ…˜ 등둝
uson1004 Apr 26, 2025
1a09dc2
chore :: μ„œλ²„ url μΆ”κ°€
uson1004 Apr 29, 2025
1928a5f
feat :: 관심 λΆ„μ•Ό data class model 생성
uson1004 Apr 30, 2025
5fecb10
feat :: 관심 λΆ„μ•Ό api 생성
uson1004 Apr 30, 2025
78e537d
refactor :: 관심 λΆ„μ•Ό λ„€λΉ„κ²Œμ΄μ…˜ 등둝
uson1004 Apr 30, 2025
36a12fa
refactor :: api model 이름 λ³€κ²½
uson1004 Apr 30, 2025
3e95ef4
feat :: 관심 λΆ„μ•Ό dataSource κ΅¬ν˜„
uson1004 Apr 30, 2025
3752a33
feat :: 관심 λΆ„μ•Ό Repository κ΅¬ν˜„
uson1004 Apr 30, 2025
5837000
feat :: 관심 λΆ„μ•Ό UseCase κ΅¬ν˜„
uson1004 Apr 30, 2025
4a3429c
refactor :: api ν•¨μˆ˜ 이름 λͺ…μΉ­ λ³€κ²½
uson1004 Apr 30, 2025
a7dcde0
feat :: 관심 λΆ„μ•Ό Entity κ΅¬ν˜„
uson1004 May 1, 2025
15a1c46
refactor :: Interests λͺ¨λ“ˆ namespace λ³€κ²½
uson1004 May 1, 2025
c6351da
refactor :: data λͺ¨λΈ JsonClass 등둝
uson1004 May 1, 2025
72cc1dc
chore :: 관심뢄야 network μ˜μ‘΄μ„± μΆ”κ°€
uson1004 May 1, 2025
6a30378
refactor :: 관심 λΆ„μ•Ό 둜직 이름 λ³€κ²½
uson1004 May 1, 2025
5b26033
feat :: 관심 λΆ„μ•Ό μ˜μ‘΄μ„± μ£Όμž…
uson1004 May 1, 2025
192f26a
feat :: 관심 λΆ„μ•Ό ViewModel κ΅¬ν˜„
uson1004 May 1, 2025
7c86d38
Merge remote-tracking branch 'origin/feature/462-관심-λΆ„μ•Ό-선택-κΈ°λŠ₯-κ΅¬ν˜„' into…
uson1004 May 4, 2025
baa0c24
chore :: ktlint check
uson1004 May 4, 2025
024dd5e
feat :: string λ¦¬μ†ŒμŠ€ μΆ”κ°€
uson1004 May 4, 2025
95cacff
refactor :: 관심 λΆ„μ•Ό UI λ¦¬νŒ©ν† λ§
uson1004 May 4, 2025
2a52e81
feat :: 관심 λΆ„μ•Ό UI 퍼블리싱
uson1004 May 4, 2025
4917e85
build :: ν”„λ‘œμ νŠΈ namespace λ³€κ²½
uson1004 May 7, 2025
eeeba7d
refactor :: usecase entity λ°μ΄ν„°λ‘œ λ³€κ²½
uson1004 May 7, 2025
393bfc7
refactor :: UseCase 이름 api λͺ…μΉ­κ³Ό λ™μΌν•˜κ²Œ λ³€κ²½
uson1004 May 8, 2025
6b7b6b8
refactor :: 관심 λͺ¨μ§‘μ˜λ’°μ„œ 쑰회 entity둜 λ§€ν•‘
uson1004 May 8, 2025
bfe0e4f
refactor :: 관심 λΆ„μ•Ό μ„€μ • request κ°’ 리슀트둜 λ³€κ²½
uson1004 May 8, 2025
1603aad
refactor :: 관심 λΆ„μ•Ό viewModel κΈ°λŠ₯ ν•¨μˆ˜ κ΅¬ν˜„
uson1004 May 9, 2025
56fa277
refactor :: 관심 λͺ¨μ§‘μ˜λ’°μ„œ 쑰회 UseCase 이름 λ³€κ²½
uson1004 May 9, 2025
14b26dd
refactor :: 관심 λΆ„μ•Ό 데이터 λͺ¨λΈ ꡬ쑰 λ³€κ²½
uson1004 May 9, 2025
1b29f7c
refactor :: 관심 λΆ„μ•Ό dataSource 파일 이름 λ³€κ²½
uson1004 May 9, 2025
1d3f2d0
feat :: 관심 λΆ„μ•Ό 학생 이름 Ui에 κ΅¬ν˜„
uson1004 May 9, 2025
1e5b7af
feat :: 관심 λΆ„μ•Ό UI μ—…λ°μ΄νŠΈ
uson1004 May 9, 2025
538000d
chore :: success drawable μΆ”κ°€
uson1004 May 13, 2025
573802b
feat :: 관심 λΆ„μ•Ό 등둝 μ™„λ£Œ navigation에 등둝
uson1004 May 13, 2025
83bc78f
feat :: InterestsComplete main navigator 등둝
uson1004 May 13, 2025
505957f
feat :: 관심 λΆ„μ•Ό μ™„λ£Œ νŽ˜μ΄μ§€ 이동 이벀트 κ΅¬ν˜„
uson1004 May 13, 2025
bd71497
feat :: 관심 λΆ„μ•Ό μ™„λ£Œ viewmodel κ΅¬ν˜„
uson1004 May 13, 2025
9ebc0e7
feat :: 선택 λ²„νŠΌ ν™œμ„±ν™” κ΅¬ν˜„
uson1004 May 14, 2025
07eb11c
feat :: 관심 λΆ„μ•Ό button enable 처리
uson1004 May 15, 2025
6130521
feat :: 관심 λΆ„μ•Ό μ™„λ£Œ νŽ˜μ΄μ§€ 퍼블리싱
uson1004 May 15, 2025
da1fdc2
feat :: mypage screen navigator 등둝
uson1004 May 15, 2025
3dec46d
feat :: 관심뢄야 viewmodel 전곡 쑰회 및 선택 κ΅¬ν˜„
uson1004 May 15, 2025
0576641
feat :: λͺ¨λ“  전곡 μ‘°νšŒκ°’ μ €μž₯
uson1004 May 19, 2025
d1f27d8
chore :: 전곡 μ—¬λŸ¬κ°œ μ„ νƒλ˜κ²Œ κ΅¬ν˜„
uson1004 May 19, 2025
0245745
feat :: init interestsComplete viewModel
uson1004 May 19, 2025
379e0fa
feat :: 관심 λΆ„μ•Ό μ™„λ£Œ UI κ΅¬ν˜„
uson1004 May 19, 2025
69aac0b
chore :: ktlint change
uson1004 May 19, 2025
7c34719
feat :: 관심뢄야 -> κ΄€μ‹¬λΆ„μ•Όμ™„λ£Œ 이동 ν•¨μˆ˜ 등둝
uson1004 May 19, 2025
2baa77a
feat :: 관심 전곡 api 둜직 μ—°κ²° κ΅¬ν˜„
uson1004 May 19, 2025
2aaad10
refactor :: 관심 λΆ„μ•Ό ν† κΈ€ api request 이름 μ„€μ •
uson1004 May 19, 2025
f983cfc
refactor :: 관심뢄야 ν† κΈ€ νƒ€μž… λ³€κ²½
uson1004 May 19, 2025
0a0e995
feat :: 관심뢄야 request model 생성
uson1004 May 20, 2025
39e8fde
refactor :: 인자 νƒ€μž… data class λͺ¨λΈλ‘œ λ³€κ²½
uson1004 May 20, 2025
34fc51c
refactor :: 관심 λΆ„μ•Ό 적용
uson1004 May 20, 2025
6650b8c
feat :: 관심 λΆ„μ•Ό μ™„λ£Œ argument κ΅¬ν˜„
uson1004 May 20, 2025
2e4b78d
refactor :: mypage navigator λ―Έκ΅¬ν˜„
uson1004 May 20, 2025
d8ceb92
chore :: ktlint refactoring
uson1004 May 20, 2025
3ffa70b
chore :: ktlint change
uson1004 May 21, 2025
050d321
refactor :: 이전에 μ„ νƒλœ 전곡도 ν•΄μ œλ˜λ„λ‘ λ³€κ²½
uson1004 Jun 4, 2025
b565488
fix :: dev url μˆ¨κΉ€
uson1004 Jun 5, 2025
964bbfa
refactor :: string value 적용
uson1004 Jun 5, 2025
a8d7c8f
refator :: μƒνƒœ λ³€κ²½ κ°’ viewmodel둜 κ΅¬ν˜„
uson1004 Jun 5, 2025
93772d6
refactor :: 관심뢄야 등둝 ν•¨μˆ˜ μ˜ˆμ™Έμ²˜λ¦¬
uson1004 Jun 5, 2025
b78bdb5
refactor :: viewmodelμ—μ„œ interests button μƒνƒœ λ³€κ²½
uson1004 Jun 5, 2025
0b2b6d8
refactor :: UI 둜직 ν•¨μˆ˜ UI μŠ€λ ˆλ“œμ—μ„œ μž‘μ—…ν•˜λ„λ‘ λ³€κ²½
uson1004 Jun 5, 2025
335b3ba
chore :: hilt compile error둜 μΈν•œ 파일 생성
uson1004 Jun 13, 2025
6e5f4b6
chore :: ktlint change
uson1004 Jun 13, 2025
68147b9
refactor :: column으둜 관심뢄야 쀑앙 μ •λ ¬
uson1004 Jun 30, 2025
ab502e2
chore :: ktlint check
uson1004 Jul 1, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import team.retum.jobis.application.navigation.navigateToApplication
import team.retum.jobis.change.password.navigation.navigateToComparePassword
import team.retum.jobis.change.password.navigation.navigateToResetPassword
import team.retum.jobis.interests.navigation.navigateToInterests
import team.retum.jobis.interests.navigation.navigateToInterestsComplete
import team.retum.jobis.notice.navigation.navigateToNoticeDetails
import team.retum.jobis.notice.navigation.navigateToNotices
import team.retum.jobis.recruitment.navigation.navigateToRecruitmentDetails
Expand Down Expand Up @@ -104,6 +105,10 @@ internal class JobisNavigator(
navController.navigateToInterests()
}

fun navigateToInterestsComplete(studentName: String) {
navController.navigateToInterestsComplete(studentName = studentName)
}

fun navigateToComparePassword() {
navController.navigateToComparePassword()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import team.retum.employment.navigation.employment
import team.retum.employment.navigation.employmentDetail
import team.retum.jobis.application.navigation.application
import team.retum.jobis.interests.navigation.interests
import team.retum.jobis.interests.navigation.interestsComplete
import team.retum.jobis.notice.navigation.noticeDetails
import team.retum.jobis.notice.navigation.notices
import team.retum.jobis.recruitment.navigation.recruitmentDetails
Expand Down Expand Up @@ -75,7 +76,13 @@ internal fun NavGraphBuilder.mainNavigation(
onBackPressed = navigator::popBackStackIfNotHome,
)
reportBug(onBackPressed = navigator::popBackStackIfNotHome)
interests(onBackPressed = navigator::popBackStackIfNotHome)
interests(
onBackPressed = navigator::popBackStackIfNotHome,
navigateToInterestsComplete = navigator::navigateToInterestsComplete,
)
interestsComplete(
onBackPressed = navigator::popBackStackIfNotHome,
)
noticeDetails(onBackPressed = navigator::popBackStackIfNotHome)
companies(
onBackPressed = navigator::popBackStackIfNotHome,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ object ResourceKeys {
const val EMAIL = "@dsm.hs.kr"
const val DATABASE_NAME = "jobis-database"
const val CLASS_ID = "classId"
const val STUDENT_NAME = "studentName"
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import team.retum.data.repository.company.CompanyRepository
import team.retum.data.repository.company.CompanyRepositoryImpl
import team.retum.data.repository.file.FileRepository
import team.retum.data.repository.file.FileRepositoryImpl
import team.retum.data.repository.interests.InterestsRepository
import team.retum.data.repository.interests.InterestsRepositoryImpl
import team.retum.data.repository.intern.WinterInterRepository
import team.retum.data.repository.intern.WinterInternRepositoryImpl
import team.retum.data.repository.notice.NoticeRepository
Expand Down Expand Up @@ -104,4 +106,8 @@ abstract class RepositoryModule {
@Binds
@Singleton
abstract fun bindServerStatusCheckRepository(serverStatusCheckRepositoryImpl: ServerStatusCheckRepositoryImpl): ServerStatusCheckRepository

@Binds
@Singleton
abstract fun bindInterestsRepository(interestsRepositoryImpl: InterestsRepositoryImpl): InterestsRepository
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package team.retum.data.repository.interests

import team.retum.network.model.request.interests.InterestsToggleRequest
import team.retum.network.model.response.interests.FetchInterestsRecruitmentsResponse
import team.retum.network.model.response.interests.FetchInterestsResponse

interface InterestsRepository {
suspend fun setInterestsToggle(codes: InterestsToggleRequest)
suspend fun fetchInterests(): FetchInterestsResponse
suspend fun fetchInterestsSearchRecruitments(): FetchInterestsRecruitmentsResponse
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package team.retum.data.repository.interests

import team.retum.network.datasource.interests.InterestsDataSource
import team.retum.network.model.request.interests.InterestsToggleRequest
import team.retum.network.model.response.interests.FetchInterestsRecruitmentsResponse
import team.retum.network.model.response.interests.FetchInterestsResponse
import javax.inject.Inject

class InterestsRepositoryImpl @Inject constructor(
private val interestsDataSource: InterestsDataSource,
) : InterestsRepository {
override suspend fun setInterestsToggle(codes: InterestsToggleRequest) {
interestsDataSource.setInterestsToggle(codes = codes)
}

override suspend fun fetchInterests(): FetchInterestsResponse =
interestsDataSource.fetchInterests()

override suspend fun fetchInterestsSearchRecruitments(): FetchInterestsRecruitmentsResponse =
interestsDataSource.fetchInterestsSearchRecruitments()
}
9 changes: 9 additions & 0 deletions core/design-system/src/main/res/drawable/success.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="68dp"
android:height="68dp"
android:viewportWidth="68"
android:viewportHeight="68">
<path
android:pathData="M29.333,49.333L52.833,25.833L48.167,21.167L29.333,40L19.833,30.5L15.167,35.167L29.333,49.333ZM34,67.333C29.389,67.333 25.056,66.458 21,64.708C16.944,62.958 13.417,60.583 10.417,57.583C7.417,54.583 5.042,51.056 3.292,47C1.542,42.944 0.667,38.611 0.667,34C0.667,29.389 1.542,25.056 3.292,21C5.042,16.944 7.417,13.417 10.417,10.417C13.417,7.417 16.944,5.042 21,3.292C25.056,1.542 29.389,0.667 34,0.667C38.611,0.667 42.944,1.542 47,3.292C51.056,5.042 54.583,7.417 57.583,10.417C60.583,13.417 62.958,16.944 64.708,21C66.458,25.056 67.333,29.389 67.333,34C67.333,38.611 66.458,42.944 64.708,47C62.958,51.056 60.583,54.583 57.583,57.583C54.583,60.583 51.056,62.958 47,64.708C42.944,66.458 38.611,67.333 34,67.333Z"
android:fillColor="#2F53FF"/>
</vector>
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package team.retum.usecase.entity.interests

import androidx.compose.runtime.Immutable
import team.retum.network.model.response.interests.FetchInterestsResponse

@Immutable
data class InterestsEntity(
val studentName: String,
val interests: List<InterestMajorEntity>,
) {
data class InterestMajorEntity(
val id: Int,
val studentId: Int,
val code: Int,
val keyword: String,
)
}

internal fun FetchInterestsResponse.toEntity() = InterestsEntity(
studentName = this.studentName,
interests = this.interests.map { it.toEntity() },
)

private fun FetchInterestsResponse.InterestMajor.toEntity() = InterestsEntity.InterestMajorEntity(
id = this.id,
studentId = this.studentId,
code = this.code,
keyword = this.keyword,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package team.retum.usecase.entity.interests

import androidx.compose.runtime.Immutable
import team.retum.network.model.response.interests.FetchInterestsRecruitmentsResponse

@Immutable
data class InterestsRecruitmentsEntity(
val recruitments: List<InterestsRecruitmentEntity>,
) {
data class InterestsRecruitmentEntity(
val id: Int,
val companyId: String,
val companyProfileUrl: String,
val trainPay: Int,
val militarySupport: Boolean,
val hiringJobs: String,
val bookmarked: Boolean,
)
}

internal fun FetchInterestsRecruitmentsResponse.toEntity() = InterestsRecruitmentsEntity(
recruitments = this.recruitments.map { it.toEntity() },
)

private fun FetchInterestsRecruitmentsResponse.InterestRecruitments.toEntity() =
InterestsRecruitmentsEntity.InterestsRecruitmentEntity(
id = this.id,
companyId = this.companyId,
companyProfileUrl = this.companyProfileUrl,
trainPay = this.trainPay,
militarySupport = this.militarySupport,
hiringJobs = this.hiringJobs,
bookmarked = this.bookmarked,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package team.retum.usecase.usecase.interests

import team.retum.data.repository.interests.InterestsRepository
import team.retum.usecase.entity.interests.toEntity
import javax.inject.Inject

class FetchInterestsSearchRecruitmentsUseCase @Inject constructor(
private val interestsRepository: InterestsRepository,
) {
suspend operator fun invoke() = runCatching {
interestsRepository.fetchInterestsSearchRecruitments().toEntity()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package team.retum.usecase.usecase.interests

import team.retum.data.repository.interests.InterestsRepository
import team.retum.usecase.entity.interests.toEntity
import javax.inject.Inject

class FetchInterestsUseCase @Inject constructor(
private val interestsRepository: InterestsRepository,
) {
suspend operator fun invoke() = runCatching {
interestsRepository.fetchInterests().toEntity()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package team.retum.usecase.usecase.interests

import team.retum.data.repository.interests.InterestsRepository
import team.retum.network.model.request.interests.InterestsToggleRequest
import javax.inject.Inject

class SetInterestsToggleUseCase @Inject constructor(
private val interestsRepository: InterestsRepository,
) {
suspend operator fun invoke(codes: InterestsToggleRequest) = runCatching {
interestsRepository.setInterestsToggle(codes = codes)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package team.retum.network.api

import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.PATCH
import team.retum.network.di.RequestUrls
import team.retum.network.model.request.interests.InterestsToggleRequest
import team.retum.network.model.response.interests.FetchInterestsRecruitmentsResponse
import team.retum.network.model.response.interests.FetchInterestsResponse

interface InterestsApi {
@PATCH(RequestUrls.Interests.interests)
suspend fun setInterestsToggle(
@Body codes: InterestsToggleRequest,
)

@GET(RequestUrls.Interests.interests)
suspend fun fetchInterests(): FetchInterestsResponse

@GET(RequestUrls.Interests.interestsRecruitments)
suspend fun fetchInterestsSearchRecruitments(): FetchInterestsRecruitmentsResponse
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package team.retum.network.datasource.interests

import team.retum.network.model.request.interests.InterestsToggleRequest
import team.retum.network.model.response.interests.FetchInterestsRecruitmentsResponse
import team.retum.network.model.response.interests.FetchInterestsResponse

interface InterestsDataSource {
suspend fun setInterestsToggle(codes: InterestsToggleRequest)
suspend fun fetchInterests(): FetchInterestsResponse
suspend fun fetchInterestsSearchRecruitments(): FetchInterestsRecruitmentsResponse
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package team.retum.network.datasource.interests

import team.retum.network.api.InterestsApi
import team.retum.network.model.request.interests.InterestsToggleRequest
import team.retum.network.model.response.interests.FetchInterestsRecruitmentsResponse
import team.retum.network.model.response.interests.FetchInterestsResponse
import team.retum.network.util.RequestHandler
import javax.inject.Inject

class InterestsDataSourceImpl @Inject constructor(
private val interestsApi: InterestsApi,
) : InterestsDataSource {
override suspend fun setInterestsToggle(codes: InterestsToggleRequest) {
RequestHandler<Unit>().request {
interestsApi.setInterestsToggle(codes = codes)
}
}

override suspend fun fetchInterests(): FetchInterestsResponse {
return RequestHandler<FetchInterestsResponse>().request {
interestsApi.fetchInterests()
}
}

override suspend fun fetchInterestsSearchRecruitments(): FetchInterestsRecruitmentsResponse {
return RequestHandler<FetchInterestsRecruitmentsResponse>().request {
interestsApi.fetchInterestsSearchRecruitments()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import team.retum.network.api.BugApi
import team.retum.network.api.CodeApi
import team.retum.network.api.CompanyApi
import team.retum.network.api.FileApi
import team.retum.network.api.InterestsApi
import team.retum.network.api.NoticeApi
import team.retum.network.api.NotificationApi
import team.retum.network.api.RecruitmentApi
Expand Down Expand Up @@ -188,4 +189,10 @@ object NetworkModule {
fun provideServerStatusCheckApi(retrofit: Retrofit): ServerStatusCheckApi {
return retrofit.create(ServerStatusCheckApi::class.java)
}

@Provides
@Singleton
fun provideInterestsApi(retrofit: Retrofit): InterestsApi {
return retrofit.create(InterestsApi::class.java)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import team.retum.network.datasource.company.CompanyDataSource
import team.retum.network.datasource.company.CompanyDataSourceImpl
import team.retum.network.datasource.file.RemoteFileDataSource
import team.retum.network.datasource.file.RemoteFileDataSourceImpl
import team.retum.network.datasource.interests.InterestsDataSource
import team.retum.network.datasource.interests.InterestsDataSourceImpl
import team.retum.network.datasource.notice.NoticeDataSource
import team.retum.network.datasource.notice.NoticeDataSourceImpl
import team.retum.network.datasource.notification.NotificationDataSource
Expand Down Expand Up @@ -104,4 +106,8 @@ abstract class RemoteDataSourceModule {
@Binds
@Singleton
abstract fun bindServerStatusCheckDataSource(serverStatusCheckDataSourceImpl: RemoteServerStatusCheckDataSourceImpl): RemoteServerStatusCheckDataSource

@Binds
@Singleton
abstract fun bindInterestsDataSource(interestsDataSourceImpl: InterestsDataSourceImpl): InterestsDataSource
}
Original file line number Diff line number Diff line change
Expand Up @@ -133,4 +133,11 @@ internal object RequestUrls {

const val checkServerStatus = path
}

data object Interests {
private const val path = "/interests"

const val interests = path
const val interestsRecruitments = "$path/recruitment"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package team.retum.network.model.request.interests

import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class InterestsToggleRequest(
@Json(name = "code_ids") val codeIds: List<Long>,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package team.retum.network.model.response.interests

import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class FetchInterestsRecruitmentsResponse(
@Json(name = "recruitments") val recruitments: List<InterestRecruitments>,
) {
data class InterestRecruitments(
@Json(name = "id") val id: Int,
@Json(name = "company_id") val companyId: String,
@Json(name = "company_profile_url") val companyProfileUrl: String,
@Json(name = "train_pay") val trainPay: Int,
@Json(name = "military_support") val militarySupport: Boolean,
@Json(name = "hiring_jobs") val hiringJobs: String,
@Json(name = "bookmarked") val bookmarked: Boolean,
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package team.retum.network.model.response.interests

import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class FetchInterestsResponse(
@Json(name = "student_name") val studentName: String,
@Json(name = "interests") val interests: List<InterestMajor>,
) {
data class InterestMajor(
@Json(name = "id") val id: Int,
@Json(name = "student_id") val studentId: Int,
@Json(name = "code") val code: Int,
@Json(name = "keyword") val keyword: String,
)
}
1 change: 1 addition & 0 deletions feature/interests/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ android {
dependencies {
implementation(project(":core:common"))
implementation(project(":core:domain"))
implementation(project(":core:network"))

implementation(libs.kotlinx.collections.immutable)
}
Loading
Loading