diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml
index a1b6369e..05352f40 100644
--- a/.github/workflows/cd.yml
+++ b/.github/workflows/cd.yml
@@ -43,7 +43,7 @@ jobs:
id: sign_mobile
uses: r0adkll/sign-android-release@v1
with:
- releaseDirectory: mobile/build/outputs/apk/release
+ releaseDirectory: app/mobile/build/outputs/apk/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
@@ -53,7 +53,7 @@ jobs:
id: sign_tv
uses: r0adkll/sign-android-release@v1
with:
- releaseDirectory: tv/build/outputs/apk/release
+ releaseDirectory: app/tv/build/outputs/apk/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
@@ -63,13 +63,13 @@ jobs:
uses: actions/upload-artifact@v3.0.0
with:
name: mobile-release.apk
- path: mobile/build/outputs/apk/release/mobile-release-unsigned-signed.apk
+ path: app/mobile/build/outputs/apk/release/mobile-release-unsigned-signed.apk
- name: Upload TV APK
uses: actions/upload-artifact@v3.0.0
with:
name: tv-release.apk
- path: tv/build/outputs/apk/release/tv-release-unsigned-signed.apk
+ path: app/tv/build/outputs/apk/release/tv-release-unsigned-signed.apk
- name: Get Version & Tag
id: tag_version
@@ -92,7 +92,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: mobile/build/outputs/apk/release/mobile-release-unsigned-signed.apk
+ asset_path: app/mobile/build/outputs/apk/release/mobile-release-unsigned-signed.apk
asset_name: mobile-release.apk
asset_content_type: application/zip
@@ -103,6 +103,6 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: tv/build/outputs/apk/release/tv-release-unsigned-signed.apk
+ asset_path: app/tv/build/outputs/apk/release/tv-release-unsigned-signed.apk
asset_name: tv-release.apk
asset_content_type: application/zip
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8ee5b011..5052507e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -36,8 +36,5 @@ jobs:
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- - name: Run ktlint
- run: ./gradlew ktlintCheck
-
- name: Build with Gradle
run: ./gradlew clean assembleDebug
\ No newline at end of file
diff --git a/.idea/.name b/.idea/.name
index 4e9f9785..5f0a2288 100644
--- a/.idea/.name
+++ b/.idea/.name
@@ -1 +1 @@
-ExoPlayer.kt
\ No newline at end of file
+AndroidManifest.xml
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 754fadd2..a32e804c 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -7,16 +7,35 @@
+
diff --git a/data/.gitignore b/app/mobile/.gitignore
similarity index 100%
rename from data/.gitignore
rename to app/mobile/.gitignore
diff --git a/app/mobile/build.gradle.kts b/app/mobile/build.gradle.kts
new file mode 100644
index 00000000..95193be2
--- /dev/null
+++ b/app/mobile/build.gradle.kts
@@ -0,0 +1,22 @@
+plugins {
+ id("indistraw-app")
+}
+
+android {
+ namespace = "com.danbam.indistraw.app.mobile"
+ defaultConfig {
+ applicationId = "com.danbam.indi_straw.mobile"
+ versionCode = libs.versions.versionCode.get().toInt()
+ versionName = libs.versions.versionName.get()
+ }
+}
+
+dependencies {
+ implementation(project(":feature:mobile:auth"))
+ implementation(project(":feature:mobile:funding"))
+ implementation(project(":feature:mobile:main"))
+ implementation(project(":feature:mobile:movie"))
+ implementation(project(":feature:mobile:navigation"))
+ implementation(project(":feature:mobile:profile"))
+ implementation(project(":feature:mobile:search"))
+}
\ No newline at end of file
diff --git a/mobile/proguard-rules.pro b/app/mobile/proguard-rules.pro
similarity index 100%
rename from mobile/proguard-rules.pro
rename to app/mobile/proguard-rules.pro
diff --git a/mobile/src/main/AndroidManifest.xml b/app/mobile/src/main/AndroidManifest.xml
similarity index 91%
rename from mobile/src/main/AndroidManifest.xml
rename to app/mobile/src/main/AndroidManifest.xml
index e70d9fd5..bc163d7e 100644
--- a/mobile/src/main/AndroidManifest.xml
+++ b/app/mobile/src/main/AndroidManifest.xml
@@ -13,7 +13,7 @@
android:required="false" />
()
+val libs = versionCatalog.named("libs")
+
+plugins {
+ id("com.android.application")
+ id("kotlin-android")
+ id("kotlin-kapt")
+ id("dagger.hilt.android.plugin")
+}
+
+android {
+ compileSdk = libs.findVersion("compileSdk").get().requiredVersion.toInt()
+
+ defaultConfig {
+ minSdk = libs.findVersion("minSdk").get().requiredVersion.toInt()
+ targetSdk = libs.findVersion("targetSdk").get().requiredVersion.toInt()
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_1_8.toString()
+ }
+ buildFeatures {
+ compose = true
+ }
+ composeOptions {
+ kotlinCompilerExtensionVersion = libs.findVersion("compose").get().requiredVersion
+ }
+ hilt {
+ enableAggregatingTask = true
+ }
+ buildTypes {
+ getByName("release") {
+ isMinifyEnabled = true
+ isShrinkResources = true
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ packagingOptions.resources.excludes += setOf(
+ "META-INF/DEPENDENCIES",
+ "META-INF/LICENSE",
+ "META-INF/LICENSE.txt",
+ "META-INF/license.txt",
+ "META-INF/NOTICE",
+ "META-INF/NOTICE.txt",
+ "META-INF/INDEX.LIST",
+ "META-INF/notice.txt",
+ "META-INF/ASL2.0",
+ "META-INF/gradle/incremental.annotation.processors"
+ )
+}
+
+dependencies {
+ implementation(project(":core:di"))
+ implementation(project(":core:domain"))
+ implementation(project(":core:design-system"))
+ implementation(libs.findLibrary("androidx.core").get())
+ implementation(libs.findLibrary("androidx.lifecycle").get())
+ implementation(libs.findBundle("coroutine").get())
+ implementation(libs.findBundle("compose").get())
+ implementation(libs.findLibrary("accompanist.nav").get())
+ implementation(libs.findLibrary("hilt").get())
+ kapt(libs.findLibrary("hilt.compiler").get())
+ implementation(libs.findBundle("orbit").get())
+ implementation(libs.findLibrary("coil").get())
+ debugImplementation(libs.findBundle("compose.debug").get())
+ androidTestImplementation(libs.findLibrary("compose.test").get())
+}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/indistraw-core.gradle.kts b/buildSrc/src/main/kotlin/indistraw-core.gradle.kts
new file mode 100644
index 00000000..85b4b147
--- /dev/null
+++ b/buildSrc/src/main/kotlin/indistraw-core.gradle.kts
@@ -0,0 +1,24 @@
+val versionCatalog = project.extensions.getByType()
+val libs = versionCatalog.named("libs")
+
+plugins {
+ id("com.android.library")
+ id("org.jetbrains.kotlin.android")
+ id("kotlin-kapt")
+}
+
+android {
+ compileSdk = libs.findVersion("compileSdk").get().requiredVersion.toInt()
+
+ defaultConfig {
+ minSdk = libs.findVersion("minSdk").get().requiredVersion.toInt()
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_1_8.toString()
+ }
+}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/indistraw-feature.gradle.kts b/buildSrc/src/main/kotlin/indistraw-feature.gradle.kts
new file mode 100644
index 00000000..60ec1b91
--- /dev/null
+++ b/buildSrc/src/main/kotlin/indistraw-feature.gradle.kts
@@ -0,0 +1,50 @@
+val versionCatalog = project.extensions.getByType()
+val libs = versionCatalog.named("libs")
+
+plugins {
+ id("com.android.library")
+ id("kotlin-kapt")
+ id("kotlin-android")
+ id("dagger.hilt.android.plugin")
+}
+
+android {
+ compileSdk = libs.findVersion("compileSdk").get().requiredVersion.toInt()
+
+ defaultConfig {
+ minSdk = libs.findVersion("minSdk").get().requiredVersion.toInt()
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_1_8.toString()
+ }
+ buildFeatures {
+ compose = true
+ }
+ composeOptions {
+ kotlinCompilerExtensionVersion = libs.findVersion("compose").get().requiredVersion
+ }
+ hilt {
+ enableAggregatingTask = true
+ }
+}
+
+dependencies {
+ implementation(project(":core:domain"))
+ implementation(project(":core:design-system"))
+ implementation(libs.findLibrary("androidx.core").get())
+ implementation(libs.findLibrary("androidx.lifecycle").get())
+ implementation(libs.findBundle("coroutine").get())
+ implementation(libs.findBundle("compose").get())
+ implementation(libs.findLibrary("accompanist.nav").get())
+ implementation(libs.findLibrary("hilt").get())
+ kapt(libs.findLibrary("hilt.compiler").get())
+ implementation(libs.findBundle("orbit").get())
+ implementation(libs.findLibrary("coil").get())
+ debugImplementation(libs.findBundle("compose.debug").get())
+ androidTestImplementation(libs.findLibrary("compose.test").get())
+}
\ No newline at end of file
diff --git a/di/.gitignore b/core/data/.gitignore
similarity index 100%
rename from di/.gitignore
rename to core/data/.gitignore
diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts
new file mode 100644
index 00000000..99216ab7
--- /dev/null
+++ b/core/data/build.gradle.kts
@@ -0,0 +1,55 @@
+import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
+
+plugins {
+ id("indistraw-core")
+}
+
+android {
+ namespace = "com.danbam.indistraw.core.data"
+ defaultConfig {
+ buildConfigField(
+ "String",
+ "BASE_URL",
+ gradleLocalProperties(rootDir).getProperty("BASE_URL")
+ )
+ buildConfigField(
+ "String",
+ "ALL_IGNORE_PATH",
+ gradleLocalProperties(rootDir).getProperty("ALL_IGNORE_PATH")
+ )
+ buildConfigField(
+ "String",
+ "POST_IGNORE_PATH",
+ gradleLocalProperties(rootDir).getProperty("POST_IGNORE_PATH")
+ )
+ buildConfigField(
+ "String",
+ "GET_IGNORE_PATH",
+ gradleLocalProperties(rootDir).getProperty("GET_IGNORE_PATH")
+ )
+ buildConfigField(
+ "String",
+ "PATCH_IGNORE_PATH",
+ gradleLocalProperties(rootDir).getProperty("PATCH_IGNORE_PATH")
+ )
+ buildConfigField(
+ "String",
+ "JUSO_KEY",
+ gradleLocalProperties(rootDir).getProperty("JUSO_KEY")
+ )
+ }
+}
+
+dependencies {
+ implementation(project(":core:domain"))
+ implementation(libs.inject)
+ implementation(libs.room)
+ kapt(libs.room.compiler)
+ implementation(libs.bundles.retrofit)
+ implementation(libs.bundles.okhttp)
+ testImplementation(libs.okhttp.sse)
+ implementation(libs.paging)
+ testImplementation(libs.test.junit)
+ testImplementation(libs.test.mockito.kotlin)
+ testImplementation(libs.test.mockito.inline)
+}
\ No newline at end of file
diff --git a/data/src/main/AndroidManifest.xml b/core/data/src/main/AndroidManifest.xml
similarity index 100%
rename from data/src/main/AndroidManifest.xml
rename to core/data/src/main/AndroidManifest.xml
diff --git a/data/src/main/java/com/danbam/data/local/dao/RecentSearchDAO.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/dao/RecentSearchDAO.kt
similarity index 81%
rename from data/src/main/java/com/danbam/data/local/dao/RecentSearchDAO.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/dao/RecentSearchDAO.kt
index af474add..7f3048b5 100644
--- a/data/src/main/java/com/danbam/data/local/dao/RecentSearchDAO.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/dao/RecentSearchDAO.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.local.dao
+package com.danbam.indistraw.core.data.local.dao
import androidx.room.Dao
import androidx.room.Delete
@@ -6,7 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy.REPLACE
import androidx.room.Query
import androidx.room.Transaction
-import com.danbam.data.local.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.data.local.entity.search.RecentSearchEntity
@Dao
interface RecentSearchDao {
diff --git a/data/src/main/java/com/danbam/data/local/database/IndiStrawDataBase.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/database/IndiStrawDataBase.kt
similarity index 54%
rename from data/src/main/java/com/danbam/data/local/database/IndiStrawDataBase.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/database/IndiStrawDataBase.kt
index 8da1b02c..05ccce0a 100644
--- a/data/src/main/java/com/danbam/data/local/database/IndiStrawDataBase.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/database/IndiStrawDataBase.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.local.database
+package com.danbam.indistraw.core.data.local.database
import androidx.room.Database
import androidx.room.RoomDatabase
-import com.danbam.data.local.dao.RecentSearchDao
-import com.danbam.data.local.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.data.local.dao.RecentSearchDao
+import com.danbam.indistraw.core.data.local.entity.search.RecentSearchEntity
@Database(entities = [RecentSearchEntity::class], version = 1)
abstract class IndiStrawDataBase : RoomDatabase() {
diff --git a/data/src/main/java/com/danbam/data/local/datasource/AuthLocalDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/AuthLocalDataSource.kt
similarity index 90%
rename from data/src/main/java/com/danbam/data/local/datasource/AuthLocalDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/AuthLocalDataSource.kt
index 07ba5ec4..fd356539 100644
--- a/data/src/main/java/com/danbam/data/local/datasource/AuthLocalDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/AuthLocalDataSource.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.local.datasource
+package com.danbam.indistraw.core.data.local.datasource
import java.time.LocalDateTime
diff --git a/data/src/main/java/com/danbam/data/local/datasource/AuthLocalDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/AuthLocalDataSourceImpl.kt
similarity index 93%
rename from data/src/main/java/com/danbam/data/local/datasource/AuthLocalDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/AuthLocalDataSourceImpl.kt
index 897add3f..61a683e4 100644
--- a/data/src/main/java/com/danbam/data/local/datasource/AuthLocalDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/AuthLocalDataSourceImpl.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.local.datasource
+package com.danbam.indistraw.core.data.local.datasource
-import com.danbam.data.local.preference.AuthPreference
+import com.danbam.indistraw.core.data.local.preference.AuthPreference
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/local/datasource/SearchLocalDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SearchLocalDataSource.kt
similarity index 63%
rename from data/src/main/java/com/danbam/data/local/datasource/SearchLocalDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SearchLocalDataSource.kt
index 3275dca9..a6867130 100644
--- a/data/src/main/java/com/danbam/data/local/datasource/SearchLocalDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SearchLocalDataSource.kt
@@ -1,6 +1,7 @@
-package com.danbam.data.local.datasource
+package com.danbam.indistraw.core.data.local.datasource
+
+import com.danbam.indistraw.core.data.local.entity.search.RecentSearchEntity
-import com.danbam.data.local.entity.search.RecentSearchEntity
interface SearchLocalDataSource {
suspend fun search(recentSearchEntity: RecentSearchEntity)
diff --git a/data/src/main/java/com/danbam/data/local/datasource/SearchLocalDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SearchLocalDataSourceImpl.kt
similarity index 74%
rename from data/src/main/java/com/danbam/data/local/datasource/SearchLocalDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SearchLocalDataSourceImpl.kt
index 68235ec1..3efb68a9 100644
--- a/data/src/main/java/com/danbam/data/local/datasource/SearchLocalDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SearchLocalDataSourceImpl.kt
@@ -1,7 +1,7 @@
-package com.danbam.data.local.datasource
+package com.danbam.indistraw.core.data.local.datasource
-import com.danbam.data.local.dao.RecentSearchDao
-import com.danbam.data.local.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.data.local.dao.RecentSearchDao
+import com.danbam.indistraw.core.data.local.entity.search.RecentSearchEntity
import javax.inject.Inject
class SearchLocalDataSourceImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/local/datasource/SystemLocalDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SystemLocalDataSource.kt
similarity index 68%
rename from data/src/main/java/com/danbam/data/local/datasource/SystemLocalDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SystemLocalDataSource.kt
index 7cce2195..d7dcdbf4 100644
--- a/data/src/main/java/com/danbam/data/local/datasource/SystemLocalDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SystemLocalDataSource.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.local.datasource
+package com.danbam.indistraw.core.data.local.datasource
interface SystemLocalDataSource {
suspend fun saveLanguage(language: String)
diff --git a/data/src/main/java/com/danbam/data/local/datasource/SystemLocalDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SystemLocalDataSourceImpl.kt
similarity index 73%
rename from data/src/main/java/com/danbam/data/local/datasource/SystemLocalDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SystemLocalDataSourceImpl.kt
index eb9ecd0f..caa81d8c 100644
--- a/data/src/main/java/com/danbam/data/local/datasource/SystemLocalDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/datasource/SystemLocalDataSourceImpl.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.local.datasource
+package com.danbam.indistraw.core.data.local.datasource
-import com.danbam.data.local.preference.SystemPreference
+import com.danbam.indistraw.core.data.local.preference.SystemPreference
import javax.inject.Inject
class SystemLocalDataSourceImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/local/entity/search/RecentSearchEntity.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/entity/search/RecentSearchEntity.kt
similarity index 68%
rename from data/src/main/java/com/danbam/data/local/entity/search/RecentSearchEntity.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/entity/search/RecentSearchEntity.kt
index 9d6cd998..e2a9c956 100644
--- a/data/src/main/java/com/danbam/data/local/entity/search/RecentSearchEntity.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/entity/search/RecentSearchEntity.kt
@@ -1,8 +1,8 @@
-package com.danbam.data.local.entity.search
+package com.danbam.indistraw.core.data.local.entity.search
import androidx.room.Entity
import androidx.room.PrimaryKey
-import com.danbam.domain.entity.search.RecentSearchEntity as RecentSearchDomainEntity
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity as RecentSearchDomainEntity
@Entity(tableName = "recent_search")
data class RecentSearchEntity(
diff --git a/data/src/main/java/com/danbam/data/local/preference/AuthPreference.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/AuthPreference.kt
similarity index 90%
rename from data/src/main/java/com/danbam/data/local/preference/AuthPreference.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/AuthPreference.kt
index 311d69d4..47c1db84 100644
--- a/data/src/main/java/com/danbam/data/local/preference/AuthPreference.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/AuthPreference.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.local.preference
+package com.danbam.indistraw.core.data.local.preference
interface AuthPreference {
fun saveAccessToken(accessToken: String)
diff --git a/data/src/main/java/com/danbam/data/local/preference/AuthPreferenceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/AuthPreferenceImpl.kt
similarity index 88%
rename from data/src/main/java/com/danbam/data/local/preference/AuthPreferenceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/AuthPreferenceImpl.kt
index d1a6db6d..55a28144 100644
--- a/data/src/main/java/com/danbam/data/local/preference/AuthPreferenceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/AuthPreferenceImpl.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.local.preference
+package com.danbam.indistraw.core.data.local.preference
import android.content.SharedPreferences
-import com.danbam.data.local.util.clearString
-import com.danbam.data.local.util.fetchString
-import com.danbam.data.local.util.saveString
+import com.danbam.indistraw.core.local.util.clearString
+import com.danbam.indistraw.core.local.util.fetchString
+import com.danbam.indistraw.core.local.util.saveString
import javax.inject.Inject
class AuthPreferenceImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/local/preference/SystemPreference.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/SystemPreference.kt
similarity index 68%
rename from data/src/main/java/com/danbam/data/local/preference/SystemPreference.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/SystemPreference.kt
index 5c1b841e..de31b4f0 100644
--- a/data/src/main/java/com/danbam/data/local/preference/SystemPreference.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/SystemPreference.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.local.preference
+package com.danbam.indistraw.core.data.local.preference
interface SystemPreference {
suspend fun saveLanguage(language: String)
diff --git a/data/src/main/java/com/danbam/data/local/preference/SystemPreferenceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/SystemPreferenceImpl.kt
similarity index 93%
rename from data/src/main/java/com/danbam/data/local/preference/SystemPreferenceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/SystemPreferenceImpl.kt
index a7fe74ce..eb779107 100644
--- a/data/src/main/java/com/danbam/data/local/preference/SystemPreferenceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/preference/SystemPreferenceImpl.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.local.preference
+package com.danbam.indistraw.core.data.local.preference
import android.content.SharedPreferences
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/local/util/PreferenceUtil.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/util/PreferenceUtil.kt
similarity index 91%
rename from data/src/main/java/com/danbam/data/local/util/PreferenceUtil.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/util/PreferenceUtil.kt
index ddf1749f..4018c3ea 100644
--- a/data/src/main/java/com/danbam/data/local/util/PreferenceUtil.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/local/util/PreferenceUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.local.util
+package com.danbam.indistraw.core.local.util
import android.content.SharedPreferences
diff --git a/data/src/main/java/com/danbam/data/remote/api/AccountAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AccountAPI.kt
similarity index 69%
rename from data/src/main/java/com/danbam/data/remote/api/AccountAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AccountAPI.kt
index 9150e974..c09e62dd 100644
--- a/data/src/main/java/com/danbam/data/remote/api/AccountAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AccountAPI.kt
@@ -1,11 +1,11 @@
-package com.danbam.data.remote.api
-
-import com.danbam.data.remote.request.auth.ChangeAddressRequest
-import com.danbam.data.remote.request.auth.ChangePasswordRequest
-import com.danbam.data.remote.request.auth.EditProfileRequest
-import com.danbam.data.remote.response.funding.FindIdResponse
-import com.danbam.data.remote.response.auth.ProfileResponse
-import com.danbam.data.remote.util.EndPoint
+package com.danbam.indistraw.core.data.remote.api
+
+import com.danbam.indistraw.core.data.remote.request.auth.ChangeAddressRequest
+import com.danbam.indistraw.core.data.remote.request.auth.ChangePasswordRequest
+import com.danbam.indistraw.core.data.remote.request.auth.EditProfileRequest
+import com.danbam.indistraw.core.data.remote.response.auth.ProfileResponse
+import com.danbam.indistraw.core.data.remote.response.funding.FindIdResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.DELETE
diff --git a/data/src/main/java/com/danbam/data/remote/api/AddressAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AddressAPI.kt
similarity index 72%
rename from data/src/main/java/com/danbam/data/remote/api/AddressAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AddressAPI.kt
index 205c89d9..fb57ccd3 100644
--- a/data/src/main/java/com/danbam/data/remote/api/AddressAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AddressAPI.kt
@@ -1,7 +1,7 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.BuildConfig
-import com.danbam.data.remote.response.auth.AddressResponse
+import com.danbam.indistraw.core.data.BuildConfig
+import com.danbam.indistraw.core.data.remote.response.auth.AddressResponse
import retrofit2.http.GET
import retrofit2.http.Query
import retrofit2.http.Url
diff --git a/data/src/main/java/com/danbam/data/remote/api/AuthAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AuthAPI.kt
similarity index 82%
rename from data/src/main/java/com/danbam/data/remote/api/AuthAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AuthAPI.kt
index 25c04490..5237d788 100644
--- a/data/src/main/java/com/danbam/data/remote/api/AuthAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/AuthAPI.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.remote.request.auth.LoginRequest
-import com.danbam.data.remote.request.auth.SignUpRequest
-import com.danbam.data.remote.response.auth.LoginResponse
-import com.danbam.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.request.auth.LoginRequest
+import com.danbam.indistraw.core.data.remote.request.auth.SignUpRequest
+import com.danbam.indistraw.core.data.remote.response.auth.LoginResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.DELETE
diff --git a/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/BannerAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/BannerAPI.kt
new file mode 100644
index 00000000..fdbdebea
--- /dev/null
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/BannerAPI.kt
@@ -0,0 +1,10 @@
+package com.danbam.indistraw.core.data.remote.api
+
+import com.danbam.indistraw.core.data.remote.response.banner.BannerResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
+import retrofit2.http.GET
+
+interface BannerAPI {
+ @GET("${EndPoint.BANNER}/")
+ suspend fun getBanner(): List
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/api/CrowdFundingAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/CrowdFundingAPI.kt
similarity index 66%
rename from data/src/main/java/com/danbam/data/remote/api/CrowdFundingAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/CrowdFundingAPI.kt
index bd870692..e19f8a3f 100644
--- a/data/src/main/java/com/danbam/data/remote/api/CrowdFundingAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/CrowdFundingAPI.kt
@@ -1,11 +1,11 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.remote.request.funding.FundingCreateRequest
-import com.danbam.data.remote.response.funding.FundingPageResponse
-import com.danbam.data.remote.response.funding.FundingDetailResponse
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.funding.MyFundingResponse
-import com.danbam.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.request.funding.FundingCreateRequest
+import com.danbam.indistraw.core.data.remote.response.funding.FundingDetailResponse
+import com.danbam.indistraw.core.data.remote.response.funding.FundingPageResponse
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.funding.MyFundingResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
diff --git a/data/src/main/java/com/danbam/data/remote/api/FileAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/FileAPI.kt
similarity index 59%
rename from data/src/main/java/com/danbam/data/remote/api/FileAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/FileAPI.kt
index 177e1178..d0311d70 100644
--- a/data/src/main/java/com/danbam/data/remote/api/FileAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/FileAPI.kt
@@ -1,7 +1,7 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.remote.response.file.FileResponse
-import com.danbam.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.response.file.FileResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import okhttp3.MultipartBody
import retrofit2.http.Multipart
import retrofit2.http.POST
diff --git a/data/src/main/java/com/danbam/data/remote/api/FundingAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/FundingAPI.kt
similarity index 64%
rename from data/src/main/java/com/danbam/data/remote/api/FundingAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/FundingAPI.kt
index ceb7694c..057949a8 100644
--- a/data/src/main/java/com/danbam/data/remote/api/FundingAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/FundingAPI.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.remote.request.funding.FundingRequest
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.funding.ReceiptResponse
-import com.danbam.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.request.funding.FundingRequest
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.funding.ReceiptResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
diff --git a/data/src/main/java/com/danbam/data/remote/api/MovieAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/MovieAPI.kt
similarity index 65%
rename from data/src/main/java/com/danbam/data/remote/api/MovieAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/MovieAPI.kt
index c566f13e..34f79cf4 100644
--- a/data/src/main/java/com/danbam/data/remote/api/MovieAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/MovieAPI.kt
@@ -1,17 +1,17 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.remote.request.movie.MovieHistoryRequest
-import com.danbam.data.remote.request.movie.MovieCreateRequest
-import com.danbam.data.remote.request.movie.MoviePeopleRequest
-import com.danbam.data.remote.response.movie.AddMoviePeopleResponse
-import com.danbam.data.remote.response.movie.DetailMovieHistoryResponse
-import com.danbam.data.remote.response.movie.MovieDetailResponse
-import com.danbam.data.remote.response.movie.MovieHistoryResponse
-import com.danbam.data.remote.response.movie.MoviePageResponse
-import com.danbam.data.remote.response.movie.MoviePeopleDetailResponse
-import com.danbam.data.remote.response.movie.MoviePeopleResponse
-import com.danbam.data.remote.response.movie.MovieResponse
-import com.danbam.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.request.movie.MovieCreateRequest
+import com.danbam.indistraw.core.data.remote.request.movie.MovieHistoryRequest
+import com.danbam.indistraw.core.data.remote.request.movie.MoviePeopleRequest
+import com.danbam.indistraw.core.data.remote.response.movie.AddMoviePeopleResponse
+import com.danbam.indistraw.core.data.remote.response.movie.DetailMovieHistoryResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieDetailResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieHistoryResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePageResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePeopleDetailResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePeopleResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
diff --git a/data/src/main/java/com/danbam/data/remote/api/QRCodeAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/QRCodeAPI.kt
similarity index 55%
rename from data/src/main/java/com/danbam/data/remote/api/QRCodeAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/QRCodeAPI.kt
index e057da1f..a552b277 100644
--- a/data/src/main/java/com/danbam/data/remote/api/QRCodeAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/QRCodeAPI.kt
@@ -1,8 +1,8 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.remote.request.auth.CheckQRCodeRequest
-import com.danbam.data.remote.response.auth.GetQRCodeResponse
-import com.danbam.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.request.auth.CheckQRCodeRequest
+import com.danbam.indistraw.core.data.remote.response.auth.GetQRCodeResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.POST
diff --git a/data/src/main/java/com/danbam/data/remote/api/SearchAPI.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/SearchAPI.kt
similarity index 65%
rename from data/src/main/java/com/danbam/data/remote/api/SearchAPI.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/SearchAPI.kt
index ffa20ef1..70d83705 100644
--- a/data/src/main/java/com/danbam/data/remote/api/SearchAPI.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/api/SearchAPI.kt
@@ -1,10 +1,9 @@
-package com.danbam.data.remote.api
+package com.danbam.indistraw.core.data.remote.api
-import com.danbam.data.remote.response.funding.FundingPageResponse
-import com.danbam.data.remote.response.movie.MoviePageResponse
-import com.danbam.data.remote.response.search.PopularTagResponse
-import com.danbam.data.remote.response.search.RelatedSearchResponse
-import com.danbam.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.response.funding.FundingPageResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePageResponse
+import com.danbam.indistraw.core.data.remote.response.search.PopularTagResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
import retrofit2.http.GET
import retrofit2.http.Query
@@ -12,7 +11,7 @@ interface SearchAPI {
@GET("${EndPoint.SEARCH}/")
suspend fun gerRelatedSearch(
@Query("keyword") keyword: String
- ): List
+ ): List
@GET("${EndPoint.SEARCH}/movie/")
suspend fun searchMovie(
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/AccountRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AccountRemoteDataSource.kt
similarity index 50%
rename from data/src/main/java/com/danbam/data/remote/datasource/AccountRemoteDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AccountRemoteDataSource.kt
index 3f85ad3c..c434e109 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/AccountRemoteDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AccountRemoteDataSource.kt
@@ -1,10 +1,10 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.remote.request.auth.ChangeAddressRequest
-import com.danbam.data.remote.request.auth.ChangePasswordRequest
-import com.danbam.data.remote.request.auth.EditProfileRequest
-import com.danbam.data.remote.response.funding.FindIdResponse
-import com.danbam.data.remote.response.auth.ProfileResponse
+import com.danbam.indistraw.core.data.remote.request.auth.ChangeAddressRequest
+import com.danbam.indistraw.core.data.remote.request.auth.ChangePasswordRequest
+import com.danbam.indistraw.core.data.remote.request.auth.EditProfileRequest
+import com.danbam.indistraw.core.data.remote.response.auth.ProfileResponse
+import com.danbam.indistraw.core.data.remote.response.funding.FindIdResponse
interface AccountRemoteDataSource {
suspend fun findId(phoneNumber: String): FindIdResponse
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/AccountRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AccountRemoteDataSourceImpl.kt
similarity index 64%
rename from data/src/main/java/com/danbam/data/remote/datasource/AccountRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AccountRemoteDataSourceImpl.kt
index 00cd5f42..c0a9a808 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/AccountRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AccountRemoteDataSourceImpl.kt
@@ -1,18 +1,18 @@
-package com.danbam.data.remote.datasource
-
-import com.danbam.data.remote.api.AccountAPI
-import com.danbam.data.remote.request.auth.ChangeAddressRequest
-import com.danbam.data.remote.request.auth.ChangePasswordRequest
-import com.danbam.data.remote.request.auth.EditProfileRequest
-import com.danbam.data.remote.response.funding.FindIdResponse
-import com.danbam.data.remote.response.auth.ProfileResponse
-import com.danbam.data.remote.util.errorHandling
-import com.danbam.data.remote.util.indiStrawApiCall
+package com.danbam.indistraw.core.data.remote.datasource
+
+import com.danbam.indistraw.core.data.remote.api.AccountAPI
+import com.danbam.indistraw.core.data.remote.request.auth.ChangeAddressRequest
+import com.danbam.indistraw.core.data.remote.request.auth.ChangePasswordRequest
+import com.danbam.indistraw.core.data.remote.request.auth.EditProfileRequest
+import com.danbam.indistraw.core.data.remote.response.auth.ProfileResponse
+import com.danbam.indistraw.core.data.remote.response.funding.FindIdResponse
+import com.danbam.indistraw.core.data.remote.util.errorHandling
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import javax.inject.Inject
class AccountRemoteDataSourceImpl @Inject constructor(
private val accountAPI: AccountAPI,
-) : AccountRemoteDataSource {
+) : com.danbam.indistraw.core.data.remote.datasource.AccountRemoteDataSource {
override suspend fun findId(phoneNumber: String): FindIdResponse = indiStrawApiCall {
accountAPI.findId(phoneNumber = phoneNumber)
}
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/AddressRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AddressRemoteDataSource.kt
similarity index 60%
rename from data/src/main/java/com/danbam/data/remote/datasource/AddressRemoteDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AddressRemoteDataSource.kt
index 5d4e4c63..c1b8c175 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/AddressRemoteDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AddressRemoteDataSource.kt
@@ -1,7 +1,7 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
import androidx.paging.PagingData
-import com.danbam.data.remote.response.auth.AddressResponse
+import com.danbam.indistraw.core.data.remote.response.auth.AddressResponse
import kotlinx.coroutines.flow.Flow
interface AddressRemoteDataSource {
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/AddressRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AddressRemoteDataSourceImpl.kt
similarity index 70%
rename from data/src/main/java/com/danbam/data/remote/datasource/AddressRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AddressRemoteDataSourceImpl.kt
index 7b4667c2..5e376db9 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/AddressRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AddressRemoteDataSourceImpl.kt
@@ -1,11 +1,11 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
-import com.danbam.data.remote.api.AddressAPI
-import com.danbam.data.remote.pagingsource.AddressPagingSource
-import com.danbam.data.remote.response.auth.AddressResponse
+import com.danbam.indistraw.core.data.remote.api.AddressAPI
+import com.danbam.indistraw.core.data.remote.pagingsource.AddressPagingSource
+import com.danbam.indistraw.core.data.remote.response.auth.AddressResponse
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/AuthRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AuthRemoteDataSource.kt
similarity index 64%
rename from data/src/main/java/com/danbam/data/remote/datasource/AuthRemoteDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AuthRemoteDataSource.kt
index 1ea96257..e231959c 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/AuthRemoteDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AuthRemoteDataSource.kt
@@ -1,8 +1,8 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.remote.request.auth.LoginRequest
-import com.danbam.data.remote.request.auth.SignUpRequest
-import com.danbam.data.remote.response.auth.LoginResponse
+import com.danbam.indistraw.core.data.remote.request.auth.LoginRequest
+import com.danbam.indistraw.core.data.remote.request.auth.SignUpRequest
+import com.danbam.indistraw.core.data.remote.response.auth.LoginResponse
interface AuthRemoteDataSource {
suspend fun signup(signUpRequest: SignUpRequest)
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/AuthRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AuthRemoteDataSourceImpl.kt
similarity index 73%
rename from data/src/main/java/com/danbam/data/remote/datasource/AuthRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AuthRemoteDataSourceImpl.kt
index 74f45362..996809ac 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/AuthRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/AuthRemoteDataSourceImpl.kt
@@ -1,16 +1,16 @@
-package com.danbam.data.remote.datasource
-
-import com.danbam.data.remote.api.AuthAPI
-import com.danbam.data.remote.request.auth.LoginRequest
-import com.danbam.data.remote.request.auth.SignUpRequest
-import com.danbam.data.remote.response.auth.LoginResponse
-import com.danbam.data.remote.util.errorHandling
-import com.danbam.data.remote.util.indiStrawApiCall
+package com.danbam.indistraw.core.data.remote.datasource
+
+import com.danbam.indistraw.core.data.remote.api.AuthAPI
+import com.danbam.indistraw.core.data.remote.request.auth.LoginRequest
+import com.danbam.indistraw.core.data.remote.request.auth.SignUpRequest
+import com.danbam.indistraw.core.data.remote.response.auth.LoginResponse
+import com.danbam.indistraw.core.data.remote.util.errorHandling
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import javax.inject.Inject
class AuthRemoteDataSourceImpl @Inject constructor(
private val authAPI: AuthAPI,
-) : AuthRemoteDataSource {
+) : com.danbam.indistraw.core.data.remote.datasource.AuthRemoteDataSource {
override suspend fun signup(signUpRequest: SignUpRequest) = indiStrawApiCall {
authAPI.signup(signUpRequest = signUpRequest)
}
diff --git a/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/BannerRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/BannerRemoteDataSource.kt
new file mode 100644
index 00000000..fb6ff449
--- /dev/null
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/BannerRemoteDataSource.kt
@@ -0,0 +1,7 @@
+package com.danbam.indistraw.core.data.remote.datasource
+
+import com.danbam.indistraw.core.data.remote.response.banner.BannerResponse
+
+interface BannerRemoteDataSource {
+ suspend fun getBanner(): List
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/BannerRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/BannerRemoteDataSourceImpl.kt
similarity index 50%
rename from data/src/main/java/com/danbam/data/remote/datasource/BannerRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/BannerRemoteDataSourceImpl.kt
index 9e108e20..4d61515b 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/BannerRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/BannerRemoteDataSourceImpl.kt
@@ -1,8 +1,8 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.remote.api.BannerAPI
-import com.danbam.data.remote.response.banner.BannerResponse
-import com.danbam.data.remote.util.indiStrawApiCall
+import com.danbam.indistraw.core.data.remote.api.BannerAPI
+import com.danbam.indistraw.core.data.remote.response.banner.BannerResponse
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import javax.inject.Inject
class BannerRemoteDataSourceImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/CrowdFundingRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/CrowdFundingRemoteDataSource.kt
similarity index 56%
rename from data/src/main/java/com/danbam/data/remote/datasource/CrowdFundingRemoteDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/CrowdFundingRemoteDataSource.kt
index dbcbc199..eaeaec46 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/CrowdFundingRemoteDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/CrowdFundingRemoteDataSource.kt
@@ -1,10 +1,10 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
import androidx.paging.PagingData
-import com.danbam.data.remote.request.funding.FundingCreateRequest
-import com.danbam.data.remote.response.funding.FundingDetailResponse
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.funding.MyFundingResponse
+import com.danbam.indistraw.core.data.remote.request.funding.FundingCreateRequest
+import com.danbam.indistraw.core.data.remote.response.funding.FundingDetailResponse
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.funding.MyFundingResponse
import kotlinx.coroutines.flow.Flow
interface CrowdFundingRemoteDataSource {
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/CrowdFundingRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/CrowdFundingRemoteDataSourceImpl.kt
similarity index 69%
rename from data/src/main/java/com/danbam/data/remote/datasource/CrowdFundingRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/CrowdFundingRemoteDataSourceImpl.kt
index 52f3a985..76391214 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/CrowdFundingRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/CrowdFundingRemoteDataSourceImpl.kt
@@ -1,16 +1,16 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
-import com.danbam.data.remote.api.CrowdFundingAPI
-import com.danbam.data.remote.pagingsource.FundingPagingSource
-import com.danbam.data.remote.request.funding.FundingCreateRequest
-import com.danbam.data.remote.response.funding.FundingDetailResponse
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.funding.MyFundingResponse
-import com.danbam.data.remote.util.errorHandling
-import com.danbam.data.remote.util.indiStrawApiCall
+import com.danbam.indistraw.core.data.remote.api.CrowdFundingAPI
+import com.danbam.indistraw.core.data.remote.pagingsource.FundingPagingSource
+import com.danbam.indistraw.core.data.remote.request.funding.FundingCreateRequest
+import com.danbam.indistraw.core.data.remote.response.funding.FundingDetailResponse
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.funding.MyFundingResponse
+import com.danbam.indistraw.core.data.remote.util.errorHandling
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/FileRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FileRemoteDataSource.kt
similarity index 50%
rename from data/src/main/java/com/danbam/data/remote/datasource/FileRemoteDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FileRemoteDataSource.kt
index 724a70fd..3a5867cc 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/FileRemoteDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FileRemoteDataSource.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.remote.response.file.FileResponse
+import com.danbam.indistraw.core.data.remote.response.file.FileResponse
import okhttp3.MultipartBody
interface FileRemoteDataSource {
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/FileRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FileRemoteDataSourceImpl.kt
similarity index 55%
rename from data/src/main/java/com/danbam/data/remote/datasource/FileRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FileRemoteDataSourceImpl.kt
index f95fb411..c3f75e44 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/FileRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FileRemoteDataSourceImpl.kt
@@ -1,8 +1,8 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.remote.api.FileAPI
-import com.danbam.data.remote.response.file.FileResponse
-import com.danbam.data.remote.util.indiStrawApiCall
+import com.danbam.indistraw.core.data.remote.api.FileAPI
+import com.danbam.indistraw.core.data.remote.response.file.FileResponse
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import okhttp3.MultipartBody
import javax.inject.Inject
diff --git a/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FundingRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FundingRemoteDataSource.kt
new file mode 100644
index 00000000..7ca78028
--- /dev/null
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FundingRemoteDataSource.kt
@@ -0,0 +1,11 @@
+package com.danbam.indistraw.core.data.remote.datasource
+
+import com.danbam.indistraw.core.data.remote.request.funding.FundingRequest
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.funding.ReceiptResponse
+
+interface FundingRemoteDataSource {
+ suspend fun getReceipt(): ReceiptResponse
+ suspend fun funding(fundingIdx: Long, rewardIdx: Long, fundingRequest: FundingRequest)
+ suspend fun fundingList(): List
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/FundingRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FundingRemoteDataSourceImpl.kt
similarity index 59%
rename from data/src/main/java/com/danbam/data/remote/datasource/FundingRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FundingRemoteDataSourceImpl.kt
index 10ce7e4f..4363c095 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/FundingRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/FundingRemoteDataSourceImpl.kt
@@ -1,11 +1,11 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.remote.api.FundingAPI
-import com.danbam.data.remote.request.funding.FundingRequest
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.funding.ReceiptResponse
-import com.danbam.data.remote.util.errorHandling
-import com.danbam.data.remote.util.indiStrawApiCall
+import com.danbam.indistraw.core.data.remote.api.FundingAPI
+import com.danbam.indistraw.core.data.remote.request.funding.FundingRequest
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.funding.ReceiptResponse
+import com.danbam.indistraw.core.data.remote.util.errorHandling
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import javax.inject.Inject
class FundingRemoteDataSourceImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/MovieRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/MovieRemoteDataSource.kt
similarity index 54%
rename from data/src/main/java/com/danbam/data/remote/datasource/MovieRemoteDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/MovieRemoteDataSource.kt
index 2722c7e0..e49ea978 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/MovieRemoteDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/MovieRemoteDataSource.kt
@@ -1,16 +1,16 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
import androidx.paging.PagingData
-import com.danbam.data.remote.request.movie.MovieCreateRequest
-import com.danbam.data.remote.request.movie.MovieHistoryRequest
-import com.danbam.data.remote.request.movie.MoviePeopleRequest
-import com.danbam.data.remote.response.movie.AddMoviePeopleResponse
-import com.danbam.data.remote.response.movie.DetailMovieHistoryResponse
-import com.danbam.data.remote.response.movie.MovieDetailResponse
-import com.danbam.data.remote.response.movie.MovieHistoryResponse
-import com.danbam.data.remote.response.movie.MoviePeopleDetailResponse
-import com.danbam.data.remote.response.movie.MoviePeopleResponse
-import com.danbam.data.remote.response.movie.MovieResponse
+import com.danbam.indistraw.core.data.remote.request.movie.MovieCreateRequest
+import com.danbam.indistraw.core.data.remote.request.movie.MovieHistoryRequest
+import com.danbam.indistraw.core.data.remote.request.movie.MoviePeopleRequest
+import com.danbam.indistraw.core.data.remote.response.movie.AddMoviePeopleResponse
+import com.danbam.indistraw.core.data.remote.response.movie.DetailMovieHistoryResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieDetailResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieHistoryResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePeopleDetailResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePeopleResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieResponse
import kotlinx.coroutines.flow.Flow
interface MovieRemoteDataSource {
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/MovieRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/MovieRemoteDataSourceImpl.kt
similarity index 71%
rename from data/src/main/java/com/danbam/data/remote/datasource/MovieRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/MovieRemoteDataSourceImpl.kt
index cf8ec3d0..8077ce03 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/MovieRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/MovieRemoteDataSourceImpl.kt
@@ -1,21 +1,21 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
-import com.danbam.data.remote.api.MovieAPI
-import com.danbam.data.remote.pagingsource.MoviePagingSource
-import com.danbam.data.remote.request.movie.MovieCreateRequest
-import com.danbam.data.remote.request.movie.MovieHistoryRequest
-import com.danbam.data.remote.request.movie.MoviePeopleRequest
-import com.danbam.data.remote.response.movie.DetailMovieHistoryResponse
-import com.danbam.data.remote.response.movie.MoviePeopleDetailResponse
-import com.danbam.data.remote.response.movie.MovieDetailResponse
-import com.danbam.data.remote.response.movie.MovieHistoryResponse
-import com.danbam.data.remote.response.movie.MoviePeopleResponse
-import com.danbam.data.remote.response.movie.MovieResponse
-import com.danbam.data.remote.util.errorHandling
-import com.danbam.data.remote.util.indiStrawApiCall
+import com.danbam.indistraw.core.data.remote.api.MovieAPI
+import com.danbam.indistraw.core.data.remote.pagingsource.MoviePagingSource
+import com.danbam.indistraw.core.data.remote.request.movie.MovieCreateRequest
+import com.danbam.indistraw.core.data.remote.request.movie.MovieHistoryRequest
+import com.danbam.indistraw.core.data.remote.request.movie.MoviePeopleRequest
+import com.danbam.indistraw.core.data.remote.response.movie.DetailMovieHistoryResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieDetailResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieHistoryResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePeopleDetailResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MoviePeopleResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieResponse
+import com.danbam.indistraw.core.data.remote.util.errorHandling
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/QRCodeRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/QRCodeRemoteDataSource.kt
similarity index 52%
rename from data/src/main/java/com/danbam/data/remote/datasource/QRCodeRemoteDataSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/QRCodeRemoteDataSource.kt
index 55606d20..dc936021 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/QRCodeRemoteDataSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/QRCodeRemoteDataSource.kt
@@ -1,7 +1,7 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.remote.response.auth.GetQRCodeResponse
-import com.danbam.data.remote.response.auth.LoginResponse
+import com.danbam.indistraw.core.data.remote.response.auth.GetQRCodeResponse
+import com.danbam.indistraw.core.data.remote.response.auth.LoginResponse
import java.util.UUID
interface QRCodeRemoteDataSource {
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/QRCodeRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/QRCodeRemoteDataSourceImpl.kt
similarity index 76%
rename from data/src/main/java/com/danbam/data/remote/datasource/QRCodeRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/QRCodeRemoteDataSourceImpl.kt
index 978333e9..b9e76b81 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/QRCodeRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/QRCodeRemoteDataSourceImpl.kt
@@ -1,13 +1,13 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
-import com.danbam.data.BuildConfig
-import com.danbam.data.remote.api.QRCodeAPI
-import com.danbam.data.remote.request.auth.CheckQRCodeRequest
-import com.danbam.data.remote.response.auth.GetQRCodeResponse
-import com.danbam.data.remote.response.auth.LoginResponse
-import com.danbam.data.remote.util.EndPoint
-import com.danbam.data.remote.util.errorHandling
-import com.danbam.data.remote.util.indiStrawApiCall
+import com.danbam.indistraw.core.data.BuildConfig
+import com.danbam.indistraw.core.data.remote.api.QRCodeAPI
+import com.danbam.indistraw.core.data.remote.request.auth.CheckQRCodeRequest
+import com.danbam.indistraw.core.data.remote.response.auth.GetQRCodeResponse
+import com.danbam.indistraw.core.data.remote.response.auth.LoginResponse
+import com.danbam.indistraw.core.data.remote.util.EndPoint
+import com.danbam.indistraw.core.data.remote.util.errorHandling
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import com.google.gson.Gson
import okhttp3.CacheControl
import okhttp3.OkHttpClient
diff --git a/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/SearchRemoteDataSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/SearchRemoteDataSource.kt
new file mode 100644
index 00000000..2a95fb3c
--- /dev/null
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/SearchRemoteDataSource.kt
@@ -0,0 +1,14 @@
+package com.danbam.indistraw.core.data.remote.datasource
+
+import androidx.paging.PagingData
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieResponse
+import com.danbam.indistraw.core.data.remote.response.search.PopularTagResponse
+import kotlinx.coroutines.flow.Flow
+
+interface SearchRemoteDataSource {
+ suspend fun getRelatedSearch(keyword: String): List
+ suspend fun searchMovie(keyword: String): Flow>
+ suspend fun searchFunding(keyword: String): Flow>
+ suspend fun popularTag(): PopularTagResponse
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/SearchRemoteDataSourceImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/SearchRemoteDataSourceImpl.kt
similarity index 67%
rename from data/src/main/java/com/danbam/data/remote/datasource/SearchRemoteDataSourceImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/SearchRemoteDataSourceImpl.kt
index 8049b8da..b6c0ba0b 100644
--- a/data/src/main/java/com/danbam/data/remote/datasource/SearchRemoteDataSourceImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/datasource/SearchRemoteDataSourceImpl.kt
@@ -1,23 +1,22 @@
-package com.danbam.data.remote.datasource
+package com.danbam.indistraw.core.data.remote.datasource
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
-import com.danbam.data.remote.api.SearchAPI
-import com.danbam.data.remote.pagingsource.SearchFundingPagingSource
-import com.danbam.data.remote.pagingsource.SearchMoviePagingSource
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.movie.MovieResponse
-import com.danbam.data.remote.response.search.PopularTagResponse
-import com.danbam.data.remote.response.search.RelatedSearchResponse
-import com.danbam.data.remote.util.indiStrawApiCall
+import com.danbam.indistraw.core.data.remote.api.SearchAPI
+import com.danbam.indistraw.core.data.remote.pagingsource.SearchFundingPagingSource
+import com.danbam.indistraw.core.data.remote.pagingsource.SearchMoviePagingSource
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.response.movie.MovieResponse
+import com.danbam.indistraw.core.data.remote.response.search.PopularTagResponse
+import com.danbam.indistraw.core.data.remote.util.indiStrawApiCall
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
class SearchRemoteDataSourceImpl @Inject constructor(
private val searchAPI: SearchAPI
) : SearchRemoteDataSource {
- override suspend fun getRelatedSearch(keyword: String): List =
+ override suspend fun getRelatedSearch(keyword: String): List =
indiStrawApiCall {
searchAPI.gerRelatedSearch(keyword)
}
diff --git a/data/src/main/java/com/danbam/data/remote/interceptor/IndiStrawInterceptor.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/interceptor/IndiStrawInterceptor.kt
similarity index 91%
rename from data/src/main/java/com/danbam/data/remote/interceptor/IndiStrawInterceptor.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/interceptor/IndiStrawInterceptor.kt
index ca00ac13..ef2a5e6c 100644
--- a/data/src/main/java/com/danbam/data/remote/interceptor/IndiStrawInterceptor.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/interceptor/IndiStrawInterceptor.kt
@@ -1,13 +1,13 @@
-package com.danbam.data.remote.interceptor
+package com.danbam.indistraw.core.data.remote.interceptor
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkInfo
-import com.danbam.data.BuildConfig
-import com.danbam.data.local.datasource.AuthLocalDataSource
-import com.danbam.data.remote.response.auth.LoginResponse
-import com.danbam.data.util.default
-import com.danbam.domain.exception.ExpiredTokenException
+import com.danbam.indistraw.core.data.BuildConfig
+import com.danbam.indistraw.core.data.local.datasource.AuthLocalDataSource
+import com.danbam.indistraw.core.data.remote.response.auth.LoginResponse
+import com.danbam.indistraw.core.data.util.default
+import com.danbam.indistraw.core.domain.exception.ExpiredTokenException
import com.google.gson.Gson
import okhttp3.Interceptor
import okhttp3.MediaType.Companion.toMediaTypeOrNull
@@ -24,6 +24,7 @@ class IndiStrawInterceptor @Inject constructor(
companion object {
lateinit var context: Context
}
+
override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()
val method = request.method.lowercase()
diff --git a/data/src/main/java/com/danbam/data/remote/pagingsource/AddressPagingSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/AddressPagingSource.kt
similarity index 85%
rename from data/src/main/java/com/danbam/data/remote/pagingsource/AddressPagingSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/AddressPagingSource.kt
index 0c0bb40a..469716ac 100644
--- a/data/src/main/java/com/danbam/data/remote/pagingsource/AddressPagingSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/AddressPagingSource.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.remote.pagingsource
+package com.danbam.indistraw.core.data.remote.pagingsource
import androidx.paging.PagingSource
import androidx.paging.PagingState
-import com.danbam.data.remote.api.AddressAPI
-import com.danbam.data.remote.response.auth.AddressResponse
+import com.danbam.indistraw.core.data.remote.api.AddressAPI
+import com.danbam.indistraw.core.data.remote.response.auth.AddressResponse
import javax.inject.Inject
class AddressPagingSource(
diff --git a/data/src/main/java/com/danbam/data/remote/pagingsource/FundingPagingSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/FundingPagingSource.kt
similarity index 83%
rename from data/src/main/java/com/danbam/data/remote/pagingsource/FundingPagingSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/FundingPagingSource.kt
index 2c213c2e..298cae5f 100644
--- a/data/src/main/java/com/danbam/data/remote/pagingsource/FundingPagingSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/FundingPagingSource.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.remote.pagingsource
+package com.danbam.indistraw.core.data.remote.pagingsource
import androidx.paging.PagingSource
import androidx.paging.PagingState
-import com.danbam.data.remote.api.CrowdFundingAPI
-import com.danbam.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.api.CrowdFundingAPI
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
import javax.inject.Inject
class FundingPagingSource(
diff --git a/data/src/main/java/com/danbam/data/remote/pagingsource/MoviePagingSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/MoviePagingSource.kt
similarity index 84%
rename from data/src/main/java/com/danbam/data/remote/pagingsource/MoviePagingSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/MoviePagingSource.kt
index 486ccadc..4cd0ea20 100644
--- a/data/src/main/java/com/danbam/data/remote/pagingsource/MoviePagingSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/MoviePagingSource.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.remote.pagingsource
+package com.danbam.indistraw.core.data.remote.pagingsource
import androidx.paging.PagingSource
import androidx.paging.PagingState
-import com.danbam.data.remote.api.MovieAPI
-import com.danbam.data.remote.response.movie.MovieResponse
+import com.danbam.indistraw.core.data.remote.api.MovieAPI
+import com.danbam.indistraw.core.data.remote.response.movie.MovieResponse
import javax.inject.Inject
class MoviePagingSource(
diff --git a/data/src/main/java/com/danbam/data/remote/pagingsource/SearchFundingPagingSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/SearchFundingPagingSource.kt
similarity index 84%
rename from data/src/main/java/com/danbam/data/remote/pagingsource/SearchFundingPagingSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/SearchFundingPagingSource.kt
index fab073de..b6967701 100644
--- a/data/src/main/java/com/danbam/data/remote/pagingsource/SearchFundingPagingSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/SearchFundingPagingSource.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.remote.pagingsource
+package com.danbam.indistraw.core.data.remote.pagingsource
import androidx.paging.PagingSource
import androidx.paging.PagingState
-import com.danbam.data.remote.api.SearchAPI
-import com.danbam.data.remote.response.funding.FundingResponse
+import com.danbam.indistraw.core.data.remote.api.SearchAPI
+import com.danbam.indistraw.core.data.remote.response.funding.FundingResponse
import javax.inject.Inject
class SearchFundingPagingSource(
diff --git a/data/src/main/java/com/danbam/data/remote/pagingsource/SearchMoviePagingSource.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/SearchMoviePagingSource.kt
similarity index 84%
rename from data/src/main/java/com/danbam/data/remote/pagingsource/SearchMoviePagingSource.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/SearchMoviePagingSource.kt
index a594f230..0ccf55a0 100644
--- a/data/src/main/java/com/danbam/data/remote/pagingsource/SearchMoviePagingSource.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/pagingsource/SearchMoviePagingSource.kt
@@ -1,9 +1,9 @@
-package com.danbam.data.remote.pagingsource
+package com.danbam.indistraw.core.data.remote.pagingsource
import androidx.paging.PagingSource
import androidx.paging.PagingState
-import com.danbam.data.remote.api.SearchAPI
-import com.danbam.data.remote.response.movie.MovieResponse
+import com.danbam.indistraw.core.data.remote.api.SearchAPI
+import com.danbam.indistraw.core.data.remote.response.movie.MovieResponse
import javax.inject.Inject
class SearchMoviePagingSource(
diff --git a/data/src/main/java/com/danbam/data/remote/request/auth/ChangeAddressRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/ChangeAddressRequest.kt
similarity index 77%
rename from data/src/main/java/com/danbam/data/remote/request/auth/ChangeAddressRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/ChangeAddressRequest.kt
index c15a03d3..11358a1a 100644
--- a/data/src/main/java/com/danbam/data/remote/request/auth/ChangeAddressRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/ChangeAddressRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.auth
+package com.danbam.indistraw.core.data.remote.request.auth
-import com.danbam.domain.param.auth.ChangeAddressParam
+import com.danbam.indistraw.core.param.auth.ChangeAddressParam
import com.google.gson.annotations.SerializedName
data class ChangeAddressRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/auth/ChangePasswordRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/ChangePasswordRequest.kt
similarity index 72%
rename from data/src/main/java/com/danbam/data/remote/request/auth/ChangePasswordRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/ChangePasswordRequest.kt
index af4abea1..99be37f1 100644
--- a/data/src/main/java/com/danbam/data/remote/request/auth/ChangePasswordRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/ChangePasswordRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.auth
+package com.danbam.indistraw.core.data.remote.request.auth
-import com.danbam.domain.param.auth.ChangePasswordParam
+import com.danbam.indistraw.core.param.auth.ChangePasswordParam
import com.google.gson.annotations.SerializedName
data class ChangePasswordRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/auth/CheckQRCodeRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/CheckQRCodeRequest.kt
similarity index 72%
rename from data/src/main/java/com/danbam/data/remote/request/auth/CheckQRCodeRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/CheckQRCodeRequest.kt
index 3845df2e..cfb7d007 100644
--- a/data/src/main/java/com/danbam/data/remote/request/auth/CheckQRCodeRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/CheckQRCodeRequest.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.request.auth
+package com.danbam.indistraw.core.data.remote.request.auth
import com.google.gson.annotations.SerializedName
import java.util.UUID
diff --git a/data/src/main/java/com/danbam/data/remote/request/auth/EditProfileRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/EditProfileRequest.kt
similarity index 71%
rename from data/src/main/java/com/danbam/data/remote/request/auth/EditProfileRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/EditProfileRequest.kt
index baa5c6c7..059792cf 100644
--- a/data/src/main/java/com/danbam/data/remote/request/auth/EditProfileRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/EditProfileRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.auth
+package com.danbam.indistraw.core.data.remote.request.auth
-import com.danbam.domain.param.auth.EditProfileParam
+import com.danbam.indistraw.core.param.auth.EditProfileParam
import com.google.gson.annotations.SerializedName
data class EditProfileRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/auth/LoginRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/LoginRequest.kt
similarity index 67%
rename from data/src/main/java/com/danbam/data/remote/request/auth/LoginRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/LoginRequest.kt
index 8e02d51b..e8a153a9 100644
--- a/data/src/main/java/com/danbam/data/remote/request/auth/LoginRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/LoginRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.auth
+package com.danbam.indistraw.core.data.remote.request.auth
-import com.danbam.domain.param.auth.LoginParam
+import com.danbam.indistraw.core.param.auth.LoginParam
import com.google.gson.annotations.SerializedName
data class LoginRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/auth/SignUpRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/SignUpRequest.kt
similarity index 81%
rename from data/src/main/java/com/danbam/data/remote/request/auth/SignUpRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/SignUpRequest.kt
index 4fedc4f0..6900f4f8 100644
--- a/data/src/main/java/com/danbam/data/remote/request/auth/SignUpRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/auth/SignUpRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.auth
+package com.danbam.indistraw.core.data.remote.request.auth
-import com.danbam.domain.param.auth.SignUpParam
+import com.danbam.indistraw.core.param.auth.SignUpParam
import com.google.gson.annotations.SerializedName
data class SignUpRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/funding/FundingCreateRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/funding/FundingCreateRequest.kt
similarity index 94%
rename from data/src/main/java/com/danbam/data/remote/request/funding/FundingCreateRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/funding/FundingCreateRequest.kt
index 2ce90f9a..4fa9ba9d 100644
--- a/data/src/main/java/com/danbam/data/remote/request/funding/FundingCreateRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/funding/FundingCreateRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.funding
+package com.danbam.indistraw.core.data.remote.request.funding
-import com.danbam.domain.param.funding.FundingCreateParam
+import com.danbam.indistraw.core.param.funding.FundingCreateParam
import com.google.gson.annotations.SerializedName
data class FundingCreateRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/funding/FundingRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/funding/FundingRequest.kt
similarity index 75%
rename from data/src/main/java/com/danbam/data/remote/request/funding/FundingRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/funding/FundingRequest.kt
index 07ad70f6..3fdae0cd 100644
--- a/data/src/main/java/com/danbam/data/remote/request/funding/FundingRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/funding/FundingRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.funding
+package com.danbam.indistraw.core.data.remote.request.funding
-import com.danbam.domain.param.funding.FundingParam
+import com.danbam.indistraw.core.param.funding.FundingParam
import com.google.gson.annotations.SerializedName
data class FundingRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/movie/MovieCreateRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MovieCreateRequest.kt
similarity index 87%
rename from data/src/main/java/com/danbam/data/remote/request/movie/MovieCreateRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MovieCreateRequest.kt
index 704ea0cc..c078cdd0 100644
--- a/data/src/main/java/com/danbam/data/remote/request/movie/MovieCreateRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MovieCreateRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.movie
+package com.danbam.indistraw.core.data.remote.request.movie
-import com.danbam.domain.param.movie.MovieCreateParam
+import com.danbam.indistraw.core.param.movie.MovieCreateParam
import com.google.gson.annotations.SerializedName
data class MovieCreateRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/movie/MovieHistoryRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MovieHistoryRequest.kt
similarity index 71%
rename from data/src/main/java/com/danbam/data/remote/request/movie/MovieHistoryRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MovieHistoryRequest.kt
index 085ed71a..bb364e0d 100644
--- a/data/src/main/java/com/danbam/data/remote/request/movie/MovieHistoryRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MovieHistoryRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.movie
+package com.danbam.indistraw.core.data.remote.request.movie
-import com.danbam.domain.param.movie.MovieHistoryParam
+import com.danbam.indistraw.core.param.movie.MovieHistoryParam
import com.google.gson.annotations.SerializedName
data class MovieHistoryRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/request/movie/MoviePeopleRequest.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MoviePeopleRequest.kt
similarity index 71%
rename from data/src/main/java/com/danbam/data/remote/request/movie/MoviePeopleRequest.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MoviePeopleRequest.kt
index b0506ceb..329fdd9a 100644
--- a/data/src/main/java/com/danbam/data/remote/request/movie/MoviePeopleRequest.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/request/movie/MoviePeopleRequest.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.request.movie
+package com.danbam.indistraw.core.data.remote.request.movie
-import com.danbam.domain.param.movie.MoviePeopleParam
+import com.danbam.indistraw.core.param.movie.MoviePeopleParam
import com.google.gson.annotations.SerializedName
data class MoviePeopleRequest(
diff --git a/data/src/main/java/com/danbam/data/remote/response/auth/AddressResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/AddressResponse.kt
similarity index 54%
rename from data/src/main/java/com/danbam/data/remote/response/auth/AddressResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/AddressResponse.kt
index 9511fd83..a601cf88 100644
--- a/data/src/main/java/com/danbam/data/remote/response/auth/AddressResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/AddressResponse.kt
@@ -1,15 +1,15 @@
-package com.danbam.data.remote.response.auth
+package com.danbam.indistraw.core.data.remote.response.auth
-import com.danbam.domain.entity.auth.AddressEntity
+import com.danbam.indistraw.core.domain.entity.auth.AddressEntity
import com.google.gson.annotations.SerializedName
data class AddressResponse(
@SerializedName("results")
- val results: Results,
+ val results: com.danbam.indistraw.core.data.remote.response.auth.AddressResponse.Results,
) {
data class Results(
@SerializedName("juso")
- val juso: List,
+ val juso: List,
) {
data class Juso(
@SerializedName("zipNo")
@@ -22,7 +22,7 @@ data class AddressResponse(
}
}
-fun AddressResponse.Results.Juso.toEntity() = AddressEntity(
+fun com.danbam.indistraw.core.data.remote.response.auth.AddressResponse.Results.Juso.toEntity() = AddressEntity(
zipcode = zipNo,
streetAddress = roadAddr,
buildName = buildName
diff --git a/data/src/main/java/com/danbam/data/remote/response/auth/GetQRCodeResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/GetQRCodeResponse.kt
similarity index 71%
rename from data/src/main/java/com/danbam/data/remote/response/auth/GetQRCodeResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/GetQRCodeResponse.kt
index 3317172e..8c997d69 100644
--- a/data/src/main/java/com/danbam/data/remote/response/auth/GetQRCodeResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/GetQRCodeResponse.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.response.auth
+package com.danbam.indistraw.core.data.remote.response.auth
import com.google.gson.annotations.SerializedName
import java.util.UUID
diff --git a/data/src/main/java/com/danbam/data/remote/response/auth/LoginResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/LoginResponse.kt
similarity index 81%
rename from data/src/main/java/com/danbam/data/remote/response/auth/LoginResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/LoginResponse.kt
index eac5e349..9544f22a 100644
--- a/data/src/main/java/com/danbam/data/remote/response/auth/LoginResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/LoginResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.auth
+package com.danbam.indistraw.core.data.remote.response.auth
-import com.danbam.domain.entity.auth.LoginEntity
+import com.danbam.indistraw.core.domain.entity.auth.LoginEntity
import com.google.gson.annotations.SerializedName
data class LoginResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/auth/ProfileResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/ProfileResponse.kt
similarity index 82%
rename from data/src/main/java/com/danbam/data/remote/response/auth/ProfileResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/ProfileResponse.kt
index 01295588..4e81936c 100644
--- a/data/src/main/java/com/danbam/data/remote/response/auth/ProfileResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/auth/ProfileResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.auth
+package com.danbam.indistraw.core.data.remote.response.auth
-import com.danbam.domain.entity.auth.ProfileEntity
+import com.danbam.indistraw.core.domain.entity.auth.ProfileEntity
import com.google.gson.annotations.SerializedName
data class ProfileResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/banner/BannerResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/banner/BannerResponse.kt
similarity index 65%
rename from data/src/main/java/com/danbam/data/remote/response/banner/BannerResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/banner/BannerResponse.kt
index a9481608..9104a757 100644
--- a/data/src/main/java/com/danbam/data/remote/response/banner/BannerResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/banner/BannerResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.banner
+package com.danbam.indistraw.core.data.remote.response.banner
-import com.danbam.domain.entity.banner.BannerEntity
+import com.danbam.indistraw.core.entity.banner.BannerEntity
import com.google.gson.annotations.SerializedName
data class BannerResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/file/FileResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/file/FileResponse.kt
similarity index 68%
rename from data/src/main/java/com/danbam/data/remote/response/file/FileResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/file/FileResponse.kt
index 4c87e992..8c93b423 100644
--- a/data/src/main/java/com/danbam/data/remote/response/file/FileResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/file/FileResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.file
+package com.danbam.indistraw.core.data.remote.response.file
-import com.danbam.domain.entity.file.FileEntity
+import com.danbam.indistraw.core.entity.file.FileEntity
import com.google.gson.annotations.SerializedName
data class FileResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/funding/FindIdResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FindIdResponse.kt
similarity index 59%
rename from data/src/main/java/com/danbam/data/remote/response/funding/FindIdResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FindIdResponse.kt
index eb4cd4fb..4382abf8 100644
--- a/data/src/main/java/com/danbam/data/remote/response/funding/FindIdResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FindIdResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.funding
+package com.danbam.indistraw.core.data.remote.response.funding
-import com.danbam.domain.entity.auth.FindIdEntity
+import com.danbam.indistraw.core.domain.entity.auth.FindIdEntity
import com.google.gson.annotations.SerializedName
data class FindIdResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/funding/FundingDetailResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingDetailResponse.kt
similarity index 95%
rename from data/src/main/java/com/danbam/data/remote/response/funding/FundingDetailResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingDetailResponse.kt
index 6ac57284..67167f3b 100644
--- a/data/src/main/java/com/danbam/data/remote/response/funding/FundingDetailResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingDetailResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.funding
+package com.danbam.indistraw.core.data.remote.response.funding
-import com.danbam.domain.entity.funding.FundingDetailEntity
+import com.danbam.indistraw.core.entity.funding.FundingDetailEntity
import com.google.gson.annotations.SerializedName
import java.util.UUID
diff --git a/data/src/main/java/com/danbam/data/remote/response/funding/FundingPageResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingPageResponse.kt
similarity index 76%
rename from data/src/main/java/com/danbam/data/remote/response/funding/FundingPageResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingPageResponse.kt
index 043daa40..de0ab910 100644
--- a/data/src/main/java/com/danbam/data/remote/response/funding/FundingPageResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingPageResponse.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.response.funding
+package com.danbam.indistraw.core.data.remote.response.funding
import com.google.gson.annotations.SerializedName
diff --git a/data/src/main/java/com/danbam/data/remote/response/funding/FundingResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingResponse.kt
similarity index 83%
rename from data/src/main/java/com/danbam/data/remote/response/funding/FundingResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingResponse.kt
index a98cb387..c389d8ad 100644
--- a/data/src/main/java/com/danbam/data/remote/response/funding/FundingResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/FundingResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.funding
+package com.danbam.indistraw.core.data.remote.response.funding
-import com.danbam.domain.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
import com.google.gson.annotations.SerializedName
data class FundingResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/funding/MyFundingResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/MyFundingResponse.kt
similarity index 95%
rename from data/src/main/java/com/danbam/data/remote/response/funding/MyFundingResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/MyFundingResponse.kt
index 367279f2..e4827968 100644
--- a/data/src/main/java/com/danbam/data/remote/response/funding/MyFundingResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/MyFundingResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.funding
+package com.danbam.indistraw.core.data.remote.response.funding
-import com.danbam.domain.entity.funding.MyFundingEntity
+import com.danbam.indistraw.core.entity.funding.MyFundingEntity
import com.google.gson.annotations.SerializedName
import java.util.UUID
diff --git a/data/src/main/java/com/danbam/data/remote/response/funding/ReceiptResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/ReceiptResponse.kt
similarity index 69%
rename from data/src/main/java/com/danbam/data/remote/response/funding/ReceiptResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/ReceiptResponse.kt
index a3741905..dd63c5ad 100644
--- a/data/src/main/java/com/danbam/data/remote/response/funding/ReceiptResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/funding/ReceiptResponse.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.response.funding
+package com.danbam.indistraw.core.data.remote.response.funding
import com.google.gson.annotations.SerializedName
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/AddMoviePeopleResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/AddMoviePeopleResponse.kt
similarity index 69%
rename from data/src/main/java/com/danbam/data/remote/response/movie/AddMoviePeopleResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/AddMoviePeopleResponse.kt
index d5f9476d..31c2b42a 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/AddMoviePeopleResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/AddMoviePeopleResponse.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
import com.google.gson.annotations.SerializedName
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/DetailMovieHistoryResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/DetailMovieHistoryResponse.kt
similarity index 66%
rename from data/src/main/java/com/danbam/data/remote/response/movie/DetailMovieHistoryResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/DetailMovieHistoryResponse.kt
index 1969dbd1..92ffa50a 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/DetailMovieHistoryResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/DetailMovieHistoryResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
-import com.danbam.domain.entity.movie.DetailMovieHistoryEntity
+import com.danbam.indistraw.core.entity.movie.DetailMovieHistoryEntity
import com.google.gson.annotations.SerializedName
data class DetailMovieHistoryResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/MovieDetailResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieDetailResponse.kt
similarity index 88%
rename from data/src/main/java/com/danbam/data/remote/response/movie/MovieDetailResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieDetailResponse.kt
index 77f05b37..50b9b6f0 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/MovieDetailResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieDetailResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
-import com.danbam.domain.entity.movie.MovieDetailEntity
+import com.danbam.indistraw.core.entity.movie.MovieDetailEntity
import com.google.gson.annotations.SerializedName
data class MovieDetailResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/MovieHistoryResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieHistoryResponse.kt
similarity index 79%
rename from data/src/main/java/com/danbam/data/remote/response/movie/MovieHistoryResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieHistoryResponse.kt
index 73fb4b45..c154acf4 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/MovieHistoryResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieHistoryResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
-import com.danbam.domain.entity.movie.MovieHistoryEntity
+import com.danbam.indistraw.core.entity.movie.MovieHistoryEntity
import com.google.gson.annotations.SerializedName
data class MovieHistoryResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/MoviePageResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePageResponse.kt
similarity index 76%
rename from data/src/main/java/com/danbam/data/remote/response/movie/MoviePageResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePageResponse.kt
index 34272b5c..1b559e28 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/MoviePageResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePageResponse.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
import com.google.gson.annotations.SerializedName
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/MoviePeopleDetailResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePeopleDetailResponse.kt
similarity index 79%
rename from data/src/main/java/com/danbam/data/remote/response/movie/MoviePeopleDetailResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePeopleDetailResponse.kt
index b9d73883..cb037010 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/MoviePeopleDetailResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePeopleDetailResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
-import com.danbam.domain.entity.movie.MoviePeopleDetailEntity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleDetailEntity
import com.google.gson.annotations.SerializedName
data class MoviePeopleDetailResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/MoviePeopleResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePeopleResponse.kt
similarity index 75%
rename from data/src/main/java/com/danbam/data/remote/response/movie/MoviePeopleResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePeopleResponse.kt
index 5b68674d..2456fb69 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/MoviePeopleResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MoviePeopleResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
-import com.danbam.domain.entity.movie.MoviePeopleEntity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleEntity
import com.google.gson.annotations.SerializedName
data class MoviePeopleResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/movie/MovieResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieResponse.kt
similarity index 71%
rename from data/src/main/java/com/danbam/data/remote/response/movie/MovieResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieResponse.kt
index e7a76a54..5c2141d4 100644
--- a/data/src/main/java/com/danbam/data/remote/response/movie/MovieResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/movie/MovieResponse.kt
@@ -1,6 +1,6 @@
-package com.danbam.data.remote.response.movie
+package com.danbam.indistraw.core.data.remote.response.movie
-import com.danbam.domain.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
import com.google.gson.annotations.SerializedName
data class MovieResponse(
diff --git a/data/src/main/java/com/danbam/data/remote/response/search/PopularTagResponse.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/search/PopularTagResponse.kt
similarity index 70%
rename from data/src/main/java/com/danbam/data/remote/response/search/PopularTagResponse.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/search/PopularTagResponse.kt
index ca4c3fa0..fa1b947f 100644
--- a/data/src/main/java/com/danbam/data/remote/response/search/PopularTagResponse.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/response/search/PopularTagResponse.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.response.search
+package com.danbam.indistraw.core.data.remote.response.search
import com.google.gson.annotations.SerializedName
diff --git a/data/src/main/java/com/danbam/data/remote/util/EndPoint.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/util/EndPoint.kt
similarity index 88%
rename from data/src/main/java/com/danbam/data/remote/util/EndPoint.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/util/EndPoint.kt
index c237f40d..71d3eff1 100644
--- a/data/src/main/java/com/danbam/data/remote/util/EndPoint.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/util/EndPoint.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.remote.util
+package com.danbam.indistraw.core.data.remote.util
class EndPoint {
companion object {
diff --git a/data/src/main/java/com/danbam/data/remote/util/IndiStrawApiCall.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/util/IndiStrawApiCall.kt
similarity index 73%
rename from data/src/main/java/com/danbam/data/remote/util/IndiStrawApiCall.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/util/IndiStrawApiCall.kt
index 70edcb6a..fe52c167 100644
--- a/data/src/main/java/com/danbam/data/remote/util/IndiStrawApiCall.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/remote/util/IndiStrawApiCall.kt
@@ -1,13 +1,13 @@
-package com.danbam.data.remote.util
+package com.danbam.indistraw.core.data.remote.util
-import com.danbam.domain.exception.ConflictDataException
-import com.danbam.domain.exception.ExpiredTokenException
-import com.danbam.domain.exception.InvalidTokenException
-import com.danbam.domain.exception.NotFoundException
-import com.danbam.domain.exception.ServerErrorException
-import com.danbam.domain.exception.TooManyRequestException
-import com.danbam.domain.exception.UnKnownHttpException
-import com.danbam.domain.exception.WrongDataException
+import com.danbam.indistraw.core.domain.exception.ConflictDataException
+import com.danbam.indistraw.core.domain.exception.ExpiredTokenException
+import com.danbam.indistraw.core.domain.exception.InvalidTokenException
+import com.danbam.indistraw.core.domain.exception.NotFoundException
+import com.danbam.indistraw.core.domain.exception.ServerErrorException
+import com.danbam.indistraw.core.domain.exception.TooManyRequestException
+import com.danbam.indistraw.core.domain.exception.UnKnownHttpException
+import com.danbam.indistraw.core.domain.exception.WrongDataException
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName
import kotlinx.coroutines.Dispatchers
diff --git a/data/src/main/java/com/danbam/data/repository/AccountRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AccountRepositoryImpl.kt
similarity index 62%
rename from data/src/main/java/com/danbam/data/repository/AccountRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AccountRepositoryImpl.kt
index 566a8fb0..c336c443 100644
--- a/data/src/main/java/com/danbam/data/repository/AccountRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AccountRepositoryImpl.kt
@@ -1,15 +1,15 @@
-package com.danbam.data.repository
-
-import com.danbam.data.remote.datasource.AccountRemoteDataSource
-import com.danbam.data.remote.request.auth.toRequest
-import com.danbam.data.remote.response.auth.toEntity
-import com.danbam.data.remote.response.funding.toEntity
-import com.danbam.domain.entity.auth.FindIdEntity
-import com.danbam.domain.entity.auth.ProfileEntity
-import com.danbam.domain.param.auth.ChangeAddressParam
-import com.danbam.domain.param.auth.ChangePasswordParam
-import com.danbam.domain.param.auth.EditProfileParam
-import com.danbam.domain.repository.AccountRepository
+package com.danbam.indistraw.core.data.repository
+
+import com.danbam.indistraw.core.data.remote.datasource.AccountRemoteDataSource
+import com.danbam.indistraw.core.data.remote.request.auth.toRequest
+import com.danbam.indistraw.core.data.remote.response.auth.toEntity
+import com.danbam.indistraw.core.data.remote.response.funding.toEntity
+import com.danbam.indistraw.core.domain.entity.auth.FindIdEntity
+import com.danbam.indistraw.core.domain.entity.auth.ProfileEntity
+import com.danbam.indistraw.core.param.auth.ChangeAddressParam
+import com.danbam.indistraw.core.param.auth.ChangePasswordParam
+import com.danbam.indistraw.core.param.auth.EditProfileParam
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class AccountRepositoryImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/repository/AddressRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AddressRepositoryImpl.kt
similarity index 60%
rename from data/src/main/java/com/danbam/data/repository/AddressRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AddressRepositoryImpl.kt
index 4f577f9e..1ef67959 100644
--- a/data/src/main/java/com/danbam/data/repository/AddressRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AddressRepositoryImpl.kt
@@ -1,11 +1,11 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
import androidx.paging.PagingData
import androidx.paging.map
-import com.danbam.data.remote.datasource.AddressRemoteDataSource
-import com.danbam.data.remote.response.auth.toEntity
-import com.danbam.domain.entity.auth.AddressEntity
-import com.danbam.domain.repository.AddressRepository
+import com.danbam.indistraw.core.data.remote.datasource.AddressRemoteDataSource
+import com.danbam.indistraw.core.data.remote.response.auth.toEntity
+import com.danbam.indistraw.core.domain.entity.auth.AddressEntity
+import com.danbam.indistraw.core.domain.repository.AddressRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/repository/AuthRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AuthRepositoryImpl.kt
similarity index 80%
rename from data/src/main/java/com/danbam/data/repository/AuthRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AuthRepositoryImpl.kt
index 4f2543d1..a5436613 100644
--- a/data/src/main/java/com/danbam/data/repository/AuthRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/AuthRepositoryImpl.kt
@@ -1,14 +1,14 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
-import com.danbam.data.local.datasource.AuthLocalDataSource
-import com.danbam.data.remote.datasource.AuthRemoteDataSource
-import com.danbam.data.remote.request.auth.toRequest
-import com.danbam.data.remote.response.auth.LoginResponse
-import com.danbam.data.util.default
-import com.danbam.domain.exception.ExpiredTokenException
-import com.danbam.domain.param.auth.LoginParam
-import com.danbam.domain.param.auth.SignUpParam
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.data.local.datasource.AuthLocalDataSource
+import com.danbam.indistraw.core.data.remote.datasource.AuthRemoteDataSource
+import com.danbam.indistraw.core.data.remote.request.auth.toRequest
+import com.danbam.indistraw.core.data.remote.response.auth.LoginResponse
+import com.danbam.indistraw.core.data.util.default
+import com.danbam.indistraw.core.domain.exception.ExpiredTokenException
+import com.danbam.indistraw.core.param.auth.LoginParam
+import com.danbam.indistraw.core.param.auth.SignUpParam
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import java.time.LocalDateTime
import javax.inject.Inject
diff --git a/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/BannerRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/BannerRepositoryImpl.kt
new file mode 100644
index 00000000..306d3cc7
--- /dev/null
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/BannerRepositoryImpl.kt
@@ -0,0 +1,14 @@
+package com.danbam.indistraw.core.data.repository
+
+import com.danbam.indistraw.core.data.remote.datasource.BannerRemoteDataSource
+import com.danbam.indistraw.core.data.remote.response.banner.toEntity
+import com.danbam.indistraw.core.entity.banner.BannerEntity
+import com.danbam.indistraw.core.domain.repository.BannerRepository
+import javax.inject.Inject
+
+class BannerRepositoryImpl @Inject constructor(
+ private val bannerRemoteDataSource: BannerRemoteDataSource
+) : BannerRepository {
+ override suspend fun getBanner(): List =
+ bannerRemoteDataSource.getBanner().map { it.toEntity() }
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/repository/CrowdFundingRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/CrowdFundingRepositoryImpl.kt
similarity index 67%
rename from data/src/main/java/com/danbam/data/repository/CrowdFundingRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/CrowdFundingRepositoryImpl.kt
index 9a781822..6f736675 100644
--- a/data/src/main/java/com/danbam/data/repository/CrowdFundingRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/CrowdFundingRepositoryImpl.kt
@@ -1,15 +1,15 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
import androidx.paging.PagingData
import androidx.paging.map
-import com.danbam.data.remote.datasource.CrowdFundingRemoteDataSource
-import com.danbam.data.remote.request.funding.toRequest
-import com.danbam.data.remote.response.funding.toEntity
-import com.danbam.domain.entity.funding.FundingDetailEntity
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.funding.MyFundingEntity
-import com.danbam.domain.param.funding.FundingCreateParam
-import com.danbam.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.data.remote.datasource.CrowdFundingRemoteDataSource
+import com.danbam.indistraw.core.data.remote.request.funding.toRequest
+import com.danbam.indistraw.core.data.remote.response.funding.toEntity
+import com.danbam.indistraw.core.entity.funding.FundingDetailEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.funding.MyFundingEntity
+import com.danbam.indistraw.core.param.funding.FundingCreateParam
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject
diff --git a/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/FileRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/FileRepositoryImpl.kt
new file mode 100644
index 00000000..34c17b54
--- /dev/null
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/FileRepositoryImpl.kt
@@ -0,0 +1,16 @@
+package com.danbam.indistraw.core.data.repository
+
+import com.danbam.indistraw.core.data.remote.datasource.FileRemoteDataSource
+import com.danbam.indistraw.core.data.remote.response.file.toEntity
+import com.danbam.indistraw.core.data.util.toMultipartBody
+import com.danbam.indistraw.core.entity.file.FileEntity
+import com.danbam.indistraw.core.domain.repository.FileRepository
+import java.io.File
+import javax.inject.Inject
+
+class FileRepositoryImpl @Inject constructor(
+ private val fileRemoteDataSource: FileRemoteDataSource,
+) : FileRepository {
+ override suspend fun sendFile(file: File): FileEntity =
+ fileRemoteDataSource.sendFile(file = file.toMultipartBody()).toEntity()
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/repository/FundingRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/FundingRepositoryImpl.kt
similarity index 59%
rename from data/src/main/java/com/danbam/data/repository/FundingRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/FundingRepositoryImpl.kt
index 799b55d3..c13e5490 100644
--- a/data/src/main/java/com/danbam/data/repository/FundingRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/FundingRepositoryImpl.kt
@@ -1,11 +1,11 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
-import com.danbam.data.remote.datasource.FundingRemoteDataSource
-import com.danbam.data.remote.request.funding.toRequest
-import com.danbam.data.remote.response.funding.toEntity
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.param.funding.FundingParam
-import com.danbam.domain.repository.FundingRepository
+import com.danbam.indistraw.core.data.remote.datasource.FundingRemoteDataSource
+import com.danbam.indistraw.core.data.remote.request.funding.toRequest
+import com.danbam.indistraw.core.data.remote.response.funding.toEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.param.funding.FundingParam
+import com.danbam.indistraw.core.domain.repository.FundingRepository
import javax.inject.Inject
class FundingRepositoryImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/repository/MovieRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/MovieRepositoryImpl.kt
similarity index 72%
rename from data/src/main/java/com/danbam/data/repository/MovieRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/MovieRepositoryImpl.kt
index de41479a..6c8719e1 100644
--- a/data/src/main/java/com/danbam/data/repository/MovieRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/MovieRepositoryImpl.kt
@@ -1,20 +1,20 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
import androidx.paging.PagingData
import androidx.paging.map
-import com.danbam.data.remote.datasource.MovieRemoteDataSource
-import com.danbam.data.remote.request.movie.toRequest
-import com.danbam.data.remote.response.movie.toEntity
-import com.danbam.domain.entity.movie.DetailMovieHistoryEntity
-import com.danbam.domain.entity.movie.MovieDetailEntity
-import com.danbam.domain.entity.movie.MovieEntity
-import com.danbam.domain.entity.movie.MovieHistoryEntity
-import com.danbam.domain.entity.movie.MoviePeopleDetailEntity
-import com.danbam.domain.entity.movie.MoviePeopleEntity
-import com.danbam.domain.param.movie.MovieCreateParam
-import com.danbam.domain.param.movie.MovieHistoryParam
-import com.danbam.domain.param.movie.MoviePeopleParam
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.data.remote.datasource.MovieRemoteDataSource
+import com.danbam.indistraw.core.data.remote.request.movie.toRequest
+import com.danbam.indistraw.core.data.remote.response.movie.toEntity
+import com.danbam.indistraw.core.entity.movie.DetailMovieHistoryEntity
+import com.danbam.indistraw.core.entity.movie.MovieDetailEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.movie.MovieHistoryEntity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleDetailEntity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleEntity
+import com.danbam.indistraw.core.param.movie.MovieCreateParam
+import com.danbam.indistraw.core.param.movie.MovieHistoryParam
+import com.danbam.indistraw.core.param.movie.MoviePeopleParam
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/repository/QRCodeRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/QRCodeRepositoryImpl.kt
similarity index 77%
rename from data/src/main/java/com/danbam/data/repository/QRCodeRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/QRCodeRepositoryImpl.kt
index 99ea8f97..9078e36d 100644
--- a/data/src/main/java/com/danbam/data/repository/QRCodeRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/QRCodeRepositoryImpl.kt
@@ -1,10 +1,8 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
-import com.danbam.data.local.datasource.AuthLocalDataSource
-import com.danbam.data.remote.datasource.QRCodeRemoteDataSource
-import com.danbam.domain.repository.QRCodeRepository
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.withContext
+import com.danbam.indistraw.core.data.local.datasource.AuthLocalDataSource
+import com.danbam.indistraw.core.data.remote.datasource.QRCodeRemoteDataSource
+import com.danbam.indistraw.core.domain.repository.QRCodeRepository
import java.util.UUID
import javax.inject.Inject
diff --git a/data/src/main/java/com/danbam/data/repository/SearchRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/SearchRepositoryImpl.kt
similarity index 70%
rename from data/src/main/java/com/danbam/data/repository/SearchRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/SearchRepositoryImpl.kt
index 5e2bbb22..f9309a53 100644
--- a/data/src/main/java/com/danbam/data/repository/SearchRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/SearchRepositoryImpl.kt
@@ -1,19 +1,17 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
import androidx.paging.PagingData
import androidx.paging.map
-import com.danbam.data.local.datasource.SearchLocalDataSource
-import com.danbam.data.local.entity.search.toDB
-import com.danbam.data.local.entity.search.toDomain
-import com.danbam.data.remote.datasource.SearchRemoteDataSource
-import com.danbam.data.remote.response.funding.toEntity
-import com.danbam.data.remote.response.movie.toEntity
-import com.danbam.data.remote.response.search.toEntity
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.movie.MovieEntity
-import com.danbam.domain.entity.search.RecentSearchEntity
-import com.danbam.domain.entity.search.RelatedSearchEntity
-import com.danbam.domain.repository.SearchRepository
+import com.danbam.indistraw.core.data.local.datasource.SearchLocalDataSource
+import com.danbam.indistraw.core.data.local.entity.search.toDB
+import com.danbam.indistraw.core.data.local.entity.search.toDomain
+import com.danbam.indistraw.core.data.remote.datasource.SearchRemoteDataSource
+import com.danbam.indistraw.core.data.remote.response.funding.toEntity
+import com.danbam.indistraw.core.data.remote.response.movie.toEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.domain.repository.SearchRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject
@@ -22,8 +20,8 @@ class SearchRepositoryImpl @Inject constructor(
private val searchLocalDataSource: SearchLocalDataSource,
private val searchRemoteDataSource: SearchRemoteDataSource
) : SearchRepository {
- override suspend fun getRelatedSearch(keyword: String): List =
- searchRemoteDataSource.getRelatedSearch(keyword = keyword).map { it.toEntity() }
+ override suspend fun getRelatedSearch(keyword: String): List =
+ searchRemoteDataSource.getRelatedSearch(keyword = keyword)
override suspend fun searchMovie(recentSearchEntity: RecentSearchEntity): Flow> {
saveRecentSearch(recentSearchEntity = recentSearchEntity)
diff --git a/data/src/main/java/com/danbam/data/repository/SystemRepositoryImpl.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/SystemRepositoryImpl.kt
similarity index 65%
rename from data/src/main/java/com/danbam/data/repository/SystemRepositoryImpl.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/SystemRepositoryImpl.kt
index 02c99edd..411941cd 100644
--- a/data/src/main/java/com/danbam/data/repository/SystemRepositoryImpl.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/repository/SystemRepositoryImpl.kt
@@ -1,7 +1,7 @@
-package com.danbam.data.repository
+package com.danbam.indistraw.core.data.repository
-import com.danbam.data.local.datasource.SystemLocalDataSource
-import com.danbam.domain.repository.SystemRepository
+import com.danbam.indistraw.core.data.local.datasource.SystemLocalDataSource
+import com.danbam.indistraw.core.domain.repository.SystemRepository
import javax.inject.Inject
class SystemRepositoryImpl @Inject constructor(
diff --git a/data/src/main/java/com/danbam/data/util/FileUtil.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/util/FileUtil.kt
similarity index 89%
rename from data/src/main/java/com/danbam/data/util/FileUtil.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/util/FileUtil.kt
index b2f03c81..9aa305e5 100644
--- a/data/src/main/java/com/danbam/data/util/FileUtil.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/util/FileUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.util
+package com.danbam.indistraw.core.data.util
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MultipartBody
diff --git a/data/src/main/java/com/danbam/data/util/TimeUtil.kt b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/util/TimeUtil.kt
similarity index 76%
rename from data/src/main/java/com/danbam/data/util/TimeUtil.kt
rename to core/data/src/main/kotlin/com/danbam/indistraw/core/data/util/TimeUtil.kt
index 28d67885..36d73a33 100644
--- a/data/src/main/java/com/danbam/data/util/TimeUtil.kt
+++ b/core/data/src/main/kotlin/com/danbam/indistraw/core/data/util/TimeUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.data.util
+package com.danbam.indistraw.core.data.util
import java.time.LocalDateTime
import java.time.ZoneId
diff --git a/domain/.gitignore b/core/design-system/.gitignore
similarity index 100%
rename from domain/.gitignore
rename to core/design-system/.gitignore
diff --git a/core/design-system/build.gradle.kts b/core/design-system/build.gradle.kts
new file mode 100644
index 00000000..5cdd356d
--- /dev/null
+++ b/core/design-system/build.gradle.kts
@@ -0,0 +1,39 @@
+import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
+
+plugins {
+ id("indistraw-core")
+}
+
+android {
+ namespace = "com.danbam.indistraw.core.design_system"
+ defaultConfig {
+ buildConfigField(
+ "String",
+ "VIDEO_PRE_PATH",
+ gradleLocalProperties(rootDir).getProperty("VIDEO_PRE_PATH")
+ )
+ buildConfigField(
+ "String",
+ "PAY_KEY",
+ gradleLocalProperties(rootDir).getProperty("PAY_KEY")
+ )
+ }
+ buildFeatures {
+ compose = true
+ }
+ composeOptions {
+ kotlinCompilerExtensionVersion = libs.versions.compose.get()
+ }
+}
+
+dependencies {
+ implementation(project(":core:domain"))
+ implementation(libs.bundles.compose)
+ implementation(libs.coil)
+ implementation(libs.bundles.exoplayer)
+ implementation(libs.bundles.camera)
+ implementation(libs.bundles.barcode)
+ implementation(libs.bundles.tv)
+ implementation(libs.bundles.retrofit)
+ implementation(libs.bootpay)
+}
\ No newline at end of file
diff --git a/design-system/src/main/AndroidManifest.xml b/core/design-system/src/main/AndroidManifest.xml
similarity index 100%
rename from design-system/src/main/AndroidManifest.xml
rename to core/design-system/src/main/AndroidManifest.xml
diff --git a/design-system/src/main/java/com/danbam/design_system/Theme.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/Theme.kt
similarity index 63%
rename from design-system/src/main/java/com/danbam/design_system/Theme.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/Theme.kt
index 6689d954..2cef8ee6 100644
--- a/design-system/src/main/java/com/danbam/design_system/Theme.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/Theme.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system
+package com.danbam.indistraw.core.design_system
import androidx.compose.foundation.background
import androidx.compose.foundation.isSystemInDarkTheme
@@ -8,7 +8,16 @@ import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
-import com.danbam.design_system.attribute.*
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawColor
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawShape
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawTypography
+import com.danbam.indistraw.core.design_system.attribute.LocalIndiStrawColors
+import com.danbam.indistraw.core.design_system.attribute.LocalIndiStrawShapes
+import com.danbam.indistraw.core.design_system.attribute.LocalIndiStrawTypography
+import com.danbam.indistraw.core.design_system.attribute.darkColor
+import com.danbam.indistraw.core.design_system.attribute.defaultShape
+import com.danbam.indistraw.core.design_system.attribute.defaultTypography
+import com.danbam.indistraw.core.design_system.attribute.lightColor
@Composable
fun IndiStrawTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
diff --git a/design-system/src/main/java/com/danbam/design_system/attribute/Color.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Color.kt
similarity index 97%
rename from design-system/src/main/java/com/danbam/design_system/attribute/Color.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Color.kt
index b158dc64..39b33ee3 100644
--- a/design-system/src/main/java/com/danbam/design_system/attribute/Color.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Color.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.attribute
+package com.danbam.indistraw.core.design_system.attribute
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.graphics.Color
diff --git a/design-system/src/main/java/com/danbam/design_system/attribute/Icon.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Icon.kt
similarity index 98%
rename from design-system/src/main/java/com/danbam/design_system/attribute/Icon.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Icon.kt
index b289480d..4ab0950f 100644
--- a/design-system/src/main/java/com/danbam/design_system/attribute/Icon.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Icon.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.attribute
+package com.danbam.indistraw.core.design_system.attribute
import androidx.annotation.DrawableRes
import androidx.compose.foundation.Image
@@ -10,7 +10,7 @@ import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.DefaultAlpha
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
-import com.danbam.design_system.R
+import com.danbam.indistraw.core.design_system.R
import javax.annotation.concurrent.Immutable
@Composable
diff --git a/design-system/src/main/java/com/danbam/design_system/attribute/Shape.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Shape.kt
similarity index 96%
rename from design-system/src/main/java/com/danbam/design_system/attribute/Shape.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Shape.kt
index 40fb41a2..7f9afe7f 100644
--- a/design-system/src/main/java/com/danbam/design_system/attribute/Shape.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Shape.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.attribute
+package com.danbam.indistraw.core.design_system.attribute
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.shape.ZeroCornerSize
diff --git a/design-system/src/main/java/com/danbam/design_system/attribute/Typegraphy.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Typegraphy.kt
similarity index 96%
rename from design-system/src/main/java/com/danbam/design_system/attribute/Typegraphy.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Typegraphy.kt
index e9e91d22..64bc463c 100644
--- a/design-system/src/main/java/com/danbam/design_system/attribute/Typegraphy.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/attribute/Typegraphy.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.attribute
+package com.danbam.indistraw.core.design_system.attribute
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.staticCompositionLocalOf
@@ -6,8 +6,7 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
-import androidx.compose.ui.unit.sp
-import com.danbam.design_system.R
+import com.danbam.indistraw.core.design_system.R
internal val suit = FontFamily(
Font(R.font.suit_bold, FontWeight.Bold),
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Background.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Background.kt
similarity index 89%
rename from design-system/src/main/java/com/danbam/design_system/component/Background.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Background.kt
index 3efec526..e2255ae7 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Background.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Background.kt
@@ -1,23 +1,20 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.LocalOverscrollConfiguration
import androidx.compose.foundation.background
-import androidx.compose.foundation.horizontalScroll
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ColumnScope
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@OptIn(ExperimentalFoundationApi::class)
@Composable
diff --git a/design-system/src/main/java/com/danbam/design_system/component/BottomSheetLayout.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/BottomSheetLayout.kt
similarity index 95%
rename from design-system/src/main/java/com/danbam/design_system/component/BottomSheetLayout.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/BottomSheetLayout.kt
index 2e24c570..260258a6 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/BottomSheetLayout.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/BottomSheetLayout.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background
@@ -19,7 +19,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterialApi::class)
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Button.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Button.kt
similarity index 93%
rename from design-system/src/main/java/com/danbam/design_system/component/Button.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Button.kt
index afc6cbd4..b8c1b25f 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Button.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Button.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import android.Manifest
import android.graphics.Bitmap
@@ -42,15 +42,15 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.LaunchType
-import com.danbam.design_system.util.checkAndRequestPermissions
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.util.rememberLauncher
-import com.danbam.design_system.util.typedLaunch
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.LaunchType
+import com.danbam.indistraw.core.design_system.util.android.checkAndRequestPermissions
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.rememberLauncher
+import com.danbam.indistraw.core.design_system.util.androidx.typedLaunch
sealed class Shape {
object None : Shape()
diff --git a/design-system/src/main/java/com/danbam/design_system/component/CheckBox.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/CheckBox.kt
similarity index 73%
rename from design-system/src/main/java/com/danbam/design_system/component/CheckBox.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/CheckBox.kt
index d7685874..9d63b632 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/CheckBox.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/CheckBox.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Box
@@ -6,10 +6,10 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@Composable
fun IndiStrawCheckBox(
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Chip.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Chip.kt
similarity index 91%
rename from design-system/src/main/java/com/danbam/design_system/component/Chip.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Chip.kt
index a6c5ed9f..778c628c 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Chip.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Chip.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Spacer
@@ -9,10 +9,10 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.util.RemoveOverScrollLazyRow
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyRow
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
sealed class MovieGenre(val stringId: Int, val genre: String?) {
companion object {
diff --git a/design-system/src/main/java/com/danbam/design_system/component/DatePicker.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/DatePicker.kt
similarity index 94%
rename from design-system/src/main/java/com/danbam/design_system/component/DatePicker.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/DatePicker.kt
index a8ae7172..9b35e9ee 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/DatePicker.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/DatePicker.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
@@ -17,8 +17,8 @@ import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.filter
import java.time.LocalDate
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Dialog.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Dialog.kt
similarity index 96%
rename from design-system/src/main/java/com/danbam/design_system/component/Dialog.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Dialog.kt
index 77bf8bdc..bf302e00 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Dialog.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Dialog.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -11,11 +11,8 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment.Companion.End
import androidx.compose.ui.Modifier
-import androidx.compose.ui.focus.FocusRequester
-import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
@@ -23,9 +20,9 @@ import androidx.compose.ui.window.DialogProperties
import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@Composable
fun IndiStrawDialog(
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Drawer.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Drawer.kt
similarity index 94%
rename from design-system/src/main/java/com/danbam/design_system/component/Drawer.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Drawer.kt
index 7b1ca9ac..94679e0f 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Drawer.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Drawer.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
@@ -30,10 +30,10 @@ import androidx.tv.material3.DrawerValue
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.ModalNavigationDrawer
import androidx.tv.material3.Surface
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
sealed class TvNavigationItem(val route: String, val icon: IndiStrawIconList, val titleId: Int) {
object Search : TvNavigationItem("search", IndiStrawIconList.NavSearch, R.string.search)
diff --git a/design-system/src/main/java/com/danbam/design_system/component/ExoPlayer.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ExoPlayer.kt
similarity index 82%
rename from design-system/src/main/java/com/danbam/design_system/component/ExoPlayer.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ExoPlayer.kt
index f470d5ac..8f9b026c 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/ExoPlayer.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ExoPlayer.kt
@@ -1,5 +1,6 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
+import android.content.pm.ActivityInfo
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.activity.compose.BackHandler
@@ -40,22 +41,30 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.input.key.onKeyEvent
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView
-import com.danbam.design_system.BuildConfig
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.formatMinSec
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.BuildConfig
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.HideSystemUI
+import com.danbam.indistraw.core.design_system.util.androidx.LockScreenOrientation
+import com.danbam.indistraw.core.design_system.util.google.detectKeyEvent
+import com.danbam.indistraw.core.design_system.util.internal.formatMinSec
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
import com.google.android.exoplayer2.C
import com.google.android.exoplayer2.ExoPlayer
import com.google.android.exoplayer2.MediaItem
import com.google.android.exoplayer2.Player
import com.google.android.exoplayer2.Player.STATE_ENDED
+import com.google.android.exoplayer2.source.ProgressiveMediaSource
+import com.google.android.exoplayer2.source.hls.HlsMediaSource
import com.google.android.exoplayer2.ui.StyledPlayerView
+import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
+import com.google.android.exoplayer2.util.Util
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -66,9 +75,12 @@ fun IndiStrawPlayer(
movieUrl: String,
movieName: String,
position: Float,
+ isMobile: Boolean,
+ isVertical: Boolean,
onPIP: () -> Unit,
onDispose: (Long) -> Unit
) {
+ HideSystemUI()
val context = LocalContext.current
val exoPlayer = remember {
ExoPlayer.Builder(context)
@@ -79,8 +91,15 @@ fun IndiStrawPlayer(
val mediaItem = MediaItem.Builder()
.setUri("${BuildConfig.VIDEO_PRE_PATH}$movieUrl")
.build()
+ val userAgent = Util.getUserAgent(context, context.applicationInfo.name)
+ val factory = DefaultHttpDataSource.Factory().apply {
+ setUserAgent(userAgent)
+ }
+ val hlsMediaSource = HlsMediaSource.Factory(factory).createMediaSource(mediaItem)
+ val progressiveMediaSource =
+ ProgressiveMediaSource.Factory(factory).createMediaSource(mediaItem)
+ setMediaSource(progressiveMediaSource)
videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT
- setMediaItem(mediaItem)
prepare()
playWhenReady = true
seekTo((position * 1000).toLong())
@@ -90,13 +109,17 @@ fun IndiStrawPlayer(
var isPlaying by remember { mutableStateOf(exoPlayer.isPlaying) }
var isLock by remember { mutableStateOf(false) }
+ if (!isVertical && isMobile) {
+ LockScreenOrientation(orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
+ }
+
BackHandler {
onDispose(exoPlayer.currentPosition)
}
LaunchedEffect(isVisible) {
if (isVisible && exoPlayer.playbackState != STATE_ENDED) {
- delay(2000L)
+ delay(1500L)
isVisible = false
}
}
@@ -105,6 +128,9 @@ fun IndiStrawPlayer(
Box(
modifier = modifier
.fillMaxSize()
+ .onKeyEvent {
+ exoPlayer.detectKeyEvent(it.nativeKeyEvent)
+ }
.indiStrawClickable {
isVisible = !isVisible
}
@@ -135,39 +161,49 @@ fun IndiStrawPlayer(
}
}
- IndiStrawController(
- exoPlayer = exoPlayer,
- movieName = movieName,
- isVisible = isVisible,
- isLock = isLock,
- isPlaying = isPlaying,
- onBack = { exoPlayer.seekBack() },
- onForward = { exoPlayer.seekForward() },
- onPause = {
- when {
- isPlaying -> {
- exoPlayer.pause()
- }
+ if (isMobile) {
+ IndiStrawMobileController(
+ exoPlayer = exoPlayer,
+ movieName = movieName,
+ isVisible = isVisible,
+ isLock = isLock,
+ isPlaying = isPlaying,
+ onBack = { exoPlayer.seekBack() },
+ onForward = { exoPlayer.seekForward() },
+ onPause = {
+ when {
+ isPlaying -> {
+ exoPlayer.pause()
+ }
- !isPlaying -> {
- exoPlayer.play()
+ !isPlaying -> {
+ exoPlayer.play()
+ }
}
- }
- },
- onFinish = { onDispose(exoPlayer.currentPosition) },
- onLock = { isLock = !isLock },
- onPIP = {
- isVisible = false
- onPIP()
- },
- onTouchPlayer = { isVisible = !isVisible },
- onSeekChanged = { exoPlayer.seekTo(it.toLong()) }
- )
+ },
+ onFinish = { onDispose(exoPlayer.currentPosition) },
+ onLock = { isLock = !isLock },
+ onPIP = {
+ isVisible = false
+ onPIP()
+ },
+ onTouchPlayer = { isVisible = !isVisible },
+ onSeekChanged = { exoPlayer.seekTo(it.toLong()) }
+ )
+ } else {
+
+ }
+}
+
+fun IndiStrawTvController(
+
+) {
+
}
@OptIn(ExperimentalAnimationApi::class)
@Composable
-fun IndiStrawController(
+fun IndiStrawMobileController(
exoPlayer: ExoPlayer,
movieName: String,
isVisible: Boolean,
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Header.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Header.kt
similarity index 86%
rename from design-system/src/main/java/com/danbam/design_system/component/Header.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Header.kt
index b2fa3580..9d3b4159 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Header.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Header.kt
@@ -1,9 +1,8 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
@@ -15,10 +14,10 @@ import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@Composable
fun IndiStrawHeader(
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Item.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Item.kt
similarity index 96%
rename from design-system/src/main/java/com/danbam/design_system/component/Item.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Item.kt
index d503071a..6f124021 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Item.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Item.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.ExperimentalFoundationApi
@@ -30,16 +30,16 @@ import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.util.toCommaString
-import com.danbam.domain.entity.funding.FundingDetailEntity
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.movie.MovieEntity
-import com.danbam.domain.entity.funding.MyFundingEntity
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.internal.toCommaString
+import com.danbam.indistraw.core.entity.funding.FundingDetailEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.funding.MyFundingEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
sealed class RewardType {
object Default : RewardType()
diff --git a/design-system/src/main/java/com/danbam/design_system/component/List.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/List.kt
similarity index 89%
rename from design-system/src/main/java/com/danbam/design_system/component/List.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/List.kt
index bc9ed3fd..5646aab1 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/List.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/List.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import android.net.Uri
import androidx.compose.foundation.BorderStroke
@@ -21,16 +21,16 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.LaunchType
-import com.danbam.design_system.util.RemoveOverScrollLazyRow
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.util.rememberLauncher
-import com.danbam.design_system.util.typedLaunch
-import com.danbam.domain.entity.movie.MoviePeopleEntity
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.LaunchType
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyRow
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.rememberLauncher
+import com.danbam.indistraw.core.design_system.util.androidx.typedLaunch
+import com.danbam.indistraw.core.entity.movie.MoviePeopleEntity
@Composable
fun AddImageList(
diff --git a/design-system/src/main/java/com/danbam/design_system/component/ProgressBar.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ProgressBar.kt
similarity index 96%
rename from design-system/src/main/java/com/danbam/design_system/component/ProgressBar.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ProgressBar.kt
index 7be2e8fa..e2c36255 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/ProgressBar.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ProgressBar.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.foundation.background
@@ -19,7 +19,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
sealed class MakeFundingProgress(val progress: Int) {
object WriteIntroduce : MakeFundingProgress(0)
diff --git a/design-system/src/main/java/com/danbam/design_system/component/QRPainter.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/QRPainter.kt
similarity index 90%
rename from design-system/src/main/java/com/danbam/design_system/component/QRPainter.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/QRPainter.kt
index 536f5f00..0a6ceae6 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/QRPainter.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/QRPainter.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
diff --git a/design-system/src/main/java/com/danbam/design_system/component/QRScanner.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/QRScanner.kt
similarity index 98%
rename from design-system/src/main/java/com/danbam/design_system/component/QRScanner.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/QRScanner.kt
index 094ea84f..62cf96b8 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/QRScanner.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/QRScanner.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import android.annotation.SuppressLint
import androidx.activity.ComponentActivity
diff --git a/design-system/src/main/java/com/danbam/design_system/component/TabLayout.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TabLayout.kt
similarity index 93%
rename from design-system/src/main/java/com/danbam/design_system/component/TabLayout.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TabLayout.kt
index 66c39c6b..e7c2c2a3 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/TabLayout.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TabLayout.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -31,13 +31,13 @@ import androidx.compose.ui.unit.dp
import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.util.RemoveOverScrollLazyRow
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.util.toDp
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.movie.MovieEntity
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyRow
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.internal.toDp
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.withContext
diff --git a/design-system/src/main/java/com/danbam/design_system/component/TextField.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TextField.kt
similarity index 94%
rename from design-system/src/main/java/com/danbam/design_system/component/TextField.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TextField.kt
index e3506d97..d1c52e2f 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/TextField.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TextField.kt
@@ -1,20 +1,17 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
-import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@@ -30,11 +27,10 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation
import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.indiStrawClickable
-import kotlinx.coroutines.delay
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@Composable
fun IndiStrawTextField(
diff --git a/design-system/src/main/java/com/danbam/design_system/component/TextView.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TextView.kt
similarity index 99%
rename from design-system/src/main/java/com/danbam/design_system/component/TextView.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TextView.kt
index 4a4153fc..5144b8c2 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/TextView.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/TextView.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
@@ -10,7 +10,7 @@ import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.sp
-import com.danbam.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
@Composable
fun HeadLineBold(
diff --git a/design-system/src/main/java/com/danbam/design_system/component/Toggle.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Toggle.kt
similarity index 85%
rename from design-system/src/main/java/com/danbam/design_system/component/Toggle.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Toggle.kt
index 5f855c8b..9f85b06c 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/Toggle.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/Toggle.kt
@@ -1,7 +1,6 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.background
-import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
@@ -10,8 +9,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@Composable
fun IndiStrawToggle(
diff --git a/design-system/src/main/java/com/danbam/design_system/component/ViewPager.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ViewPager.kt
similarity index 97%
rename from design-system/src/main/java/com/danbam/design_system/component/ViewPager.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ViewPager.kt
index 24d701c0..732bcc41 100644
--- a/design-system/src/main/java/com/danbam/design_system/component/ViewPager.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/component/ViewPager.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.component
+package com.danbam.indistraw.core.design_system.component
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
@@ -19,8 +19,8 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.util.RemoveOverScrollLazyRow
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyRow
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.delay
import kotlinx.coroutines.withContext
diff --git a/mobile/src/main/java/com/danbam/mobile/util/android/ContextUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/ContextUtil.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/util/android/ContextUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/ContextUtil.kt
index 9bb36ae2..d5c8ba6c 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/android/ContextUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/ContextUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.util.android
+package com.danbam.indistraw.core.design_system.util.android
import android.app.Activity
import android.content.Context
diff --git a/mobile/src/main/java/com/danbam/mobile/util/parser/FileUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/FileUtil.kt
similarity index 91%
rename from mobile/src/main/java/com/danbam/mobile/util/parser/FileUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/FileUtil.kt
index dc7a6142..0492ce50 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/parser/FileUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/FileUtil.kt
@@ -1,17 +1,14 @@
-package com.danbam.mobile.util.parser
+package com.danbam.indistraw.core.design_system.util.android
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Bitmap
import android.net.Uri
import android.os.Environment
-import android.provider.OpenableColumns
-import androidx.core.net.toFile
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
import java.lang.RuntimeException
-import java.net.URLDecoder
import java.time.LocalDateTime
@SuppressLint("Range")
diff --git a/design-system/src/main/java/com/danbam/design_system/util/PermissionUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/PermissionUtil.kt
similarity index 85%
rename from design-system/src/main/java/com/danbam/design_system/util/PermissionUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/PermissionUtil.kt
index 30384ff8..6eab0b2f 100644
--- a/design-system/src/main/java/com/danbam/design_system/util/PermissionUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/PermissionUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.util
+package com.danbam.indistraw.core.design_system.util.android
import android.content.Context
import android.content.pm.PackageManager
diff --git a/design-system/src/main/java/com/danbam/design_system/util/SystemUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/SystemUtil.kt
similarity index 87%
rename from design-system/src/main/java/com/danbam/design_system/util/SystemUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/SystemUtil.kt
index d9d9b911..cefbdd6b 100644
--- a/design-system/src/main/java/com/danbam/design_system/util/SystemUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/android/SystemUtil.kt
@@ -1,8 +1,8 @@
-package com.danbam.design_system.util
+package com.danbam.indistraw.core.design_system.util.android
import android.content.Context
import android.content.res.Configuration
-import com.danbam.design_system.R
+import com.danbam.indistraw.core.design_system.R
import java.util.Locale
sealed class Language(val type: String, val stringId: Int) {
diff --git a/design-system/src/main/java/com/danbam/design_system/util/Clickable.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/Clickable.kt
similarity index 95%
rename from design-system/src/main/java/com/danbam/design_system/util/Clickable.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/Clickable.kt
index e7bdf5de..477aab88 100644
--- a/design-system/src/main/java/com/danbam/design_system/util/Clickable.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/Clickable.kt
@@ -1,7 +1,6 @@
-package com.danbam.design_system.util
+package com.danbam.indistraw.core.design_system.util.androidx
import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.material.ripple.rememberRipple
diff --git a/mobile/src/main/java/com/danbam/mobile/util/view/FocusUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/FocusUtil.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/util/view/FocusUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/FocusUtil.kt
index 904c5940..f453142c 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/view/FocusUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/FocusUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.util.view
+package com.danbam.indistraw.core.design_system.util.androidx
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.focus.FocusRequester
diff --git a/design-system/src/main/java/com/danbam/design_system/util/LauncherUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LauncherUtil.kt
similarity index 96%
rename from design-system/src/main/java/com/danbam/design_system/util/LauncherUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LauncherUtil.kt
index 8d55ef8e..c572c7ca 100644
--- a/design-system/src/main/java/com/danbam/design_system/util/LauncherUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LauncherUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.util
+package com.danbam.indistraw.core.design_system.util.androidx
import android.app.Activity
import android.content.Intent
diff --git a/design-system/src/main/java/com/danbam/design_system/util/LazyList.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LazyList.kt
similarity index 98%
rename from design-system/src/main/java/com/danbam/design_system/util/LazyList.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LazyList.kt
index 34ccfd7a..1012a815 100644
--- a/design-system/src/main/java/com/danbam/design_system/util/LazyList.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LazyList.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.util
+package com.danbam.indistraw.core.design_system.util.androidx
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.LocalOverscrollConfiguration
diff --git a/mobile/src/main/java/com/danbam/mobile/util/android/LifeCycleUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LifeCycleUtil.kt
similarity index 94%
rename from mobile/src/main/java/com/danbam/mobile/util/android/LifeCycleUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LifeCycleUtil.kt
index a313efc3..50d891ff 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/android/LifeCycleUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/LifeCycleUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.util.android
+package com.danbam.indistraw.core.design_system.util.androidx
import androidx.activity.ComponentActivity
import androidx.compose.runtime.Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/util/view/NavigationUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/NavigationUtil.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/util/view/NavigationUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/NavigationUtil.kt
index 0e41cd06..935fb851 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/view/NavigationUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/NavigationUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.util.view
+package com.danbam.indistraw.core.design_system.util.androidx
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.platform.SoftwareKeyboardController
diff --git a/mobile/src/main/java/com/danbam/mobile/util/view/OrientationUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/OrientationUtil.kt
similarity index 81%
rename from mobile/src/main/java/com/danbam/mobile/util/view/OrientationUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/OrientationUtil.kt
index 86e3ba9f..a48bcefd 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/view/OrientationUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/OrientationUtil.kt
@@ -1,9 +1,9 @@
-package com.danbam.mobile.util.view
+package com.danbam.indistraw.core.design_system.util.androidx
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.ui.platform.LocalContext
-import com.danbam.mobile.util.android.findActivity
+import com.danbam.indistraw.core.design_system.util.android.findActivity
@Composable
fun LockScreenOrientation(orientation: Int) {
diff --git a/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/ViewUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/ViewUtil.kt
new file mode 100644
index 00000000..dabc325b
--- /dev/null
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/androidx/ViewUtil.kt
@@ -0,0 +1,26 @@
+package com.danbam.indistraw.core.design_system.util.androidx
+
+import android.view.View
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.DisposableEffect
+import androidx.compose.ui.platform.LocalContext
+import com.danbam.indistraw.core.design_system.util.android.findActivity
+
+@Composable
+fun HideSystemUI() {
+ val context = LocalContext.current
+ DisposableEffect(Unit) {
+ val activity = context.findActivity() ?: return@DisposableEffect onDispose { }
+ val originalSystemUI = activity.window.decorView.systemUiVisibility
+ activity.window.decorView.systemUiVisibility =
+ View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
+ View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
+ View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
+ View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
+ View.SYSTEM_UI_FLAG_FULLSCREEN or
+ View.SYSTEM_UI_FLAG_IMMERSIVE
+ onDispose {
+ activity.window.decorView.systemUiVisibility = originalSystemUI
+ }
+ }
+}
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/util/pay/BootPay.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/bootpay/BootPay.kt
similarity index 94%
rename from mobile/src/main/java/com/danbam/mobile/util/pay/BootPay.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/bootpay/BootPay.kt
index 67d09057..e2362369 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/pay/BootPay.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/bootpay/BootPay.kt
@@ -1,9 +1,8 @@
-package com.danbam.mobile.util.pay
+package com.danbam.indistraw.core.design_system.util.bootpay
import android.app.Activity
import android.content.Context
-import androidx.fragment.app.FragmentManager
-import com.danbam.mobile.BuildConfig
+import com.danbam.indistraw.core.design_system.BuildConfig
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName
import kr.co.bootpay.android.Bootpay
diff --git a/mobile/src/main/java/com/danbam/mobile/util/android/ErrorHandlingUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/danbam/ErrorHandlingUtil.kt
similarity index 75%
rename from mobile/src/main/java/com/danbam/mobile/util/android/ErrorHandlingUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/danbam/ErrorHandlingUtil.kt
index 48264654..c2275d61 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/android/ErrorHandlingUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/danbam/ErrorHandlingUtil.kt
@@ -1,13 +1,13 @@
-package com.danbam.mobile.util.android
+package com.danbam.indistraw.core.design_system.util.danbam
import android.util.Log
-import com.danbam.domain.exception.ConflictDataException
-import com.danbam.domain.exception.ExpiredTokenException
-import com.danbam.domain.exception.InvalidTokenException
-import com.danbam.domain.exception.NotFoundException
-import com.danbam.domain.exception.ServerErrorException
-import com.danbam.domain.exception.TooManyRequestException
-import com.danbam.domain.exception.WrongDataException
+import com.danbam.indistraw.core.domain.exception.ConflictDataException
+import com.danbam.indistraw.core.domain.exception.ExpiredTokenException
+import com.danbam.indistraw.core.domain.exception.InvalidTokenException
+import com.danbam.indistraw.core.domain.exception.NotFoundException
+import com.danbam.indistraw.core.domain.exception.ServerErrorException
+import com.danbam.indistraw.core.domain.exception.TooManyRequestException
+import com.danbam.indistraw.core.domain.exception.WrongDataException
suspend fun Throwable.errorHandling(
unknownAction: suspend () -> Unit,
diff --git a/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/google/ExoPlayerUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/google/ExoPlayerUtil.kt
new file mode 100644
index 00000000..8c85c53f
--- /dev/null
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/google/ExoPlayerUtil.kt
@@ -0,0 +1,48 @@
+package com.danbam.indistraw.core.design_system.util.google
+
+import android.view.KeyEvent
+import com.google.android.exoplayer2.C
+import com.google.android.exoplayer2.ExoPlayer
+import com.google.android.exoplayer2.Player
+
+fun ExoPlayer.detectKeyEvent(event: KeyEvent): Boolean {
+ val keyCode: Int = event.keyCode
+ if (event.action == KeyEvent.ACTION_DOWN) {
+ if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) {
+ if (playbackState != Player.STATE_ENDED) {
+ seekForward()
+ }
+ } else if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) {
+ seekBack()
+ } else if (event.repeatCount == 0) {
+ when (keyCode) {
+ KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, KeyEvent.KEYCODE_HEADSETHOOK -> dispatchPlayPause()
+ KeyEvent.KEYCODE_MEDIA_PLAY -> dispatchPlay()
+ KeyEvent.KEYCODE_MEDIA_PAUSE -> pause()
+ KeyEvent.KEYCODE_MEDIA_NEXT -> seekToNext()
+ KeyEvent.KEYCODE_MEDIA_PREVIOUS -> seekToPrevious()
+ else -> {}
+ }
+ }
+ }
+ return true
+}
+
+private fun ExoPlayer.dispatchPlayPause() {
+ val state = playbackState
+ if (state == Player.STATE_IDLE || state == Player.STATE_ENDED || !playWhenReady) {
+ dispatchPlay()
+ } else {
+ pause()
+ }
+}
+
+private fun ExoPlayer.dispatchPlay() {
+ val state = playbackState
+ if (state == Player.STATE_IDLE) {
+ prepare()
+ } else if (state == Player.STATE_ENDED) {
+ seekTo(currentMediaItemIndex, C.TIME_UNSET)
+ }
+ play()
+}
\ No newline at end of file
diff --git a/design-system/src/main/java/com/danbam/design_system/util/GraphicUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/internal/GraphicUtil.kt
similarity index 71%
rename from design-system/src/main/java/com/danbam/design_system/util/GraphicUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/internal/GraphicUtil.kt
index 509b798d..0ad61cbe 100644
--- a/design-system/src/main/java/com/danbam/design_system/util/GraphicUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/internal/GraphicUtil.kt
@@ -1,4 +1,4 @@
-package com.danbam.design_system.util
+package com.danbam.indistraw.core.design_system.util.internal
import android.content.Context
import kotlin.math.roundToInt
diff --git a/mobile/src/main/java/com/danbam/mobile/util/parser/StringUtil.kt b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/internal/StringUtil.kt
similarity index 54%
rename from mobile/src/main/java/com/danbam/mobile/util/parser/StringUtil.kt
rename to core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/internal/StringUtil.kt
index 32dbcc55..b92adf8d 100644
--- a/mobile/src/main/java/com/danbam/mobile/util/parser/StringUtil.kt
+++ b/core/design-system/src/main/kotlin/com/danbam/indistraw/core/design_system/util/internal/StringUtil.kt
@@ -1,6 +1,17 @@
-package com.danbam.mobile.util.parser
+package com.danbam.indistraw.core.design_system.util.internal
import java.text.DecimalFormat
+import java.util.concurrent.TimeUnit
+
+fun Long.toCommaString(): String = DecimalFormat("#,###").format(this)
+
+fun Long.formatMinSec(): String = String.format(
+ "%02d : %02d",
+ TimeUnit.MILLISECONDS.toMinutes(this),
+ TimeUnit.MILLISECONDS.toSeconds(this) - TimeUnit.MINUTES.toSeconds(
+ TimeUnit.MILLISECONDS.toMinutes(this)
+ )
+)
fun String.isPassword(): Boolean =
"^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#\$%^&*?~])[0-9a-zA-Z!@#\$%^&*?~]+\$".toRegex()
diff --git a/design-system/src/main/res/drawable/ic_attaced.xml b/core/design-system/src/main/res/drawable/ic_attaced.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_attaced.xml
rename to core/design-system/src/main/res/drawable/ic_attaced.xml
diff --git a/design-system/src/main/res/drawable/ic_back.xml b/core/design-system/src/main/res/drawable/ic_back.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_back.xml
rename to core/design-system/src/main/res/drawable/ic_back.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_gwang.xml b/core/design-system/src/main/res/drawable/ic_bank_gwang.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_gwang.xml
rename to core/design-system/src/main/res/drawable/ic_bank_gwang.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_hana.xml b/core/design-system/src/main/res/drawable/ic_bank_hana.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_hana.xml
rename to core/design-system/src/main/res/drawable/ic_bank_hana.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_kakao.xml b/core/design-system/src/main/res/drawable/ic_bank_kakao.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_kakao.xml
rename to core/design-system/src/main/res/drawable/ic_bank_kakao.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_nh.xml b/core/design-system/src/main/res/drawable/ic_bank_nh.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_nh.xml
rename to core/design-system/src/main/res/drawable/ic_bank_nh.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_post.xml b/core/design-system/src/main/res/drawable/ic_bank_post.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_post.xml
rename to core/design-system/src/main/res/drawable/ic_bank_post.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_shinhan.xml b/core/design-system/src/main/res/drawable/ic_bank_shinhan.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_shinhan.xml
rename to core/design-system/src/main/res/drawable/ic_bank_shinhan.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_shinhyeop.xml b/core/design-system/src/main/res/drawable/ic_bank_shinhyeop.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_shinhyeop.xml
rename to core/design-system/src/main/res/drawable/ic_bank_shinhyeop.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_toss.xml b/core/design-system/src/main/res/drawable/ic_bank_toss.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_toss.xml
rename to core/design-system/src/main/res/drawable/ic_bank_toss.xml
diff --git a/design-system/src/main/res/drawable/ic_bank_woori.xml b/core/design-system/src/main/res/drawable/ic_bank_woori.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_bank_woori.xml
rename to core/design-system/src/main/res/drawable/ic_bank_woori.xml
diff --git a/design-system/src/main/res/drawable/ic_camera.xml b/core/design-system/src/main/res/drawable/ic_camera.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_camera.xml
rename to core/design-system/src/main/res/drawable/ic_camera.xml
diff --git a/design-system/src/main/res/drawable/ic_check.xml b/core/design-system/src/main/res/drawable/ic_check.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_check.xml
rename to core/design-system/src/main/res/drawable/ic_check.xml
diff --git a/design-system/src/main/res/drawable/ic_delete.xml b/core/design-system/src/main/res/drawable/ic_delete.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_delete.xml
rename to core/design-system/src/main/res/drawable/ic_delete.xml
diff --git a/design-system/src/main/res/drawable/ic_down.xml b/core/design-system/src/main/res/drawable/ic_down.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_down.xml
rename to core/design-system/src/main/res/drawable/ic_down.xml
diff --git a/design-system/src/main/res/drawable/ic_down_arrow.xml b/core/design-system/src/main/res/drawable/ic_down_arrow.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_down_arrow.xml
rename to core/design-system/src/main/res/drawable/ic_down_arrow.xml
diff --git a/design-system/src/main/res/drawable/ic_earth.xml b/core/design-system/src/main/res/drawable/ic_earth.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_earth.xml
rename to core/design-system/src/main/res/drawable/ic_earth.xml
diff --git a/design-system/src/main/res/drawable/ic_fast_play.xml b/core/design-system/src/main/res/drawable/ic_fast_play.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_fast_play.xml
rename to core/design-system/src/main/res/drawable/ic_fast_play.xml
diff --git a/design-system/src/main/res/drawable/ic_fast_search.xml b/core/design-system/src/main/res/drawable/ic_fast_search.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_fast_search.xml
rename to core/design-system/src/main/res/drawable/ic_fast_search.xml
diff --git a/design-system/src/main/res/drawable/ic_gallery.xml b/core/design-system/src/main/res/drawable/ic_gallery.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_gallery.xml
rename to core/design-system/src/main/res/drawable/ic_gallery.xml
diff --git a/design-system/src/main/res/drawable/ic_logo.xml b/core/design-system/src/main/res/drawable/ic_logo.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_logo.xml
rename to core/design-system/src/main/res/drawable/ic_logo.xml
diff --git a/design-system/src/main/res/drawable/ic_minus.xml b/core/design-system/src/main/res/drawable/ic_minus.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_minus.xml
rename to core/design-system/src/main/res/drawable/ic_minus.xml
diff --git a/design-system/src/main/res/drawable/ic_movie.xml b/core/design-system/src/main/res/drawable/ic_movie.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_movie.xml
rename to core/design-system/src/main/res/drawable/ic_movie.xml
diff --git a/design-system/src/main/res/drawable/ic_nav_home.xml b/core/design-system/src/main/res/drawable/ic_nav_home.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_nav_home.xml
rename to core/design-system/src/main/res/drawable/ic_nav_home.xml
diff --git a/design-system/src/main/res/drawable/ic_nav_movie.xml b/core/design-system/src/main/res/drawable/ic_nav_movie.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_nav_movie.xml
rename to core/design-system/src/main/res/drawable/ic_nav_movie.xml
diff --git a/design-system/src/main/res/drawable/ic_nav_search.xml b/core/design-system/src/main/res/drawable/ic_nav_search.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_nav_search.xml
rename to core/design-system/src/main/res/drawable/ic_nav_search.xml
diff --git a/design-system/src/main/res/drawable/ic_nav_setting.xml b/core/design-system/src/main/res/drawable/ic_nav_setting.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_nav_setting.xml
rename to core/design-system/src/main/res/drawable/ic_nav_setting.xml
diff --git a/design-system/src/main/res/drawable/ic_no_img.xml b/core/design-system/src/main/res/drawable/ic_no_img.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_no_img.xml
rename to core/design-system/src/main/res/drawable/ic_no_img.xml
diff --git a/design-system/src/main/res/drawable/ic_open_eyes.xml b/core/design-system/src/main/res/drawable/ic_open_eyes.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_open_eyes.xml
rename to core/design-system/src/main/res/drawable/ic_open_eyes.xml
diff --git a/design-system/src/main/res/drawable/ic_people.xml b/core/design-system/src/main/res/drawable/ic_people.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_people.xml
rename to core/design-system/src/main/res/drawable/ic_people.xml
diff --git a/design-system/src/main/res/drawable/ic_play.xml b/core/design-system/src/main/res/drawable/ic_play.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_play.xml
rename to core/design-system/src/main/res/drawable/ic_play.xml
diff --git a/design-system/src/main/res/drawable/ic_play_first.xml b/core/design-system/src/main/res/drawable/ic_play_first.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_play_first.xml
rename to core/design-system/src/main/res/drawable/ic_play_first.xml
diff --git a/design-system/src/main/res/drawable/ic_player_back.xml b/core/design-system/src/main/res/drawable/ic_player_back.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_back.xml
rename to core/design-system/src/main/res/drawable/ic_player_back.xml
diff --git a/design-system/src/main/res/drawable/ic_player_finish.xml b/core/design-system/src/main/res/drawable/ic_player_finish.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_finish.xml
rename to core/design-system/src/main/res/drawable/ic_player_finish.xml
diff --git a/design-system/src/main/res/drawable/ic_player_forward.xml b/core/design-system/src/main/res/drawable/ic_player_forward.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_forward.xml
rename to core/design-system/src/main/res/drawable/ic_player_forward.xml
diff --git a/design-system/src/main/res/drawable/ic_player_lock_close.xml b/core/design-system/src/main/res/drawable/ic_player_lock_close.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_lock_close.xml
rename to core/design-system/src/main/res/drawable/ic_player_lock_close.xml
diff --git a/design-system/src/main/res/drawable/ic_player_lock_open.xml b/core/design-system/src/main/res/drawable/ic_player_lock_open.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_lock_open.xml
rename to core/design-system/src/main/res/drawable/ic_player_lock_open.xml
diff --git a/design-system/src/main/res/drawable/ic_player_pip.xml b/core/design-system/src/main/res/drawable/ic_player_pip.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_pip.xml
rename to core/design-system/src/main/res/drawable/ic_player_pip.xml
diff --git a/design-system/src/main/res/drawable/ic_player_play.xml b/core/design-system/src/main/res/drawable/ic_player_play.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_play.xml
rename to core/design-system/src/main/res/drawable/ic_player_play.xml
diff --git a/design-system/src/main/res/drawable/ic_player_stop.xml b/core/design-system/src/main/res/drawable/ic_player_stop.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_player_stop.xml
rename to core/design-system/src/main/res/drawable/ic_player_stop.xml
diff --git a/design-system/src/main/res/drawable/ic_plus.xml b/core/design-system/src/main/res/drawable/ic_plus.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_plus.xml
rename to core/design-system/src/main/res/drawable/ic_plus.xml
diff --git a/design-system/src/main/res/drawable/ic_plus_circle.xml b/core/design-system/src/main/res/drawable/ic_plus_circle.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_plus_circle.xml
rename to core/design-system/src/main/res/drawable/ic_plus_circle.xml
diff --git a/design-system/src/main/res/drawable/ic_profile.xml b/core/design-system/src/main/res/drawable/ic_profile.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_profile.xml
rename to core/design-system/src/main/res/drawable/ic_profile.xml
diff --git a/design-system/src/main/res/drawable/ic_qr.xml b/core/design-system/src/main/res/drawable/ic_qr.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_qr.xml
rename to core/design-system/src/main/res/drawable/ic_qr.xml
diff --git a/design-system/src/main/res/drawable/ic_qr_grid.xml b/core/design-system/src/main/res/drawable/ic_qr_grid.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_qr_grid.xml
rename to core/design-system/src/main/res/drawable/ic_qr_grid.xml
diff --git a/design-system/src/main/res/drawable/ic_search.xml b/core/design-system/src/main/res/drawable/ic_search.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_search.xml
rename to core/design-system/src/main/res/drawable/ic_search.xml
diff --git a/design-system/src/main/res/drawable/ic_setting.xml b/core/design-system/src/main/res/drawable/ic_setting.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_setting.xml
rename to core/design-system/src/main/res/drawable/ic_setting.xml
diff --git a/design-system/src/main/res/drawable/ic_shield.xml b/core/design-system/src/main/res/drawable/ic_shield.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_shield.xml
rename to core/design-system/src/main/res/drawable/ic_shield.xml
diff --git a/design-system/src/main/res/drawable/ic_uncheck.xml b/core/design-system/src/main/res/drawable/ic_uncheck.xml
similarity index 100%
rename from design-system/src/main/res/drawable/ic_uncheck.xml
rename to core/design-system/src/main/res/drawable/ic_uncheck.xml
diff --git a/design-system/src/main/res/font/suit_bold.ttf b/core/design-system/src/main/res/font/suit_bold.ttf
similarity index 100%
rename from design-system/src/main/res/font/suit_bold.ttf
rename to core/design-system/src/main/res/font/suit_bold.ttf
diff --git a/design-system/src/main/res/font/suit_medium.ttf b/core/design-system/src/main/res/font/suit_medium.ttf
similarity index 100%
rename from design-system/src/main/res/font/suit_medium.ttf
rename to core/design-system/src/main/res/font/suit_medium.ttf
diff --git a/design-system/src/main/res/font/suit_regular.ttf b/core/design-system/src/main/res/font/suit_regular.ttf
similarity index 100%
rename from design-system/src/main/res/font/suit_regular.ttf
rename to core/design-system/src/main/res/font/suit_regular.ttf
diff --git a/design-system/src/main/res/font/suit_semibold.ttf b/core/design-system/src/main/res/font/suit_semibold.ttf
similarity index 100%
rename from design-system/src/main/res/font/suit_semibold.ttf
rename to core/design-system/src/main/res/font/suit_semibold.ttf
diff --git a/design-system/src/main/res/values-en/strings.xml b/core/design-system/src/main/res/values-en/strings.xml
similarity index 100%
rename from design-system/src/main/res/values-en/strings.xml
rename to core/design-system/src/main/res/values-en/strings.xml
diff --git a/design-system/src/main/res/values-es/strings.xml b/core/design-system/src/main/res/values-es/strings.xml
similarity index 100%
rename from design-system/src/main/res/values-es/strings.xml
rename to core/design-system/src/main/res/values-es/strings.xml
diff --git a/design-system/src/main/res/values-ja/strings.xml b/core/design-system/src/main/res/values-ja/strings.xml
similarity index 100%
rename from design-system/src/main/res/values-ja/strings.xml
rename to core/design-system/src/main/res/values-ja/strings.xml
diff --git a/design-system/src/main/res/values-ko-rKR/strings.xml b/core/design-system/src/main/res/values-ko-rKR/strings.xml
similarity index 100%
rename from design-system/src/main/res/values-ko-rKR/strings.xml
rename to core/design-system/src/main/res/values-ko-rKR/strings.xml
diff --git a/design-system/src/main/res/values-zh/strings.xml b/core/design-system/src/main/res/values-zh/strings.xml
similarity index 100%
rename from design-system/src/main/res/values-zh/strings.xml
rename to core/design-system/src/main/res/values-zh/strings.xml
diff --git a/design-system/src/main/res/values/string.xml b/core/design-system/src/main/res/values/string.xml
similarity index 100%
rename from design-system/src/main/res/values/string.xml
rename to core/design-system/src/main/res/values/string.xml
diff --git a/mobile/.gitignore b/core/di/.gitignore
similarity index 100%
rename from mobile/.gitignore
rename to core/di/.gitignore
diff --git a/core/di/build.gradle.kts b/core/di/build.gradle.kts
new file mode 100644
index 00000000..5ff6e72b
--- /dev/null
+++ b/core/di/build.gradle.kts
@@ -0,0 +1,31 @@
+import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
+
+plugins {
+ id("indistraw-core")
+ id("kotlin-android")
+}
+
+android {
+ namespace = "com.danbam.indistraw.core.di"
+ defaultConfig {
+ buildConfigField(
+ "String",
+ "BASE_URL",
+ gradleLocalProperties(rootDir).getProperty("BASE_URL")
+ )
+ }
+}
+
+dependencies {
+ implementation(project(":core:data"))
+ implementation(project(":core:domain"))
+ implementation(libs.androidx.core)
+ implementation(libs.androidx.appcompat)
+ implementation(libs.androidx.preference)
+ implementation(libs.hilt)
+ kapt(libs.hilt.compiler)
+ implementation(libs.room)
+ kapt(libs.room.compiler)
+ implementation(libs.bundles.retrofit)
+ implementation(libs.bundles.okhttp)
+}
\ No newline at end of file
diff --git a/di/src/main/AndroidManifest.xml b/core/di/src/main/AndroidManifest.xml
similarity index 100%
rename from di/src/main/AndroidManifest.xml
rename to core/di/src/main/AndroidManifest.xml
diff --git a/di/src/main/java/com/danbam/di/LocalDataSourceModule.kt b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/LocalDataSourceModule.kt
similarity index 55%
rename from di/src/main/java/com/danbam/di/LocalDataSourceModule.kt
rename to core/di/src/main/kotlin/com/danbam/indistraw/core/di/LocalDataSourceModule.kt
index b96a05a0..dc4f2e89 100644
--- a/di/src/main/java/com/danbam/di/LocalDataSourceModule.kt
+++ b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/LocalDataSourceModule.kt
@@ -1,11 +1,11 @@
-package com.danbam.di
+package com.danbam.indistraw.core.di
-import com.danbam.data.local.datasource.AuthLocalDataSource
-import com.danbam.data.local.datasource.AuthLocalDataSourceImpl
-import com.danbam.data.local.datasource.SearchLocalDataSource
-import com.danbam.data.local.datasource.SearchLocalDataSourceImpl
-import com.danbam.data.local.datasource.SystemLocalDataSource
-import com.danbam.data.local.datasource.SystemLocalDataSourceImpl
+import com.danbam.indistraw.core.data.local.datasource.AuthLocalDataSource
+import com.danbam.indistraw.core.data.local.datasource.AuthLocalDataSourceImpl
+import com.danbam.indistraw.core.data.local.datasource.SearchLocalDataSource
+import com.danbam.indistraw.core.data.local.datasource.SearchLocalDataSourceImpl
+import com.danbam.indistraw.core.data.local.datasource.SystemLocalDataSource
+import com.danbam.indistraw.core.data.local.datasource.SystemLocalDataSourceImpl
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
diff --git a/di/src/main/java/com/danbam/di/LocalModule.kt b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/LocalModule.kt
similarity index 93%
rename from di/src/main/java/com/danbam/di/LocalModule.kt
rename to core/di/src/main/kotlin/com/danbam/indistraw/core/di/LocalModule.kt
index 66a610fc..81b06397 100644
--- a/di/src/main/java/com/danbam/di/LocalModule.kt
+++ b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/LocalModule.kt
@@ -1,4 +1,4 @@
-package com.danbam.di
+package com.danbam.indistraw.core.di
import android.content.Context
import android.content.SharedPreferences
diff --git a/di/src/main/java/com/danbam/di/NetworkModule.kt b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/NetworkModule.kt
similarity index 75%
rename from di/src/main/java/com/danbam/di/NetworkModule.kt
rename to core/di/src/main/kotlin/com/danbam/indistraw/core/di/NetworkModule.kt
index fa463aaa..fd0b60f3 100644
--- a/di/src/main/java/com/danbam/di/NetworkModule.kt
+++ b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/NetworkModule.kt
@@ -1,18 +1,17 @@
-package com.danbam.di
+package com.danbam.indistraw.core.di
import android.content.Context
-import android.util.Log
-import com.danbam.data.remote.api.AccountAPI
-import com.danbam.data.remote.api.AddressAPI
-import com.danbam.data.remote.api.AuthAPI
-import com.danbam.data.remote.api.BannerAPI
-import com.danbam.data.remote.api.FileAPI
-import com.danbam.data.remote.api.SearchAPI
-import com.danbam.data.remote.api.CrowdFundingAPI
-import com.danbam.data.remote.api.MovieAPI
-import com.danbam.data.remote.api.FundingAPI
-import com.danbam.data.remote.api.QRCodeAPI
-import com.danbam.data.remote.interceptor.IndiStrawInterceptor
+import com.danbam.indistraw.core.data.remote.api.AccountAPI
+import com.danbam.indistraw.core.data.remote.api.AddressAPI
+import com.danbam.indistraw.core.data.remote.api.AuthAPI
+import com.danbam.indistraw.core.data.remote.api.BannerAPI
+import com.danbam.indistraw.core.data.remote.api.CrowdFundingAPI
+import com.danbam.indistraw.core.data.remote.api.FileAPI
+import com.danbam.indistraw.core.data.remote.api.FundingAPI
+import com.danbam.indistraw.core.data.remote.api.MovieAPI
+import com.danbam.indistraw.core.data.remote.api.QRCodeAPI
+import com.danbam.indistraw.core.data.remote.api.SearchAPI
+import com.danbam.indistraw.core.data.remote.interceptor.IndiStrawInterceptor
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@@ -20,7 +19,6 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import okhttp3.Cache
import okhttp3.OkHttpClient
-import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
diff --git a/di/src/main/java/com/danbam/di/PreferenceModule.kt b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/PreferenceModule.kt
similarity index 57%
rename from di/src/main/java/com/danbam/di/PreferenceModule.kt
rename to core/di/src/main/kotlin/com/danbam/indistraw/core/di/PreferenceModule.kt
index f8d98a7b..b4c16c09 100644
--- a/di/src/main/java/com/danbam/di/PreferenceModule.kt
+++ b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/PreferenceModule.kt
@@ -1,9 +1,9 @@
-package com.danbam.di
+package com.danbam.indistraw.core.di
-import com.danbam.data.local.preference.AuthPreference
-import com.danbam.data.local.preference.AuthPreferenceImpl
-import com.danbam.data.local.preference.SystemPreference
-import com.danbam.data.local.preference.SystemPreferenceImpl
+import com.danbam.indistraw.core.data.local.preference.AuthPreference
+import com.danbam.indistraw.core.data.local.preference.AuthPreferenceImpl
+import com.danbam.indistraw.core.data.local.preference.SystemPreference
+import com.danbam.indistraw.core.data.local.preference.SystemPreferenceImpl
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
diff --git a/di/src/main/java/com/danbam/di/RemoteDataSourceModule.kt b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/RemoteDataSourceModule.kt
similarity index 50%
rename from di/src/main/java/com/danbam/di/RemoteDataSourceModule.kt
rename to core/di/src/main/kotlin/com/danbam/indistraw/core/di/RemoteDataSourceModule.kt
index 661cfa2a..a3ea396f 100644
--- a/di/src/main/java/com/danbam/di/RemoteDataSourceModule.kt
+++ b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/RemoteDataSourceModule.kt
@@ -1,25 +1,25 @@
-package com.danbam.di
+package com.danbam.indistraw.core.di
-import com.danbam.data.remote.datasource.AccountRemoteDataSource
-import com.danbam.data.remote.datasource.AccountRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.AddressRemoteDataSource
-import com.danbam.data.remote.datasource.AddressRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.AuthRemoteDataSource
-import com.danbam.data.remote.datasource.AuthRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.BannerRemoteDataSource
-import com.danbam.data.remote.datasource.BannerRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.FileRemoteDataSource
-import com.danbam.data.remote.datasource.FileRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.SearchRemoteDataSource
-import com.danbam.data.remote.datasource.SearchRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.CrowdFundingRemoteDataSource
-import com.danbam.data.remote.datasource.CrowdFundingRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.MovieRemoteDataSource
-import com.danbam.data.remote.datasource.MovieRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.FundingRemoteDataSource
-import com.danbam.data.remote.datasource.FundingRemoteDataSourceImpl
-import com.danbam.data.remote.datasource.QRCodeRemoteDataSource
-import com.danbam.data.remote.datasource.QRCodeRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.AccountRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.AccountRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.AddressRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.AddressRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.AuthRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.AuthRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.BannerRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.BannerRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.CrowdFundingRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.CrowdFundingRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.FileRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.FileRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.FundingRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.FundingRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.MovieRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.MovieRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.QRCodeRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.QRCodeRemoteDataSourceImpl
+import com.danbam.indistraw.core.data.remote.datasource.SearchRemoteDataSource
+import com.danbam.indistraw.core.data.remote.datasource.SearchRemoteDataSourceImpl
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
diff --git a/di/src/main/java/com/danbam/di/RepositoryModule.kt b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/RepositoryModule.kt
similarity index 50%
rename from di/src/main/java/com/danbam/di/RepositoryModule.kt
rename to core/di/src/main/kotlin/com/danbam/indistraw/core/di/RepositoryModule.kt
index 30e30684..61b5d1f1 100644
--- a/di/src/main/java/com/danbam/di/RepositoryModule.kt
+++ b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/RepositoryModule.kt
@@ -1,27 +1,27 @@
-package com.danbam.di
+package com.danbam.indistraw.core.di
-import com.danbam.data.repository.AccountRepositoryImpl
-import com.danbam.data.repository.AddressRepositoryImpl
-import com.danbam.data.repository.AuthRepositoryImpl
-import com.danbam.data.repository.BannerRepositoryImpl
-import com.danbam.data.repository.FileRepositoryImpl
-import com.danbam.data.repository.CrowdFundingRepositoryImpl
-import com.danbam.data.repository.MovieRepositoryImpl
-import com.danbam.data.repository.FundingRepositoryImpl
-import com.danbam.data.repository.QRCodeRepositoryImpl
-import com.danbam.data.repository.SearchRepositoryImpl
-import com.danbam.data.repository.SystemRepositoryImpl
-import com.danbam.domain.repository.AccountRepository
-import com.danbam.domain.repository.AddressRepository
-import com.danbam.domain.repository.AuthRepository
-import com.danbam.domain.repository.BannerRepository
-import com.danbam.domain.repository.FileRepository
-import com.danbam.domain.repository.CrowdFundingRepository
-import com.danbam.domain.repository.MovieRepository
-import com.danbam.domain.repository.FundingRepository
-import com.danbam.domain.repository.QRCodeRepository
-import com.danbam.domain.repository.SearchRepository
-import com.danbam.domain.repository.SystemRepository
+import com.danbam.indistraw.core.data.repository.AccountRepositoryImpl
+import com.danbam.indistraw.core.data.repository.AddressRepositoryImpl
+import com.danbam.indistraw.core.data.repository.AuthRepositoryImpl
+import com.danbam.indistraw.core.data.repository.BannerRepositoryImpl
+import com.danbam.indistraw.core.data.repository.CrowdFundingRepositoryImpl
+import com.danbam.indistraw.core.data.repository.FileRepositoryImpl
+import com.danbam.indistraw.core.data.repository.FundingRepositoryImpl
+import com.danbam.indistraw.core.data.repository.MovieRepositoryImpl
+import com.danbam.indistraw.core.data.repository.QRCodeRepositoryImpl
+import com.danbam.indistraw.core.data.repository.SearchRepositoryImpl
+import com.danbam.indistraw.core.data.repository.SystemRepositoryImpl
+import com.danbam.indistraw.core.domain.repository.AccountRepository
+import com.danbam.indistraw.core.domain.repository.AddressRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.BannerRepository
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.domain.repository.FileRepository
+import com.danbam.indistraw.core.domain.repository.FundingRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.QRCodeRepository
+import com.danbam.indistraw.core.domain.repository.SearchRepository
+import com.danbam.indistraw.core.domain.repository.SystemRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
diff --git a/di/src/main/java/com/danbam/di/RoomModule.kt b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/RoomModule.kt
similarity index 80%
rename from di/src/main/java/com/danbam/di/RoomModule.kt
rename to core/di/src/main/kotlin/com/danbam/indistraw/core/di/RoomModule.kt
index dc9d4b61..839cbaf5 100644
--- a/di/src/main/java/com/danbam/di/RoomModule.kt
+++ b/core/di/src/main/kotlin/com/danbam/indistraw/core/di/RoomModule.kt
@@ -1,9 +1,9 @@
-package com.danbam.di
+package com.danbam.indistraw.core.di
import android.content.Context
import androidx.room.Room
-import com.danbam.data.local.dao.RecentSearchDao
-import com.danbam.data.local.database.IndiStrawDataBase
+import com.danbam.indistraw.core.data.local.dao.RecentSearchDao
+import com.danbam.indistraw.core.data.local.database.IndiStrawDataBase
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
diff --git a/tv/.gitignore b/core/domain/.gitignore
similarity index 100%
rename from tv/.gitignore
rename to core/domain/.gitignore
diff --git a/core/domain/build.gradle.kts b/core/domain/build.gradle.kts
new file mode 100644
index 00000000..37372f67
--- /dev/null
+++ b/core/domain/build.gradle.kts
@@ -0,0 +1,16 @@
+plugins {
+ id("indistraw-core")
+}
+
+android {
+ namespace = "com.danbam.indistraw.core.domain"
+}
+
+dependencies {
+ implementation(libs.inject)
+ implementation(libs.coroutines.core)
+ implementation(libs.paging)
+ testImplementation(libs.test.junit)
+ testImplementation(libs.test.mockito.kotlin)
+ testImplementation(libs.test.mockito.inline)
+}
\ No newline at end of file
diff --git a/domain/src/main/AndroidManifest.xml b/core/domain/src/main/AndroidManifest.xml
similarity index 100%
rename from domain/src/main/AndroidManifest.xml
rename to core/domain/src/main/AndroidManifest.xml
diff --git a/domain/src/main/java/com/danbam/domain/entity/auth/AddressEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/AddressEntity.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/entity/auth/AddressEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/AddressEntity.kt
index 26e62fa7..bb3a3aee 100644
--- a/domain/src/main/java/com/danbam/domain/entity/auth/AddressEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/AddressEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.auth
+package com.danbam.indistraw.core.domain.entity.auth
data class AddressEntity(
val zipcode: String,
diff --git a/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/FindIdEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/FindIdEntity.kt
new file mode 100644
index 00000000..c7cbe3e6
--- /dev/null
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/FindIdEntity.kt
@@ -0,0 +1,5 @@
+package com.danbam.indistraw.core.domain.entity.auth
+
+data class FindIdEntity(
+ val id: String,
+)
\ No newline at end of file
diff --git a/domain/src/main/java/com/danbam/domain/entity/auth/LoginEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/LoginEntity.kt
similarity index 74%
rename from domain/src/main/java/com/danbam/domain/entity/auth/LoginEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/LoginEntity.kt
index 21064e6e..b76f4307 100644
--- a/domain/src/main/java/com/danbam/domain/entity/auth/LoginEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/LoginEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.auth
+package com.danbam.indistraw.core.domain.entity.auth
data class LoginEntity(
val accessToken: String,
diff --git a/domain/src/main/java/com/danbam/domain/entity/auth/ProfileEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/ProfileEntity.kt
similarity index 77%
rename from domain/src/main/java/com/danbam/domain/entity/auth/ProfileEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/ProfileEntity.kt
index ec9d1098..8ea41a93 100644
--- a/domain/src/main/java/com/danbam/domain/entity/auth/ProfileEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/auth/ProfileEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.auth
+package com.danbam.indistraw.core.domain.entity.auth
data class ProfileEntity(
val id: String,
diff --git a/domain/src/main/java/com/danbam/domain/entity/banner/BannerEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/banner/BannerEntity.kt
similarity index 54%
rename from domain/src/main/java/com/danbam/domain/entity/banner/BannerEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/banner/BannerEntity.kt
index 20abe25d..525101ee 100644
--- a/domain/src/main/java/com/danbam/domain/entity/banner/BannerEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/banner/BannerEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.banner
+package com.danbam.indistraw.core.entity.banner
data class BannerEntity(
val thumbnailUrl: String,
diff --git a/domain/src/main/java/com/danbam/domain/entity/file/FileEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/file/FileEntity.kt
similarity index 50%
rename from domain/src/main/java/com/danbam/domain/entity/file/FileEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/file/FileEntity.kt
index 134e09a8..0346c27b 100644
--- a/domain/src/main/java/com/danbam/domain/entity/file/FileEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/file/FileEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.file
+package com.danbam.indistraw.core.entity.file
data class FileEntity(
val file: String,
diff --git a/domain/src/main/java/com/danbam/domain/entity/funding/FundingDetailEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/FundingDetailEntity.kt
similarity index 94%
rename from domain/src/main/java/com/danbam/domain/entity/funding/FundingDetailEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/FundingDetailEntity.kt
index ba055b3a..937f4bb5 100644
--- a/domain/src/main/java/com/danbam/domain/entity/funding/FundingDetailEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/FundingDetailEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.funding
+package com.danbam.indistraw.core.entity.funding
import java.util.UUID
diff --git a/domain/src/main/java/com/danbam/domain/entity/funding/FundingEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/FundingEntity.kt
similarity index 78%
rename from domain/src/main/java/com/danbam/domain/entity/funding/FundingEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/FundingEntity.kt
index f058241c..44ce8faa 100644
--- a/domain/src/main/java/com/danbam/domain/entity/funding/FundingEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/FundingEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.funding
+package com.danbam.indistraw.core.entity.funding
data class FundingEntity(
val idx: Long,
diff --git a/domain/src/main/java/com/danbam/domain/entity/funding/MyFundingEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/MyFundingEntity.kt
similarity index 94%
rename from domain/src/main/java/com/danbam/domain/entity/funding/MyFundingEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/MyFundingEntity.kt
index 3a6bf655..36042ca6 100644
--- a/domain/src/main/java/com/danbam/domain/entity/funding/MyFundingEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/funding/MyFundingEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.funding
+package com.danbam.indistraw.core.entity.funding
import java.util.UUID
diff --git a/domain/src/main/java/com/danbam/domain/entity/movie/DetailMovieHistoryEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/DetailMovieHistoryEntity.kt
similarity index 58%
rename from domain/src/main/java/com/danbam/domain/entity/movie/DetailMovieHistoryEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/DetailMovieHistoryEntity.kt
index bb61d732..ad4faaa5 100644
--- a/domain/src/main/java/com/danbam/domain/entity/movie/DetailMovieHistoryEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/DetailMovieHistoryEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.movie
+package com.danbam.indistraw.core.entity.movie
data class DetailMovieHistoryEntity(
val historyTime: Float,
diff --git a/domain/src/main/java/com/danbam/domain/entity/movie/MovieDetailEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieDetailEntity.kt
similarity index 87%
rename from domain/src/main/java/com/danbam/domain/entity/movie/MovieDetailEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieDetailEntity.kt
index dac93ce0..86efd84f 100644
--- a/domain/src/main/java/com/danbam/domain/entity/movie/MovieDetailEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieDetailEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.movie
+package com.danbam.indistraw.core.entity.movie
data class MovieDetailEntity(
val title: String,
diff --git a/domain/src/main/java/com/danbam/domain/entity/movie/MovieEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieEntity.kt
similarity index 62%
rename from domain/src/main/java/com/danbam/domain/entity/movie/MovieEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieEntity.kt
index 42cc689f..d446dc41 100644
--- a/domain/src/main/java/com/danbam/domain/entity/movie/MovieEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.movie
+package com.danbam.indistraw.core.entity.movie
data class MovieEntity(
val movieIdx: Long,
diff --git a/domain/src/main/java/com/danbam/domain/entity/movie/MovieHistoryEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieHistoryEntity.kt
similarity index 74%
rename from domain/src/main/java/com/danbam/domain/entity/movie/MovieHistoryEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieHistoryEntity.kt
index 5a856c68..e707e513 100644
--- a/domain/src/main/java/com/danbam/domain/entity/movie/MovieHistoryEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MovieHistoryEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.movie
+package com.danbam.indistraw.core.entity.movie
data class MovieHistoryEntity(
val movieIdx: Long,
diff --git a/domain/src/main/java/com/danbam/domain/entity/movie/MoviePeopleDetailEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MoviePeopleDetailEntity.kt
similarity index 76%
rename from domain/src/main/java/com/danbam/domain/entity/movie/MoviePeopleDetailEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MoviePeopleDetailEntity.kt
index a362330a..cea169e6 100644
--- a/domain/src/main/java/com/danbam/domain/entity/movie/MoviePeopleDetailEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MoviePeopleDetailEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.movie
+package com.danbam.indistraw.core.entity.movie
data class MoviePeopleDetailEntity(
val actorIdx: Long,
diff --git a/domain/src/main/java/com/danbam/domain/entity/movie/MoviePeopleEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MoviePeopleEntity.kt
similarity index 69%
rename from domain/src/main/java/com/danbam/domain/entity/movie/MoviePeopleEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MoviePeopleEntity.kt
index b338a73d..a581737a 100644
--- a/domain/src/main/java/com/danbam/domain/entity/movie/MoviePeopleEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/movie/MoviePeopleEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.movie
+package com.danbam.indistraw.core.entity.movie
data class MoviePeopleEntity(
val actorIdx: Long,
diff --git a/domain/src/main/java/com/danbam/domain/entity/search/RecentSearchEntity.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/search/RecentSearchEntity.kt
similarity index 54%
rename from domain/src/main/java/com/danbam/domain/entity/search/RecentSearchEntity.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/search/RecentSearchEntity.kt
index 03fb2a57..7691473b 100644
--- a/domain/src/main/java/com/danbam/domain/entity/search/RecentSearchEntity.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/entity/search/RecentSearchEntity.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.entity.search
+package com.danbam.indistraw.core.entity.search
data class RecentSearchEntity(
val search: String,
diff --git a/domain/src/main/java/com/danbam/domain/exception/HttpException.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/exception/HttpException.kt
similarity index 92%
rename from domain/src/main/java/com/danbam/domain/exception/HttpException.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/exception/HttpException.kt
index 40707700..1272e5ad 100644
--- a/domain/src/main/java/com/danbam/domain/exception/HttpException.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/exception/HttpException.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.exception
+package com.danbam.indistraw.core.domain.exception
class WrongDataException(
override val message: String?,
diff --git a/domain/src/main/java/com/danbam/domain/exception/IOException.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/exception/IOException.kt
similarity index 59%
rename from domain/src/main/java/com/danbam/domain/exception/IOException.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/exception/IOException.kt
index ba27db9e..8cd37469 100644
--- a/domain/src/main/java/com/danbam/domain/exception/IOException.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/exception/IOException.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.exception
+package com.danbam.indistraw.core.domain.exception
import java.io.IOException
diff --git a/domain/src/main/java/com/danbam/domain/param/auth/ChangeAddressParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/ChangeAddressParam.kt
similarity index 72%
rename from domain/src/main/java/com/danbam/domain/param/auth/ChangeAddressParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/ChangeAddressParam.kt
index 85188909..073bfded 100644
--- a/domain/src/main/java/com/danbam/domain/param/auth/ChangeAddressParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/ChangeAddressParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.auth
+package com.danbam.indistraw.core.param.auth
data class ChangeAddressParam(
val zipCode: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/auth/ChangePasswordParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/ChangePasswordParam.kt
similarity index 66%
rename from domain/src/main/java/com/danbam/domain/param/auth/ChangePasswordParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/ChangePasswordParam.kt
index abdb553a..3b86f876 100644
--- a/domain/src/main/java/com/danbam/domain/param/auth/ChangePasswordParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/ChangePasswordParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.auth
+package com.danbam.indistraw.core.param.auth
data class ChangePasswordParam(
val phoneNumber: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/auth/EditProfileParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/EditProfileParam.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/param/auth/EditProfileParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/EditProfileParam.kt
index eab4f67d..fd78a1c2 100644
--- a/domain/src/main/java/com/danbam/domain/param/auth/EditProfileParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/EditProfileParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.auth
+package com.danbam.indistraw.core.param.auth
data class EditProfileParam(
val name: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/auth/LoginParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/LoginParam.kt
similarity index 61%
rename from domain/src/main/java/com/danbam/domain/param/auth/LoginParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/LoginParam.kt
index 2af67cc2..20222e8d 100644
--- a/domain/src/main/java/com/danbam/domain/param/auth/LoginParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/LoginParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.auth
+package com.danbam.indistraw.core.param.auth
data class LoginParam(
val id: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/auth/SignUpParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/SignUpParam.kt
similarity index 77%
rename from domain/src/main/java/com/danbam/domain/param/auth/SignUpParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/SignUpParam.kt
index 4c738409..3672f89c 100644
--- a/domain/src/main/java/com/danbam/domain/param/auth/SignUpParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/auth/SignUpParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.auth
+package com.danbam.indistraw.core.param.auth
data class SignUpParam(
val id: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/funding/FundingCreateParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/funding/FundingCreateParam.kt
similarity index 92%
rename from domain/src/main/java/com/danbam/domain/param/funding/FundingCreateParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/funding/FundingCreateParam.kt
index 42fbcb2d..0cb061a3 100644
--- a/domain/src/main/java/com/danbam/domain/param/funding/FundingCreateParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/funding/FundingCreateParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.funding
+package com.danbam.indistraw.core.param.funding
data class FundingCreateParam(
val title: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/funding/FundingParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/funding/FundingParam.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/param/funding/FundingParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/funding/FundingParam.kt
index 81f90015..9be72d3b 100644
--- a/domain/src/main/java/com/danbam/domain/param/funding/FundingParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/funding/FundingParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.funding
+package com.danbam.indistraw.core.param.funding
data class FundingParam(
val receiptId: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/movie/MovieCreateParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MovieCreateParam.kt
similarity index 85%
rename from domain/src/main/java/com/danbam/domain/param/movie/MovieCreateParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MovieCreateParam.kt
index deeaaf25..221d7cd6 100644
--- a/domain/src/main/java/com/danbam/domain/param/movie/MovieCreateParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MovieCreateParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.movie
+package com.danbam.indistraw.core.param.movie
data class MovieCreateParam(
val title: String,
diff --git a/domain/src/main/java/com/danbam/domain/param/movie/MovieHistoryParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MovieHistoryParam.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/param/movie/MovieHistoryParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MovieHistoryParam.kt
index 85ef304f..775777d6 100644
--- a/domain/src/main/java/com/danbam/domain/param/movie/MovieHistoryParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MovieHistoryParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.movie
+package com.danbam.indistraw.core.param.movie
data class MovieHistoryParam(
val movieIdx: Long,
diff --git a/domain/src/main/java/com/danbam/domain/param/movie/MoviePeopleParam.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MoviePeopleParam.kt
similarity index 63%
rename from domain/src/main/java/com/danbam/domain/param/movie/MoviePeopleParam.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MoviePeopleParam.kt
index 64c2b88b..e8d56610 100644
--- a/domain/src/main/java/com/danbam/domain/param/movie/MoviePeopleParam.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/param/movie/MoviePeopleParam.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.param.movie
+package com.danbam.indistraw.core.param.movie
data class MoviePeopleParam(
val name: String,
diff --git a/domain/src/main/java/com/danbam/domain/repository/AccountRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AccountRepository.kt
similarity index 53%
rename from domain/src/main/java/com/danbam/domain/repository/AccountRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AccountRepository.kt
index bd56816f..723848e5 100644
--- a/domain/src/main/java/com/danbam/domain/repository/AccountRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AccountRepository.kt
@@ -1,10 +1,10 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
-import com.danbam.domain.entity.auth.FindIdEntity
-import com.danbam.domain.entity.auth.ProfileEntity
-import com.danbam.domain.param.auth.ChangeAddressParam
-import com.danbam.domain.param.auth.ChangePasswordParam
-import com.danbam.domain.param.auth.EditProfileParam
+import com.danbam.indistraw.core.domain.entity.auth.FindIdEntity
+import com.danbam.indistraw.core.domain.entity.auth.ProfileEntity
+import com.danbam.indistraw.core.param.auth.ChangeAddressParam
+import com.danbam.indistraw.core.param.auth.ChangePasswordParam
+import com.danbam.indistraw.core.param.auth.EditProfileParam
interface AccountRepository {
suspend fun findId(phoneNumber: String): FindIdEntity
diff --git a/domain/src/main/java/com/danbam/domain/repository/AddressRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AddressRepository.kt
similarity index 60%
rename from domain/src/main/java/com/danbam/domain/repository/AddressRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AddressRepository.kt
index 2b64e3e1..d9c0b24b 100644
--- a/domain/src/main/java/com/danbam/domain/repository/AddressRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AddressRepository.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
import androidx.paging.PagingData
-import com.danbam.domain.entity.auth.AddressEntity
+import com.danbam.indistraw.core.domain.entity.auth.AddressEntity
import kotlinx.coroutines.flow.Flow
interface AddressRepository {
diff --git a/domain/src/main/java/com/danbam/domain/repository/AuthRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AuthRepository.kt
similarity index 73%
rename from domain/src/main/java/com/danbam/domain/repository/AuthRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AuthRepository.kt
index b92f0f49..21a128c5 100644
--- a/domain/src/main/java/com/danbam/domain/repository/AuthRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/AuthRepository.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
-import com.danbam.domain.param.auth.LoginParam
-import com.danbam.domain.param.auth.SignUpParam
+import com.danbam.indistraw.core.param.auth.LoginParam
+import com.danbam.indistraw.core.param.auth.SignUpParam
interface AuthRepository {
suspend fun signup(signUpParam: SignUpParam)
diff --git a/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/BannerRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/BannerRepository.kt
new file mode 100644
index 00000000..3a9b7275
--- /dev/null
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/BannerRepository.kt
@@ -0,0 +1,7 @@
+package com.danbam.indistraw.core.domain.repository
+
+import com.danbam.indistraw.core.entity.banner.BannerEntity
+
+interface BannerRepository {
+ suspend fun getBanner(): List
+}
\ No newline at end of file
diff --git a/domain/src/main/java/com/danbam/domain/repository/CrowdFundingRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/CrowdFundingRepository.kt
similarity index 60%
rename from domain/src/main/java/com/danbam/domain/repository/CrowdFundingRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/CrowdFundingRepository.kt
index 6ec940b0..562213b2 100644
--- a/domain/src/main/java/com/danbam/domain/repository/CrowdFundingRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/CrowdFundingRepository.kt
@@ -1,10 +1,10 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
import androidx.paging.PagingData
-import com.danbam.domain.entity.funding.FundingDetailEntity
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.funding.MyFundingEntity
-import com.danbam.domain.param.funding.FundingCreateParam
+import com.danbam.indistraw.core.entity.funding.FundingDetailEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.funding.MyFundingEntity
+import com.danbam.indistraw.core.param.funding.FundingCreateParam
import kotlinx.coroutines.flow.Flow
interface CrowdFundingRepository {
diff --git a/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/FileRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/FileRepository.kt
new file mode 100644
index 00000000..9cdfa455
--- /dev/null
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/FileRepository.kt
@@ -0,0 +1,8 @@
+package com.danbam.indistraw.core.domain.repository
+
+import com.danbam.indistraw.core.entity.file.FileEntity
+import java.io.File
+
+interface FileRepository {
+ suspend fun sendFile(file: File): FileEntity
+}
\ No newline at end of file
diff --git a/domain/src/main/java/com/danbam/domain/repository/FundingRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/FundingRepository.kt
similarity index 54%
rename from domain/src/main/java/com/danbam/domain/repository/FundingRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/FundingRepository.kt
index 0d33a5c9..44f7e5a1 100644
--- a/domain/src/main/java/com/danbam/domain/repository/FundingRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/FundingRepository.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.param.funding.FundingParam
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.param.funding.FundingParam
interface FundingRepository {
suspend fun getReceipt(): String
diff --git a/domain/src/main/java/com/danbam/domain/repository/MovieRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/MovieRepository.kt
similarity index 60%
rename from domain/src/main/java/com/danbam/domain/repository/MovieRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/MovieRepository.kt
index 34d6ccda..73a5c058 100644
--- a/domain/src/main/java/com/danbam/domain/repository/MovieRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/MovieRepository.kt
@@ -1,15 +1,15 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
import androidx.paging.PagingData
-import com.danbam.domain.entity.movie.DetailMovieHistoryEntity
-import com.danbam.domain.entity.movie.MovieDetailEntity
-import com.danbam.domain.entity.movie.MovieEntity
-import com.danbam.domain.entity.movie.MovieHistoryEntity
-import com.danbam.domain.entity.movie.MoviePeopleDetailEntity
-import com.danbam.domain.entity.movie.MoviePeopleEntity
-import com.danbam.domain.param.movie.MovieCreateParam
-import com.danbam.domain.param.movie.MovieHistoryParam
-import com.danbam.domain.param.movie.MoviePeopleParam
+import com.danbam.indistraw.core.entity.movie.DetailMovieHistoryEntity
+import com.danbam.indistraw.core.entity.movie.MovieDetailEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.movie.MovieHistoryEntity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleDetailEntity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleEntity
+import com.danbam.indistraw.core.param.movie.MovieCreateParam
+import com.danbam.indistraw.core.param.movie.MovieHistoryParam
+import com.danbam.indistraw.core.param.movie.MoviePeopleParam
import kotlinx.coroutines.flow.Flow
interface MovieRepository {
diff --git a/domain/src/main/java/com/danbam/domain/repository/QRCodeRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/QRCodeRepository.kt
similarity index 78%
rename from domain/src/main/java/com/danbam/domain/repository/QRCodeRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/QRCodeRepository.kt
index 217be83b..edc8f24a 100644
--- a/domain/src/main/java/com/danbam/domain/repository/QRCodeRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/QRCodeRepository.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
import java.util.UUID
diff --git a/domain/src/main/java/com/danbam/domain/repository/SearchRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/SearchRepository.kt
similarity index 54%
rename from domain/src/main/java/com/danbam/domain/repository/SearchRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/SearchRepository.kt
index 0f37c676..70ccaa56 100644
--- a/domain/src/main/java/com/danbam/domain/repository/SearchRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/SearchRepository.kt
@@ -1,14 +1,13 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
import androidx.paging.PagingData
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.movie.MovieEntity
-import com.danbam.domain.entity.search.RecentSearchEntity
-import com.danbam.domain.entity.search.RelatedSearchEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity
import kotlinx.coroutines.flow.Flow
interface SearchRepository {
- suspend fun getRelatedSearch(keyword: String): List
+ suspend fun getRelatedSearch(keyword: String): List
suspend fun searchMovie(recentSearchEntity: RecentSearchEntity): Flow>
suspend fun searchFunding(recentSearchEntity: RecentSearchEntity): Flow>
suspend fun getRecentSearch(): List
diff --git a/domain/src/main/java/com/danbam/domain/repository/SystemRepository.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/SystemRepository.kt
similarity index 69%
rename from domain/src/main/java/com/danbam/domain/repository/SystemRepository.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/SystemRepository.kt
index 9d7fb151..7f3b8330 100644
--- a/domain/src/main/java/com/danbam/domain/repository/SystemRepository.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/repository/SystemRepository.kt
@@ -1,4 +1,4 @@
-package com.danbam.domain.repository
+package com.danbam.indistraw.core.domain.repository
interface SystemRepository {
suspend fun saveLanguage(language: String)
diff --git a/domain/src/main/java/com/danbam/domain/usecase/account/ChangeAddressUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangeAddressUseCase.kt
similarity index 62%
rename from domain/src/main/java/com/danbam/domain/usecase/account/ChangeAddressUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangeAddressUseCase.kt
index 0d909bbf..f421f3e6 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/account/ChangeAddressUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangeAddressUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.account
+package com.danbam.indistraw.core.domain.usecase.account
-import com.danbam.domain.param.auth.ChangeAddressParam
-import com.danbam.domain.repository.AccountRepository
+import com.danbam.indistraw.core.param.auth.ChangeAddressParam
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class ChangeAddressUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/account/ChangePasswordUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangePasswordUseCase.kt
similarity index 62%
rename from domain/src/main/java/com/danbam/domain/usecase/account/ChangePasswordUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangePasswordUseCase.kt
index 6907a1fb..1418cf8c 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/account/ChangePasswordUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangePasswordUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.account
+package com.danbam.indistraw.core.domain.usecase.account
-import com.danbam.domain.param.auth.ChangePasswordParam
-import com.danbam.domain.repository.AccountRepository
+import com.danbam.indistraw.core.param.auth.ChangePasswordParam
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class ChangePasswordUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/account/ChangePhoneNumberUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangePhoneNumberUseCase.kt
similarity index 69%
rename from domain/src/main/java/com/danbam/domain/usecase/account/ChangePhoneNumberUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangePhoneNumberUseCase.kt
index 75eadde9..259e6300 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/account/ChangePhoneNumberUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/ChangePhoneNumberUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.account
+package com.danbam.indistraw.core.domain.usecase.account
-import com.danbam.domain.repository.AccountRepository
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class ChangePhoneNumberUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/account/EditProfileUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/EditProfileUseCase.kt
similarity index 61%
rename from domain/src/main/java/com/danbam/domain/usecase/account/EditProfileUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/EditProfileUseCase.kt
index e167a97b..714ae870 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/account/EditProfileUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/EditProfileUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.account
+package com.danbam.indistraw.core.domain.usecase.account
-import com.danbam.domain.param.auth.EditProfileParam
-import com.danbam.domain.repository.AccountRepository
+import com.danbam.indistraw.core.param.auth.EditProfileParam
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class EditProfileUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/account/FindIdUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/FindIdUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/account/FindIdUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/FindIdUseCase.kt
index f18e4270..c9ffb470 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/account/FindIdUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/FindIdUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.account
+package com.danbam.indistraw.core.domain.usecase.account
-import com.danbam.domain.repository.AccountRepository
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class FindIdUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/account/GetProfileUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/GetProfileUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/account/GetProfileUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/GetProfileUseCase.kt
index fa460854..b051bc12 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/account/GetProfileUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/GetProfileUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.account
+package com.danbam.indistraw.core.domain.usecase.account
-import com.danbam.domain.repository.AccountRepository
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class GetProfileUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/account/WithdrawUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/WithdrawUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/account/WithdrawUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/WithdrawUseCase.kt
index f41d10f3..88efbb74 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/account/WithdrawUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/account/WithdrawUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.account
+package com.danbam.indistraw.core.domain.usecase.account
-import com.danbam.domain.repository.AccountRepository
+import com.danbam.indistraw.core.domain.repository.AccountRepository
import javax.inject.Inject
class WithdrawUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/address/GetAddressUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/address/GetAddressUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/address/GetAddressUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/address/GetAddressUseCase.kt
index 209bf17b..aca0a9db 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/address/GetAddressUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/address/GetAddressUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.address
+package com.danbam.indistraw.core.domain.usecase.address
-import com.danbam.domain.repository.AddressRepository
+import com.danbam.indistraw.core.domain.repository.AddressRepository
import javax.inject.Inject
class GetAddressUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/CheckCertificateNumberUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckCertificateNumberUseCase.kt
similarity index 72%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/CheckCertificateNumberUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckCertificateNumberUseCase.kt
index 14c14a52..940dbb46 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/CheckCertificateNumberUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckCertificateNumberUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class CheckCertificateNumberUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/CheckIdUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckIdUseCase.kt
similarity index 65%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/CheckIdUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckIdUseCase.kt
index 2404db46..6941a5b4 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/CheckIdUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckIdUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class CheckIdUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/CheckPhoneNumberUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckPhoneNumberUseCase.kt
similarity index 71%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/CheckPhoneNumberUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckPhoneNumberUseCase.kt
index 46c78128..5a4932a2 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/CheckPhoneNumberUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/CheckPhoneNumberUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class CheckPhoneNumberUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/ClearTokenUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/ClearTokenUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/ClearTokenUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/ClearTokenUseCase.kt
index 7adcf71c..bbc9f12b 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/ClearTokenUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/ClearTokenUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class ClearTokenUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/IsLoginUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/IsLoginUseCase.kt
similarity index 63%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/IsLoginUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/IsLoginUseCase.kt
index 055133e5..3ca54607 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/IsLoginUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/IsLoginUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class IsLoginUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/LoginUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/LoginUseCase.kt
similarity index 59%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/LoginUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/LoginUseCase.kt
index 05d2badc..18ca5a90 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/LoginUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/LoginUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.param.auth.LoginParam
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.param.auth.LoginParam
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class LoginUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/LogoutUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/LogoutUseCase.kt
similarity index 63%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/LogoutUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/LogoutUseCase.kt
index 78323a88..eb4ee4ef 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/LogoutUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/LogoutUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class LogoutUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/SendCertificateNumberUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/SendCertificateNumberUseCase.kt
similarity index 70%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/SendCertificateNumberUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/SendCertificateNumberUseCase.kt
index 6117a6ad..4de2e07f 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/SendCertificateNumberUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/SendCertificateNumberUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class SendCertificateNumberUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/auth/SignUpUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/SignUpUseCase.kt
similarity index 59%
rename from domain/src/main/java/com/danbam/domain/usecase/auth/SignUpUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/SignUpUseCase.kt
index 3f2587b4..7e40741c 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/auth/SignUpUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/auth/SignUpUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.auth
+package com.danbam.indistraw.core.domain.usecase.auth
-import com.danbam.domain.param.auth.SignUpParam
-import com.danbam.domain.repository.AuthRepository
+import com.danbam.indistraw.core.param.auth.SignUpParam
+import com.danbam.indistraw.core.domain.repository.AuthRepository
import javax.inject.Inject
class SignUpUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/banner/GetBannerUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/banner/GetBannerUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/banner/GetBannerUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/banner/GetBannerUseCase.kt
index 7bcc85aa..32566161 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/banner/GetBannerUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/banner/GetBannerUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.banner
+package com.danbam.indistraw.core.domain.usecase.banner
-import com.danbam.domain.repository.BannerRepository
+import com.danbam.indistraw.core.domain.repository.BannerRepository
import javax.inject.Inject
class GetBannerUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingAllUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingAllUseCase.kt
similarity index 63%
rename from domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingAllUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingAllUseCase.kt
index e7d638e2..3464f768 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingAllUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingAllUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.crowd_funding
+package com.danbam.indistraw.core.domain.usecase.crowd_funding
-import com.danbam.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
import javax.inject.Inject
class FundingAllUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingCreateUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingCreateUseCase.kt
similarity index 61%
rename from domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingCreateUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingCreateUseCase.kt
index 2833b9c6..ddfc03d8 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingCreateUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingCreateUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.crowd_funding
+package com.danbam.indistraw.core.domain.usecase.crowd_funding
-import com.danbam.domain.param.funding.FundingCreateParam
-import com.danbam.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.param.funding.FundingCreateParam
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
import javax.inject.Inject
class FundingCreateUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingDetailUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingDetailUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingDetailUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingDetailUseCase.kt
index b446023f..897b67b6 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingDetailUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingDetailUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.crowd_funding
+package com.danbam.indistraw.core.domain.usecase.crowd_funding
-import com.danbam.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
import javax.inject.Inject
class FundingDetailUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingMyDetailUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingMyDetailUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingMyDetailUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingMyDetailUseCase.kt
index d52963ff..44f1003a 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingMyDetailUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingMyDetailUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.crowd_funding
+package com.danbam.indistraw.core.domain.usecase.crowd_funding
-import com.danbam.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
import javax.inject.Inject
class FundingMyDetailUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingMyUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingMyUseCase.kt
similarity index 63%
rename from domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingMyUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingMyUseCase.kt
index 431a9639..059d3fb9 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingMyUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingMyUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.crowd_funding
+package com.danbam.indistraw.core.domain.usecase.crowd_funding
-import com.danbam.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
import javax.inject.Inject
class FundingMyUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingPopularListUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingPopularListUseCase.kt
similarity index 65%
rename from domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingPopularListUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingPopularListUseCase.kt
index b970f9f1..5b07e5fc 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/crowd_funding/FundingPopularListUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/crowd_funding/FundingPopularListUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.crowd_funding
+package com.danbam.indistraw.core.domain.usecase.crowd_funding
-import com.danbam.domain.repository.CrowdFundingRepository
+import com.danbam.indistraw.core.domain.repository.CrowdFundingRepository
import javax.inject.Inject
class FundingPopularListUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/file/SendFileUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/file/SendFileUseCase.kt
similarity index 68%
rename from domain/src/main/java/com/danbam/domain/usecase/file/SendFileUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/file/SendFileUseCase.kt
index 552c8ff3..9412dda0 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/file/SendFileUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/file/SendFileUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.file
+package com.danbam.indistraw.core.domain.usecase.file
-import com.danbam.domain.repository.FileRepository
+import com.danbam.indistraw.core.domain.repository.FileRepository
import java.io.File
import javax.inject.Inject
diff --git a/domain/src/main/java/com/danbam/domain/usecase/funding/FundingListUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/FundingListUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/funding/FundingListUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/FundingListUseCase.kt
index eafcda6a..09746a73 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/funding/FundingListUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/FundingListUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.funding
+package com.danbam.indistraw.core.domain.usecase.funding
-import com.danbam.domain.repository.FundingRepository
+import com.danbam.indistraw.core.domain.repository.FundingRepository
import javax.inject.Inject
class FundingListUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/funding/FundingUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/FundingUseCase.kt
similarity index 65%
rename from domain/src/main/java/com/danbam/domain/usecase/funding/FundingUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/FundingUseCase.kt
index d786cb08..529a5eba 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/funding/FundingUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/FundingUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.funding
+package com.danbam.indistraw.core.domain.usecase.funding
-import com.danbam.domain.param.funding.FundingParam
-import com.danbam.domain.repository.FundingRepository
+import com.danbam.indistraw.core.param.funding.FundingParam
+import com.danbam.indistraw.core.domain.repository.FundingRepository
import javax.inject.Inject
class FundingUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/funding/GetReceiptUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/GetReceiptUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/funding/GetReceiptUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/GetReceiptUseCase.kt
index c6496932..3bfc20a4 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/funding/GetReceiptUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/funding/GetReceiptUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.funding
+package com.danbam.indistraw.core.domain.usecase.funding
-import com.danbam.domain.repository.FundingRepository
+import com.danbam.indistraw.core.domain.repository.FundingRepository
import javax.inject.Inject
class GetReceiptUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/AddMovieHistoryUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/AddMovieHistoryUseCase.kt
similarity index 62%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/AddMovieHistoryUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/AddMovieHistoryUseCase.kt
index 6534548b..18755fd9 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/AddMovieHistoryUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/AddMovieHistoryUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.param.movie.MovieHistoryParam
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.param.movie.MovieHistoryParam
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class AddMovieHistoryUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/AddMoviePeopleUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/AddMoviePeopleUseCase.kt
similarity index 68%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/AddMoviePeopleUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/AddMoviePeopleUseCase.kt
index 3f2940d9..de0c7ea7 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/AddMoviePeopleUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/AddMoviePeopleUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.param.movie.MoviePeopleParam
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.param.movie.MoviePeopleParam
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class AddMoviePeopleUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieCreateUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieCreateUseCase.kt
similarity index 61%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MovieCreateUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieCreateUseCase.kt
index 1db8a5c1..16275d5b 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieCreateUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieCreateUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.param.movie.MovieCreateParam
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.param.movie.MovieCreateParam
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MovieCreateUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieDetailUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieDetailUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MovieDetailUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieDetailUseCase.kt
index c2496833..bfcb3e44 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieDetailUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieDetailUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MovieDetailUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieHistoryListUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieHistoryListUseCase.kt
similarity index 65%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MovieHistoryListUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieHistoryListUseCase.kt
index a2df389a..3f187c86 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieHistoryListUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieHistoryListUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MovieHistoryListUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieHistoryUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieHistoryUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MovieHistoryUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieHistoryUseCase.kt
index 562c7c8b..d034a58f 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieHistoryUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieHistoryUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MovieHistoryUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieListUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieListUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MovieListUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieListUseCase.kt
index 36c858a1..57c70bee 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieListUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieListUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MovieListUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MoviePeopleDetailUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MoviePeopleDetailUseCase.kt
similarity index 71%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MoviePeopleDetailUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MoviePeopleDetailUseCase.kt
index 94b9a2ed..747f6f5d 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MoviePeopleDetailUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MoviePeopleDetailUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MoviePeopleDetailUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MoviePopularListUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MoviePopularListUseCase.kt
similarity index 65%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MoviePopularListUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MoviePopularListUseCase.kt
index 6bc4d34f..67632c1c 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MoviePopularListUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MoviePopularListUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MoviePopularListUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieRecentListUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieRecentListUseCase.kt
similarity index 65%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MovieRecentListUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieRecentListUseCase.kt
index 48fe7c16..adb49ee9 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieRecentListUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieRecentListUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MovieRecentListUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieRecommendListUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieRecommendListUseCase.kt
similarity index 66%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/MovieRecommendListUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieRecommendListUseCase.kt
index e0a2267c..2bf56918 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/MovieRecommendListUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/MovieRecommendListUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class MovieRecommendListUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/movie/SearchMoviePeopleUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/SearchMoviePeopleUseCase.kt
similarity index 71%
rename from domain/src/main/java/com/danbam/domain/usecase/movie/SearchMoviePeopleUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/SearchMoviePeopleUseCase.kt
index f81343b4..b8bfa346 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/movie/SearchMoviePeopleUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/movie/SearchMoviePeopleUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.movie
+package com.danbam.indistraw.core.domain.usecase.movie
-import com.danbam.domain.repository.MovieRepository
+import com.danbam.indistraw.core.domain.repository.MovieRepository
import javax.inject.Inject
class SearchMoviePeopleUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/qr_code/CheckQRCodeUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/CheckQRCodeUseCase.kt
similarity index 68%
rename from domain/src/main/java/com/danbam/domain/usecase/qr_code/CheckQRCodeUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/CheckQRCodeUseCase.kt
index 246166da..e988c86b 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/qr_code/CheckQRCodeUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/CheckQRCodeUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.qr_code
+package com.danbam.indistraw.core.domain.usecase.qr_code
-import com.danbam.domain.repository.QRCodeRepository
+import com.danbam.indistraw.core.domain.repository.QRCodeRepository
import java.util.UUID
import javax.inject.Inject
diff --git a/domain/src/main/java/com/danbam/domain/usecase/qr_code/ConnectQRCodeUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/ConnectQRCodeUseCase.kt
similarity index 71%
rename from domain/src/main/java/com/danbam/domain/usecase/qr_code/ConnectQRCodeUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/ConnectQRCodeUseCase.kt
index a64707d4..db352adf 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/qr_code/ConnectQRCodeUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/ConnectQRCodeUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.qr_code
+package com.danbam.indistraw.core.domain.usecase.qr_code
-import com.danbam.domain.repository.QRCodeRepository
+import com.danbam.indistraw.core.domain.repository.QRCodeRepository
import java.util.UUID
import javax.inject.Inject
diff --git a/domain/src/main/java/com/danbam/domain/usecase/qr_code/GetQRCodeUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/GetQRCodeUseCase.kt
similarity index 63%
rename from domain/src/main/java/com/danbam/domain/usecase/qr_code/GetQRCodeUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/GetQRCodeUseCase.kt
index a3937554..2610fc32 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/qr_code/GetQRCodeUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/qr_code/GetQRCodeUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.qr_code
+package com.danbam.indistraw.core.domain.usecase.qr_code
-import com.danbam.domain.repository.QRCodeRepository
+import com.danbam.indistraw.core.domain.repository.QRCodeRepository
import javax.inject.Inject
class GetQRCodeUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/search/GetRecentSearchUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/GetRecentSearchUseCase.kt
similarity index 65%
rename from domain/src/main/java/com/danbam/domain/usecase/search/GetRecentSearchUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/GetRecentSearchUseCase.kt
index d4d0b8aa..dab462f8 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/search/GetRecentSearchUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/GetRecentSearchUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.search
+package com.danbam.indistraw.core.domain.usecase.search
-import com.danbam.domain.repository.SearchRepository
+import com.danbam.indistraw.core.domain.repository.SearchRepository
import javax.inject.Inject
class GetRecentSearchUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/search/GetRelatedSearchUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/GetRelatedSearchUseCase.kt
similarity index 68%
rename from domain/src/main/java/com/danbam/domain/usecase/search/GetRelatedSearchUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/GetRelatedSearchUseCase.kt
index d9935225..aaa97c71 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/search/GetRelatedSearchUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/GetRelatedSearchUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.search
+package com.danbam.indistraw.core.domain.usecase.search
-import com.danbam.domain.repository.SearchRepository
+import com.danbam.indistraw.core.domain.repository.SearchRepository
import javax.inject.Inject
class GetRelatedSearchUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/search/PopularTagUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/PopularTagUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/search/PopularTagUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/PopularTagUseCase.kt
index 1de3825d..f1f02da7 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/search/PopularTagUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/PopularTagUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.search
+package com.danbam.indistraw.core.domain.usecase.search
-import com.danbam.domain.repository.SearchRepository
+import com.danbam.indistraw.core.domain.repository.SearchRepository
import javax.inject.Inject
class PopularTagUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/search/SearchFundingUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/SearchFundingUseCase.kt
similarity index 61%
rename from domain/src/main/java/com/danbam/domain/usecase/search/SearchFundingUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/SearchFundingUseCase.kt
index 10fa5d36..a9639286 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/search/SearchFundingUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/SearchFundingUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.search
+package com.danbam.indistraw.core.domain.usecase.search
-import com.danbam.domain.entity.search.RecentSearchEntity
-import com.danbam.domain.repository.SearchRepository
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.domain.repository.SearchRepository
import javax.inject.Inject
class SearchFundingUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/search/SearchMovieUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/SearchMovieUseCase.kt
similarity index 61%
rename from domain/src/main/java/com/danbam/domain/usecase/search/SearchMovieUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/SearchMovieUseCase.kt
index 3fe4c298..a89003e4 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/search/SearchMovieUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/search/SearchMovieUseCase.kt
@@ -1,7 +1,7 @@
-package com.danbam.domain.usecase.search
+package com.danbam.indistraw.core.domain.usecase.search
-import com.danbam.domain.entity.search.RecentSearchEntity
-import com.danbam.domain.repository.SearchRepository
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.domain.repository.SearchRepository
import javax.inject.Inject
class SearchMovieUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/system/FetchLanguageUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/system/FetchLanguageUseCase.kt
similarity index 64%
rename from domain/src/main/java/com/danbam/domain/usecase/system/FetchLanguageUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/system/FetchLanguageUseCase.kt
index 0c34fd10..327fede9 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/system/FetchLanguageUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/system/FetchLanguageUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.system
+package com.danbam.indistraw.core.domain.usecase.system
-import com.danbam.domain.repository.SystemRepository
+import com.danbam.indistraw.core.domain.repository.SystemRepository
import javax.inject.Inject
class FetchLanguageUseCase @Inject constructor(
diff --git a/domain/src/main/java/com/danbam/domain/usecase/system/SaveLanguageUseCase.kt b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/system/SaveLanguageUseCase.kt
similarity index 67%
rename from domain/src/main/java/com/danbam/domain/usecase/system/SaveLanguageUseCase.kt
rename to core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/system/SaveLanguageUseCase.kt
index c92864f4..e19da67f 100644
--- a/domain/src/main/java/com/danbam/domain/usecase/system/SaveLanguageUseCase.kt
+++ b/core/domain/src/main/kotlin/com/danbam/indistraw/core/domain/usecase/system/SaveLanguageUseCase.kt
@@ -1,6 +1,6 @@
-package com.danbam.domain.usecase.system
+package com.danbam.indistraw.core.domain.usecase.system
-import com.danbam.domain.repository.SystemRepository
+import com.danbam.indistraw.core.domain.repository.SystemRepository
import javax.inject.Inject
class SaveLanguageUseCase @Inject constructor(
diff --git a/data/build.gradle.kts b/data/build.gradle.kts
deleted file mode 100644
index f8706468..00000000
--- a/data/build.gradle.kts
+++ /dev/null
@@ -1,88 +0,0 @@
-import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
-
-plugins {
- id("com.android.library")
- id("org.jetbrains.kotlin.android")
- id("kotlin-kapt")
-}
-
-android {
- namespace = "com.danbam.data"
- compileSdk = Version.COMPILE_SDK_VERSION
-
- defaultConfig {
- minSdk = Version.MIN_SDK_VERSION
- targetSdk = Version.TARGET_SDK_VERSION
-
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- buildConfigField(
- "String",
- "BASE_URL",
- gradleLocalProperties(rootDir).getProperty("BASE_URL")
- )
- buildConfigField(
- "String",
- "ALL_IGNORE_PATH",
- gradleLocalProperties(rootDir).getProperty("ALL_IGNORE_PATH")
- )
- buildConfigField(
- "String",
- "POST_IGNORE_PATH",
- gradleLocalProperties(rootDir).getProperty("POST_IGNORE_PATH")
- )
- buildConfigField(
- "String",
- "GET_IGNORE_PATH",
- gradleLocalProperties(rootDir).getProperty("GET_IGNORE_PATH")
- )
- buildConfigField(
- "String",
- "PATCH_IGNORE_PATH",
- gradleLocalProperties(rootDir).getProperty("PATCH_IGNORE_PATH")
- )
- buildConfigField(
- "String",
- "JUSO_KEY",
- gradleLocalProperties(rootDir).getProperty("JUSO_KEY")
- )
- }
-
- buildTypes {
- getByName("release") {
- isMinifyEnabled = false
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = Version.JAVA_VERSION
- targetCompatibility = Version.JAVA_VERSION
- }
- kotlinOptions {
- jvmTarget = Version.JAVA_VERSION.toString()
- }
-}
-
-dependencies {
- implementation(project(":domain"))
-
- implementation(Dependency.JavaX.INJECT)
-
- implementation(Dependency.Room.ROOM)
- kapt(Dependency.Room.ROOM_COMPILER)
-
- implementation(Dependency.Retrofit.RETROFIT)
- implementation(Dependency.Retrofit.RETROFIT_CONVERTER_GSON)
- implementation(Dependency.Retrofit.OKHTTP)
- implementation(Dependency.Retrofit.OKHTTP_LOGGING_INTERCEPTOR)
- implementation(Dependency.Retrofit.SSE)
- testImplementation(Dependency.Retrofit.SSE)
-
- implementation(Dependency.AndroidX.PAGING)
-
- testImplementation(Dependency.UnitTest.JUNIT)
- testImplementation(Dependency.UnitTest.MOCKITO_KOTLIN)
- testImplementation(Dependency.UnitTest.MOCKITO_INLINE)
-}
\ No newline at end of file
diff --git a/data/consumer-rules.pro b/data/consumer-rules.pro
deleted file mode 100644
index e69de29b..00000000
diff --git a/data/src/main/java/com/danbam/data/remote/api/BannerAPI.kt b/data/src/main/java/com/danbam/data/remote/api/BannerAPI.kt
deleted file mode 100644
index b14ec7cd..00000000
--- a/data/src/main/java/com/danbam/data/remote/api/BannerAPI.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.danbam.data.remote.api
-
-import com.danbam.data.remote.response.banner.BannerResponse
-import com.danbam.data.remote.util.EndPoint
-import retrofit2.http.GET
-
-interface BannerAPI {
- @GET("${EndPoint.BANNER}/")
- suspend fun getBanner(): List
-}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/BannerRemoteDataSource.kt b/data/src/main/java/com/danbam/data/remote/datasource/BannerRemoteDataSource.kt
deleted file mode 100644
index cfbaa595..00000000
--- a/data/src/main/java/com/danbam/data/remote/datasource/BannerRemoteDataSource.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.danbam.data.remote.datasource
-
-import com.danbam.data.remote.response.banner.BannerResponse
-
-interface BannerRemoteDataSource {
- suspend fun getBanner(): List
-}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/FundingRemoteDataSource.kt b/data/src/main/java/com/danbam/data/remote/datasource/FundingRemoteDataSource.kt
deleted file mode 100644
index 17d95216..00000000
--- a/data/src/main/java/com/danbam/data/remote/datasource/FundingRemoteDataSource.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.danbam.data.remote.datasource
-
-import com.danbam.data.remote.request.funding.FundingRequest
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.funding.ReceiptResponse
-
-interface FundingRemoteDataSource {
- suspend fun getReceipt(): ReceiptResponse
- suspend fun funding(fundingIdx: Long, rewardIdx: Long, fundingRequest: FundingRequest)
- suspend fun fundingList(): List
-}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/datasource/SearchRemoteDataSource.kt b/data/src/main/java/com/danbam/data/remote/datasource/SearchRemoteDataSource.kt
deleted file mode 100644
index b0441b7d..00000000
--- a/data/src/main/java/com/danbam/data/remote/datasource/SearchRemoteDataSource.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.danbam.data.remote.datasource
-
-import androidx.paging.PagingData
-import com.danbam.data.remote.response.funding.FundingResponse
-import com.danbam.data.remote.response.movie.MovieResponse
-import com.danbam.data.remote.response.search.PopularTagResponse
-import com.danbam.data.remote.response.search.RelatedSearchResponse
-import kotlinx.coroutines.flow.Flow
-
-interface SearchRemoteDataSource {
- suspend fun getRelatedSearch(keyword: String): List
- suspend fun searchMovie(keyword: String): Flow>
- suspend fun searchFunding(keyword: String): Flow>
- suspend fun popularTag(): PopularTagResponse
-}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/remote/response/search/RelatedSearchResponse.kt b/data/src/main/java/com/danbam/data/remote/response/search/RelatedSearchResponse.kt
deleted file mode 100644
index 2170bc32..00000000
--- a/data/src/main/java/com/danbam/data/remote/response/search/RelatedSearchResponse.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.danbam.data.remote.response.search
-
-import com.danbam.domain.entity.search.RelatedSearchEntity
-import com.google.gson.annotations.SerializedName
-
-data class RelatedSearchResponse(
- @SerializedName("id")
- val id: Int,
- @SerializedName("title")
- val title: String,
-)
-
-fun RelatedSearchResponse.toEntity() = RelatedSearchEntity(
- id = id,
- title = title
-)
diff --git a/data/src/main/java/com/danbam/data/repository/BannerRepositoryImpl.kt b/data/src/main/java/com/danbam/data/repository/BannerRepositoryImpl.kt
deleted file mode 100644
index 9d3725cc..00000000
--- a/data/src/main/java/com/danbam/data/repository/BannerRepositoryImpl.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.danbam.data.repository
-
-import com.danbam.data.remote.datasource.BannerRemoteDataSource
-import com.danbam.data.remote.response.banner.toEntity
-import com.danbam.domain.entity.banner.BannerEntity
-import com.danbam.domain.repository.BannerRepository
-import javax.inject.Inject
-
-class BannerRepositoryImpl @Inject constructor(
- private val bannerRemoteDataSource: BannerRemoteDataSource
-) : BannerRepository {
- override suspend fun getBanner(): List =
- bannerRemoteDataSource.getBanner().map { it.toEntity() }
-}
\ No newline at end of file
diff --git a/data/src/main/java/com/danbam/data/repository/FileRepositoryImpl.kt b/data/src/main/java/com/danbam/data/repository/FileRepositoryImpl.kt
deleted file mode 100644
index 803505e7..00000000
--- a/data/src/main/java/com/danbam/data/repository/FileRepositoryImpl.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.danbam.data.repository
-
-import com.danbam.data.remote.datasource.FileRemoteDataSource
-import com.danbam.data.remote.response.file.toEntity
-import com.danbam.data.util.toMultipartBody
-import com.danbam.domain.entity.file.FileEntity
-import com.danbam.domain.repository.FileRepository
-import java.io.File
-import javax.inject.Inject
-
-class FileRepositoryImpl @Inject constructor(
- private val fileRemoteDataSource: FileRemoteDataSource,
-) : FileRepository {
- override suspend fun sendFile(file: File): FileEntity =
- fileRemoteDataSource.sendFile(file = file.toMultipartBody()).toEntity()
-}
\ No newline at end of file
diff --git a/data/src/test/java/com/danbam/data/ExampleUnitTest.kt b/data/src/test/java/com/danbam/data/ExampleUnitTest.kt
deleted file mode 100644
index cedf9ea7..00000000
--- a/data/src/test/java/com/danbam/data/ExampleUnitTest.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.danbam.data
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
- @Test
- fun addition_isCorrect() {
- assertEquals(4, 2 + 2)
- }
-}
\ No newline at end of file
diff --git a/design-system/build.gradle.kts b/design-system/build.gradle.kts
deleted file mode 100644
index 9c269f66..00000000
--- a/design-system/build.gradle.kts
+++ /dev/null
@@ -1,74 +0,0 @@
-import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
-
-plugins {
- id("com.android.library")
- id("org.jetbrains.kotlin.android")
-}
-
-android {
- namespace = "com.danbam.design_system"
- compileSdk = Version.COMPILE_SDK_VERSION
-
- defaultConfig {
- minSdk = Version.MIN_SDK_VERSION
- targetSdk = Version.TARGET_SDK_VERSION
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- buildConfigField(
- "String",
- "VIDEO_PRE_PATH",
- gradleLocalProperties(rootDir).getProperty("VIDEO_PRE_PATH")
- )
- }
-
- buildTypes {
- getByName("release") {
- isMinifyEnabled = false
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = Version.JAVA_VERSION
- targetCompatibility = Version.JAVA_VERSION
- }
- kotlinOptions {
- jvmTarget = Version.JAVA_VERSION.toString()
- }
- buildFeatures {
- compose = true
- }
- composeOptions {
- kotlinCompilerExtensionVersion = Version.COMPOSE
- }
-}
-
-dependencies {
- implementation(project(":domain"))
-
- implementation(Dependency.Compose.ACTIVITY)
- implementation(Dependency.Compose.UI)
- implementation(Dependency.Compose.PREVIEW)
- implementation(Dependency.Compose.MATERIAL)
- implementation(Dependency.Compose.MATERIAL3)
- implementation(Dependency.Compose.COMPOSE_HILT_NAV)
- implementation(Dependency.Compose.FOUNDATION)
-
- implementation(Dependency.Coil.COIL)
-
- implementation(Dependency.ExoPlayer.EXO_PLAYER_CORE)
- implementation(Dependency.ExoPlayer.EXO_PLAYER_UI)
-
- implementation(Dependency.Camera.CAMERA)
- implementation(Dependency.Camera.LIFECYCLE)
- implementation(Dependency.Camera.VIEW)
-
- implementation(Dependency.Barcode.SCANNING)
- implementation(Dependency.Barcode.DRAWING)
-
- implementation(Dependency.Tv.MATERIAL)
- implementation(Dependency.Tv.FOUNDATION)
-
- implementation(Dependency.AndroidX.CONSTRAINT_LAYOUT)
-}
\ No newline at end of file
diff --git a/design-system/consumer-rules.pro b/design-system/consumer-rules.pro
deleted file mode 100644
index e69de29b..00000000
diff --git a/design-system/proguard-rules.pro b/design-system/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/design-system/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/design-system/src/main/java/com/danbam/design_system/util/StringUtil.kt b/design-system/src/main/java/com/danbam/design_system/util/StringUtil.kt
deleted file mode 100644
index 35ae50cb..00000000
--- a/design-system/src/main/java/com/danbam/design_system/util/StringUtil.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.danbam.design_system.util
-
-import java.text.DecimalFormat
-import java.util.concurrent.TimeUnit
-
-fun Long.toCommaString(): String = DecimalFormat("#,###").format(this)
-
-fun Long.formatMinSec(): String = String.format(
- "%02d : %02d",
- TimeUnit.MILLISECONDS.toMinutes(this),
- TimeUnit.MILLISECONDS.toSeconds(this) - TimeUnit.MINUTES.toSeconds(
- TimeUnit.MILLISECONDS.toMinutes(this)
- )
-)
\ No newline at end of file
diff --git a/di/build.gradle.kts b/di/build.gradle.kts
deleted file mode 100644
index b8c1fbec..00000000
--- a/di/build.gradle.kts
+++ /dev/null
@@ -1,62 +0,0 @@
-import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
-
-plugins {
- id("com.android.library")
- id("org.jetbrains.kotlin.android")
- id("kotlin-android")
- id("kotlin-kapt")
-}
-
-android {
- namespace = "com.danbam.di"
- compileSdk = Version.COMPILE_SDK_VERSION
-
- defaultConfig {
- minSdk = Version.MIN_SDK_VERSION
- targetSdk = Version.TARGET_SDK_VERSION
-
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- buildConfigField(
- "String",
- "BASE_URL",
- gradleLocalProperties(rootDir).getProperty("BASE_URL")
- )
- }
-
- buildTypes {
- getByName("release") {
- isMinifyEnabled = false
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = Version.JAVA_VERSION
- targetCompatibility = Version.JAVA_VERSION
- }
- kotlinOptions {
- jvmTarget = Version.JAVA_VERSION.toString()
- }
-}
-
-dependencies {
- implementation(project(":data"))
- implementation(project(":domain"))
-
- implementation(Dependency.AndroidX.CORE_KTX)
- implementation(Dependency.AndroidX.APP_COMPAT)
- implementation(Dependency.AndroidX.PREFERENCE_KTX)
-
- implementation(Dependency.Hilt.HILT_ANDROID)
- kapt(Dependency.Hilt.HILT_ANDROID_COMPILER)
-
- implementation(Dependency.Room.ROOM)
- kapt(Dependency.Room.ROOM_COMPILER)
-
- implementation(Dependency.Retrofit.RETROFIT)
- implementation(Dependency.Retrofit.RETROFIT_CONVERTER_GSON)
- implementation(Dependency.Retrofit.OKHTTP)
- implementation(Dependency.Retrofit.OKHTTP_LOGGING_INTERCEPTOR)
-}
\ No newline at end of file
diff --git a/di/consumer-rules.pro b/di/consumer-rules.pro
deleted file mode 100644
index e69de29b..00000000
diff --git a/di/proguard-rules.pro b/di/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/di/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts
deleted file mode 100644
index 7ed2bd39..00000000
--- a/domain/build.gradle.kts
+++ /dev/null
@@ -1,46 +0,0 @@
-plugins {
- id("com.android.library")
- id("org.jetbrains.kotlin.android")
- id("kotlin-kapt")
-}
-
-android {
- namespace = "com.danbam.domain"
- compileSdk = Version.COMPILE_SDK_VERSION
-
- defaultConfig {
- minSdk = Version.MIN_SDK_VERSION
- targetSdk = Version.TARGET_SDK_VERSION
-
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- }
-
- buildTypes {
- getByName("release") {
- isMinifyEnabled = false
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = Version.JAVA_VERSION
- targetCompatibility = Version.JAVA_VERSION
- }
- kotlinOptions {
- jvmTarget = Version.JAVA_VERSION.toString()
- }
-}
-
-dependencies {
- implementation(Dependency.JavaX.INJECT)
-
- implementation(Dependency.Kotlin.COROUTINES_CORE)
-
- implementation(Dependency.AndroidX.PAGING)
-
- testImplementation(Dependency.UnitTest.JUNIT)
- testImplementation(Dependency.UnitTest.MOCKITO_KOTLIN)
- testImplementation(Dependency.UnitTest.MOCKITO_INLINE)
-}
\ No newline at end of file
diff --git a/domain/consumer-rules.pro b/domain/consumer-rules.pro
deleted file mode 100644
index e69de29b..00000000
diff --git a/domain/proguard-rules.pro b/domain/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/domain/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/domain/src/main/java/com/danbam/domain/entity/auth/FindIdEntity.kt b/domain/src/main/java/com/danbam/domain/entity/auth/FindIdEntity.kt
deleted file mode 100644
index 1e79b9ec..00000000
--- a/domain/src/main/java/com/danbam/domain/entity/auth/FindIdEntity.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.danbam.domain.entity.auth
-
-data class FindIdEntity(
- val id: String,
-)
\ No newline at end of file
diff --git a/domain/src/main/java/com/danbam/domain/entity/search/RelatedSearchEntity.kt b/domain/src/main/java/com/danbam/domain/entity/search/RelatedSearchEntity.kt
deleted file mode 100644
index cdd27fe6..00000000
--- a/domain/src/main/java/com/danbam/domain/entity/search/RelatedSearchEntity.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.danbam.domain.entity.search
-
-data class RelatedSearchEntity(
- val id: Int,
- val title: String,
-)
\ No newline at end of file
diff --git a/domain/src/main/java/com/danbam/domain/repository/BannerRepository.kt b/domain/src/main/java/com/danbam/domain/repository/BannerRepository.kt
deleted file mode 100644
index cb250f73..00000000
--- a/domain/src/main/java/com/danbam/domain/repository/BannerRepository.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.danbam.domain.repository
-
-import com.danbam.domain.entity.banner.BannerEntity
-
-interface BannerRepository {
- suspend fun getBanner(): List
-}
\ No newline at end of file
diff --git a/domain/src/main/java/com/danbam/domain/repository/FileRepository.kt b/domain/src/main/java/com/danbam/domain/repository/FileRepository.kt
deleted file mode 100644
index cd09fc6e..00000000
--- a/domain/src/main/java/com/danbam/domain/repository/FileRepository.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.danbam.domain.repository
-
-import com.danbam.domain.entity.file.FileEntity
-import java.io.File
-
-interface FileRepository {
- suspend fun sendFile(file: File): FileEntity
-}
\ No newline at end of file
diff --git a/domain/src/test/java/com/danbam/domain/ExampleUnitTest.kt b/domain/src/test/java/com/danbam/domain/ExampleUnitTest.kt
deleted file mode 100644
index cf6ae6b9..00000000
--- a/domain/src/test/java/com/danbam/domain/ExampleUnitTest.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.danbam.domain
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
- @Test
- fun addition_isCorrect() {
- assertEquals(4, 2 + 2)
- }
-}
\ No newline at end of file
diff --git a/feature/mobile/auth/.gitignore b/feature/mobile/auth/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/mobile/auth/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/mobile/auth/build.gradle.kts b/feature/mobile/auth/build.gradle.kts
new file mode 100644
index 00000000..a494496a
--- /dev/null
+++ b/feature/mobile/auth/build.gradle.kts
@@ -0,0 +1,11 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.mobile.auth"
+}
+
+dependencies {
+ implementation(project(":feature:mobile:navigation"))
+}
\ No newline at end of file
diff --git a/feature/mobile/auth/src/main/AndroidManifest.xml b/feature/mobile/auth/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/mobile/auth/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateContract.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateContract.kt
similarity index 93%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateContract.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateContract.kt
index 2b3ae990..81c60521 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateContract.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.certificate
+package com.danbam.indistraw.feature.mobile.auth.certificate
data class CertificateState(
val phoneNumber: String = "",
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateScreen.kt
similarity index 87%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateScreen.kt
index 033e2a70..9d7b8837 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.certificate
+package com.danbam.indistraw.feature.mobile.auth.certificate
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
@@ -24,24 +24,24 @@ import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.FindPasswordMedium
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.R
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.mobile.ui.auth.navigation.AuthDeepLinkKey
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.auth.navigation.CertificateType
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
-import com.danbam.mobile.util.view.requestFocus
-import com.danbam.mobile.util.parser.toPhoneNumber
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.FindPasswordMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.core.design_system.util.androidx.requestFocus
+import com.danbam.indistraw.core.design_system.util.internal.toPhoneNumber
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.auth.CertificateType
import kotlinx.coroutines.InternalCoroutinesApi
import kotlinx.coroutines.delay
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateViewModel.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateViewModel.kt
similarity index 87%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateViewModel.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateViewModel.kt
index 8d2c0fde..8917da90 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/certificate/CertificateViewModel.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/certificate/CertificateViewModel.kt
@@ -1,13 +1,13 @@
-package com.danbam.mobile.ui.auth.certificate
+package com.danbam.indistraw.feature.mobile.auth.certificate
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.account.ChangePhoneNumberUseCase
-import com.danbam.domain.usecase.auth.CheckCertificateNumberUseCase
-import com.danbam.domain.usecase.auth.CheckPhoneNumberUseCase
-import com.danbam.domain.usecase.auth.SendCertificateNumberUseCase
-import com.danbam.mobile.util.android.errorHandling
-import com.danbam.mobile.util.parser.isPhoneNumber
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.design_system.util.internal.isPhoneNumber
+import com.danbam.indistraw.core.domain.usecase.account.ChangePhoneNumberUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.CheckCertificateNumberUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.CheckPhoneNumberUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.SendCertificateNumberUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdContract.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdContract.kt
new file mode 100644
index 00000000..a9eb66cc
--- /dev/null
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdContract.kt
@@ -0,0 +1,5 @@
+package com.danbam.indistraw.feature.mobile.auth.find.find_id
+
+data class FindIdState(
+ val id: String = "",
+)
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdScreen.kt
similarity index 71%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdScreen.kt
index 8fb48c83..6edae078 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.find.find_id
+package com.danbam.indistraw.feature.mobile.auth.find.find_id
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
@@ -9,14 +9,14 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.R
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.main.navigation.MainNavigationItem
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
@Composable
fun FindIdScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdViewModel.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdViewModel.kt
similarity index 81%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdViewModel.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdViewModel.kt
index c4dfde9a..3dadfc08 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdViewModel.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_id/FindIdViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.mobile.ui.auth.find.find_id
+package com.danbam.indistraw.feature.mobile.auth.find.find_id
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.account.FindIdUseCase
-import com.danbam.mobile.util.android.errorHandling
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.domain.usecase.account.FindIdUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordContract.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordContract.kt
similarity index 87%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordContract.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordContract.kt
index 1b704655..2544a0e5 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordContract.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.find.find_password
+package com.danbam.indistraw.feature.mobile.auth.find.find_password
sealed class FindPasswordSideEffect {
object EmptyPasswordException : FindPasswordSideEffect()
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordScreen.kt
similarity index 83%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordScreen.kt
index e5930760..4777a0ef 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.find.find_password
+package com.danbam.indistraw.feature.mobile.auth.find.find_password
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
@@ -19,23 +19,23 @@ import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.main.navigation.MainNavigationItem
-import com.danbam.mobile.ui.profile.navigation.ProfileNavigationItem
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
-import com.danbam.mobile.util.view.requestFocus
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.core.design_system.util.androidx.requestFocus
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class, ExperimentalComposeUiApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordViewModel.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordViewModel.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordViewModel.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordViewModel.kt
index 41830e59..30ed54aa 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_password/FindPasswordViewModel.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/find/find_password/FindPasswordViewModel.kt
@@ -1,11 +1,11 @@
-package com.danbam.mobile.ui.auth.find.find_password
+package com.danbam.indistraw.feature.mobile.auth.find.find_password
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.auth.ChangePasswordParam
-import com.danbam.domain.usecase.account.ChangePasswordUseCase
-import com.danbam.mobile.util.android.errorHandling
-import com.danbam.mobile.util.parser.isPassword
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.design_system.util.internal.isPassword
+import com.danbam.indistraw.core.param.auth.ChangePasswordParam
+import com.danbam.indistraw.core.domain.usecase.account.ChangePasswordUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/login/LoginContract.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginContract.kt
similarity index 85%
rename from tv/src/main/java/com/danbam/tv/ui/main/login/LoginContract.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginContract.kt
index 8df244c0..dadf2a49 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/login/LoginContract.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginContract.kt
@@ -1,4 +1,5 @@
-package com.danbam.tv.ui.main.login
+package com.danbam.indistraw.feature.mobile.auth.login
+
sealed class LoginSideEffect {
object LoginSuccess : LoginSideEffect()
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginScreen.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginScreen.kt
index 034daa88..34511f39 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.login
+package com.danbam.indistraw.feature.mobile.auth.login
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -26,25 +26,25 @@ import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.ExampleTextRegular
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.mobile.ui.auth.navigation.AuthDeepLinkKey
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.auth.navigation.CertificateType
-import com.danbam.mobile.ui.main.navigation.MainNavigationItem
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
-import com.danbam.mobile.util.view.requestFocus
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.ExampleTextRegular
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.core.design_system.util.androidx.requestFocus
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.auth.CertificateType
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class, ExperimentalComposeUiApi::class)
@@ -161,7 +161,7 @@ fun LoginScreen(
.indiStrawClickable(onClick = {
navController.navigate(
route = AuthNavigationItem.Certificate.route
- + AuthDeepLinkKey.CERTIFICATE_TYPE + CertificateType.FIND_ID
+ + AuthDeepLinkKey.CERTIFICATE_TYPE + CertificateType.FIND_ID
)
}),
text = stringResource(id = R.string.find_id),
@@ -181,7 +181,7 @@ fun LoginScreen(
.indiStrawClickable(onClick = {
navController.navigate(
route = AuthNavigationItem.Certificate.route
- + AuthDeepLinkKey.CERTIFICATE_TYPE + CertificateType.FIND_PASSWORD
+ + AuthDeepLinkKey.CERTIFICATE_TYPE + CertificateType.FIND_PASSWORD
)
}),
text = stringResource(id = R.string.find_password),
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginViewModel.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginViewModel.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginViewModel.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginViewModel.kt
index 290c7beb..a73fbc15 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginViewModel.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/login/LoginViewModel.kt
@@ -1,12 +1,12 @@
-package com.danbam.mobile.ui.auth.login
+package com.danbam.indistraw.feature.mobile.auth.login
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.auth.LoginParam
-import com.danbam.domain.usecase.auth.LoginUseCase
-import com.danbam.mobile.util.android.errorHandling
-import com.danbam.mobile.util.parser.isId
-import com.danbam.mobile.util.parser.isPassword
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.design_system.util.internal.isId
+import com.danbam.indistraw.core.design_system.util.internal.isPassword
+import com.danbam.indistraw.core.param.auth.LoginParam
+import com.danbam.indistraw.core.domain.usecase.auth.LoginUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/navigation/AuthGraph.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/navigation/AuthGraph.kt
similarity index 69%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/navigation/AuthGraph.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/navigation/AuthGraph.kt
index 8d4f6ac2..fccb30ca 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/navigation/AuthGraph.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/navigation/AuthGraph.kt
@@ -1,46 +1,23 @@
-package com.danbam.mobile.ui.auth.navigation
+package com.danbam.indistraw.feature.mobile.auth.navigation
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.navArgument
-import com.danbam.mobile.ui.auth.certificate.CertificateScreen
-import com.danbam.mobile.ui.auth.find.find_id.FindIdScreen
-import com.danbam.mobile.ui.auth.find.find_password.FindPasswordScreen
-import com.danbam.mobile.ui.auth.login.LoginScreen
-import com.danbam.mobile.ui.auth.signup.SetIdScreen
-import com.danbam.mobile.ui.auth.signup.SetNameScreen
-import com.danbam.mobile.ui.auth.signup.SetPasswordScreen
-import com.danbam.mobile.ui.auth.signup.SetProfileScreen
-import com.danbam.mobile.ui.auth.signup.SignUpViewModel
+import com.danbam.indistraw.feature.mobile.auth.certificate.CertificateScreen
+import com.danbam.indistraw.feature.mobile.auth.find.find_id.FindIdScreen
+import com.danbam.indistraw.feature.mobile.auth.find.find_password.FindPasswordScreen
+import com.danbam.indistraw.feature.mobile.auth.login.LoginScreen
+import com.danbam.indistraw.feature.mobile.auth.signup.SetIdScreen
+import com.danbam.indistraw.feature.mobile.auth.signup.SetNameScreen
+import com.danbam.indistraw.feature.mobile.auth.signup.SetPasswordScreen
+import com.danbam.indistraw.feature.mobile.auth.signup.SetProfileScreen
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.auth.CertificateType
import com.google.accompanist.navigation.animation.composable
-sealed class AuthNavigationItem(val route: String) {
- object Login : AuthNavigationItem("login")
- object Certificate : AuthNavigationItem("certificate")
- object FindId : AuthNavigationItem("findId")
- object FindPassword : AuthNavigationItem("findPassword")
- object SetName : AuthNavigationItem("setName")
- object SetProfile : AuthNavigationItem("setProfile")
- object SetId : AuthNavigationItem("setId")
- object SetPassword : AuthNavigationItem("setPassword")
-}
-
-object AuthDeepLinkKey {
- const val CERTIFICATE_TYPE = "certificateType"
- const val IS_FIND_PASSWORD = "isFindPassword"
- const val PHONE_NUMBER = "phoneNumber"
-}
-
-object CertificateType {
- const val SIGN_UP = "signUp"
- const val FIND_ID = "findId"
- const val FIND_PASSWORD = "findPassword"
- const val CHANGE_PASSWORD = "changePassword"
- const val CHANGE_PHONE_NUMBER = "changePhoneNumber"
-}
-
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.authGraph(navController: NavHostController) {
composable(route = AuthNavigationItem.Login.route) {
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetIdScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetIdScreen.kt
similarity index 78%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetIdScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetIdScreen.kt
index 7ac356e5..6f6bb520 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetIdScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetIdScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.signup
+package com.danbam.indistraw.feature.mobile.auth.signup
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
@@ -17,19 +17,19 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.R
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
-import com.danbam.mobile.util.view.requestFocus
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.core.design_system.util.androidx.requestFocus
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class, ExperimentalComposeUiApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetNameScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetNameScreen.kt
similarity index 74%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetNameScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetNameScreen.kt
index d3b216cc..cc58ad57 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetNameScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetNameScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.signup
+package com.danbam.indistraw.feature.mobile.auth.signup
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
@@ -17,21 +17,21 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.R
-import com.danbam.mobile.ui.auth.navigation.AuthDeepLinkKey
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.auth.navigation.CertificateType
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
-import com.danbam.mobile.util.view.requestFocus
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.core.design_system.util.androidx.requestFocus
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.auth.CertificateType
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class, ExperimentalComposeUiApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetPasswordScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetPasswordScreen.kt
similarity index 87%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetPasswordScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetPasswordScreen.kt
index 6b41dc8f..67f3d4e1 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetPasswordScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetPasswordScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.signup
+package com.danbam.indistraw.feature.mobile.auth.signup
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -34,28 +34,28 @@ import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.FindPasswordMedium
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawCheckBox
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.main.navigation.MainNavigationItem
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
-import com.danbam.mobile.util.view.requestFocus
-import com.danbam.mobile.util.parser.toDp
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.FindPasswordMedium
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawCheckBox
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.core.design_system.util.androidx.requestFocus
+import com.danbam.indistraw.core.design_system.util.internal.toDp
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetProfileScreen.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetProfileScreen.kt
similarity index 76%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetProfileScreen.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetProfileScreen.kt
index 2331d1b7..61447614 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SetProfileScreen.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SetProfileScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.signup
+package com.danbam.indistraw.feature.mobile.auth.signup
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
@@ -16,16 +16,16 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.SelectProfileButton
-import com.danbam.design_system.R
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.parser.toFile
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.SelectProfileButton
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.android.toFile
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SignUpContract.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SignUpContract.kt
similarity index 94%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SignUpContract.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SignUpContract.kt
index 0285f402..a1d97264 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SignUpContract.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SignUpContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.auth.signup
+package com.danbam.indistraw.feature.mobile.auth.signup
data class SignUpState(
val id: String = "",
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SignUpViewModel.kt b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SignUpViewModel.kt
similarity index 86%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SignUpViewModel.kt
rename to feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SignUpViewModel.kt
index 83dc2c56..56ba309a 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/signup/SignUpViewModel.kt
+++ b/feature/mobile/auth/src/main/kotlin/com/danbam/indistraw/feature/mobile/auth/signup/SignUpViewModel.kt
@@ -1,14 +1,14 @@
-package com.danbam.mobile.ui.auth.signup
+package com.danbam.indistraw.feature.mobile.auth.signup
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.auth.SignUpParam
-import com.danbam.domain.usecase.auth.CheckIdUseCase
-import com.danbam.domain.usecase.auth.SignUpUseCase
-import com.danbam.domain.usecase.file.SendFileUseCase
-import com.danbam.mobile.util.android.errorHandling
-import com.danbam.mobile.util.parser.isId
-import com.danbam.mobile.util.parser.isPassword
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.design_system.util.internal.isId
+import com.danbam.indistraw.core.design_system.util.internal.isPassword
+import com.danbam.indistraw.core.param.auth.SignUpParam
+import com.danbam.indistraw.core.domain.usecase.auth.CheckIdUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.SignUpUseCase
+import com.danbam.indistraw.core.domain.usecase.file.SendFileUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/mobile/funding/.gitignore b/feature/mobile/funding/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/mobile/funding/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/mobile/funding/build.gradle.kts b/feature/mobile/funding/build.gradle.kts
new file mode 100644
index 00000000..ff3ba5aa
--- /dev/null
+++ b/feature/mobile/funding/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.mobile.funding"
+}
+
+dependencies {
+ implementation(project(":feature:mobile:navigation"))
+ implementation(libs.bootpay)
+}
\ No newline at end of file
diff --git a/feature/mobile/funding/src/main/AndroidManifest.xml b/feature/mobile/funding/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/mobile/funding/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllContract.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllContract.kt
similarity index 57%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllContract.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllContract.kt
index 97620b40..025c69dd 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllContract.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllContract.kt
@@ -1,7 +1,7 @@
-package com.danbam.mobile.ui.funding.all
+package com.danbam.indistraw.feature.mobile.funding.all
import androidx.paging.PagingData
-import com.danbam.domain.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
import kotlinx.coroutines.flow.Flow
data class FundingAllState(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllScreen.kt
similarity index 78%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllScreen.kt
index ab20b4c7..d8aee5ac 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.all
+package com.danbam.indistraw.feature.mobile.funding.all
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
@@ -12,12 +12,12 @@ import androidx.navigation.NavController
import androidx.paging.LoadState
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.items
-import com.danbam.design_system.component.FundingItem
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.mobile.ui.funding.navigation.FundingDeepLinkKey
-import com.danbam.mobile.ui.funding.navigation.FundingNavigationItem
+import com.danbam.indistraw.core.design_system.component.FundingItem
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingNavigationItem
@Composable
fun FundingAllScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllViewModel.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllViewModel.kt
similarity index 63%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllViewModel.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllViewModel.kt
index 0c650204..6ac05c40 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/all/FundingAllViewModel.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/all/FundingAllViewModel.kt
@@ -1,8 +1,8 @@
-package com.danbam.mobile.ui.funding.all
+package com.danbam.indistraw.feature.mobile.funding.all
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.crowd_funding.FundingAllUseCase
+import com.danbam.indistraw.core.domain.usecase.crowd_funding.FundingAllUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
@@ -14,8 +14,10 @@ import javax.inject.Inject
@HiltViewModel
class FundingAllViewModel @Inject constructor(
private val fundingAllUseCase: FundingAllUseCase
-) : ContainerHost, ViewModel() {
- override val container = container(FundingAllState())
+) : ContainerHost, ViewModel() {
+ override val container = container(
+ com.danbam.indistraw.feature.mobile.funding.all.FundingAllState()
+ )
fun fundingList() = intent {
viewModelScope.launch {
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailContract.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailContract.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailContract.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailContract.kt
index 9bf67430..1adda982 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailContract.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailContract.kt
@@ -1,6 +1,6 @@
-package com.danbam.mobile.ui.funding.detail
+package com.danbam.indistraw.feature.mobile.funding.detail
-import com.danbam.domain.entity.funding.FundingDetailEntity
+import com.danbam.indistraw.core.entity.funding.FundingDetailEntity
import java.util.UUID
data class FundingDetailState(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailScreen.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailScreen.kt
index a82266b8..137c2f97 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.detail
+package com.danbam.indistraw.feature.mobile.funding.detail
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Row
@@ -26,29 +26,29 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.ButtonMedium
-import com.danbam.design_system.component.DialogMedium
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.ExampleTextRegular
-import com.danbam.design_system.component.FindPasswordMedium
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawProgress
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawSlider
-import com.danbam.design_system.component.RewardItem
-import com.danbam.design_system.component.RewardType
-import com.danbam.design_system.util.toCommaString
-import com.danbam.domain.entity.funding.FundingDetailEntity
-import com.danbam.mobile.ui.funding.navigation.FundingDeepLinkKey
-import com.danbam.mobile.ui.funding.navigation.FundingNavigationItem
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.ButtonMedium
+import com.danbam.indistraw.core.design_system.component.DialogMedium
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.ExampleTextRegular
+import com.danbam.indistraw.core.design_system.component.FindPasswordMedium
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawProgress
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawSlider
+import com.danbam.indistraw.core.design_system.component.RewardItem
+import com.danbam.indistraw.core.design_system.component.RewardType
+import com.danbam.indistraw.core.design_system.util.internal.toCommaString
+import com.danbam.indistraw.core.entity.funding.FundingDetailEntity
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingNavigationItem
@OptIn(ExperimentalMaterialApi::class)
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailViewModel.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailViewModel.kt
similarity index 81%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailViewModel.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailViewModel.kt
index f4ca824e..ae715924 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/detail/FundingDetailViewModel.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/detail/FundingDetailViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.mobile.ui.funding.detail
+package com.danbam.indistraw.feature.mobile.funding.detail
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.crowd_funding.FundingDetailUseCase
-import com.danbam.mobile.util.android.errorHandling
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.domain.usecase.crowd_funding.FundingDetailUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/AddRewardScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/AddRewardScreen.kt
similarity index 76%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/AddRewardScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/AddRewardScreen.kt
index 02f75c14..7fa40b20 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/AddRewardScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/AddRewardScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement
@@ -15,19 +15,19 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.RewardItem
-import com.danbam.design_system.component.RewardType
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.domain.entity.funding.FundingDetailEntity
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.RewardItem
+import com.danbam.indistraw.core.design_system.component.RewardType
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.entity.funding.FundingDetailEntity
@Composable
fun AddRewardScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingContract.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingContract.kt
similarity index 76%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingContract.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingContract.kt
index a7286e95..f414eb8a 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingContract.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingContract.kt
@@ -1,6 +1,6 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
-import com.danbam.domain.param.funding.FundingCreateParam
+import com.danbam.indistraw.core.param.funding.FundingCreateParam
import java.time.LocalDate
data class MakeFundingState(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingScreen.kt
similarity index 90%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingScreen.kt
index e00c7fbe..440e7cc8 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.Spacer
@@ -12,10 +12,10 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawMakeProgress
-import com.danbam.design_system.component.MakeFundingProgress
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawMakeProgress
+import com.danbam.indistraw.core.design_system.component.MakeFundingProgress
@Composable
fun MakeFundingScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingViewModel.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingViewModel.kt
similarity index 94%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingViewModel.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingViewModel.kt
index 4ba850fe..e7cf66ac 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/MakeFundingViewModel.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/MakeFundingViewModel.kt
@@ -1,10 +1,10 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.funding.FundingCreateParam
-import com.danbam.domain.usecase.file.SendFileUseCase
-import com.danbam.domain.usecase.crowd_funding.FundingCreateUseCase
+import com.danbam.indistraw.core.param.funding.FundingCreateParam
+import com.danbam.indistraw.core.domain.usecase.crowd_funding.FundingCreateUseCase
+import com.danbam.indistraw.core.domain.usecase.file.SendFileUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteAccountScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteAccountScreen.kt
similarity index 85%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteAccountScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteAccountScreen.kt
index 9b1f5676..6aaa5dbc 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteAccountScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteAccountScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -22,19 +22,19 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ButtonMedium
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.FindPasswordMedium
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ButtonMedium
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.FindPasswordMedium
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
sealed class Bank(val stringId: Int, val BankIcon: IndiStrawIconList, val name: String) {
object NhBank : Bank(R.string.nh_bank, IndiStrawIconList.BankNh, "NH")
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteIntroduceScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteIntroduceScreen.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteIntroduceScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteIntroduceScreen.kt
index 0389bc33..d3e099ea 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteIntroduceScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteIntroduceScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
@@ -14,14 +14,14 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.R
-import com.danbam.design_system.component.AddImageList
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.SelectImageButton
-import com.danbam.mobile.util.parser.toFile
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.AddImageList
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.SelectImageButton
+import com.danbam.indistraw.core.design_system.util.android.toFile
@Composable
fun WriteIntroduceScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteRewardScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteRewardScreen.kt
similarity index 86%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteRewardScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteRewardScreen.kt
index 4db0354b..081cce54 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteRewardScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteRewardScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -18,16 +18,16 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.R
-import com.danbam.design_system.component.AddImageList
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.IndiStrawToggle
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.mobile.util.parser.toFile
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.AddImageList
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.IndiStrawToggle
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.android.toFile
import okhttp3.internal.toLongOrDefault
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteTargetScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteTargetScreen.kt
similarity index 82%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteTargetScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteTargetScreen.kt
index cdc9f181..fc299417 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/make/WriteTargetScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/make/WriteTargetScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.make
+package com.danbam.indistraw.feature.mobile.funding.make
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -19,20 +19,20 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.AddFileList
-import com.danbam.design_system.component.DatePicker
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.util.parser.toFile
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.AddFileList
+import com.danbam.indistraw.core.design_system.component.DatePicker
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.android.toFile
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
import okhttp3.internal.toLongOrDefault
import java.time.LocalDate
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingContract.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingContract.kt
similarity index 72%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingContract.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingContract.kt
index 8bb89caf..c68cfd17 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingContract.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingContract.kt
@@ -1,6 +1,7 @@
-package com.danbam.mobile.ui.funding.my
+package com.danbam.indistraw.feature.mobile.funding.my
+
+import com.danbam.indistraw.core.entity.funding.MyFundingEntity
-import com.danbam.domain.entity.funding.MyFundingEntity
data class MyFundingState(
val myFundingEntity: MyFundingEntity = MyFundingEntity(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingScreen.kt
similarity index 90%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingScreen.kt
index 2ef9fc97..01efda14 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.my
+package com.danbam.indistraw.feature.mobile.funding.my
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
@@ -30,26 +30,26 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ButtonMedium
-import com.danbam.design_system.component.DialogMedium
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.FindPasswordMedium
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.MyRewardItem
-import com.danbam.design_system.component.PriceRegular
-import com.danbam.design_system.component.RewardType
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.util.RemoveOverScrollLazyRow
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.util.toCommaString
-import com.danbam.domain.entity.funding.MyFundingEntity
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ButtonMedium
+import com.danbam.indistraw.core.design_system.component.DialogMedium
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.FindPasswordMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.MyRewardItem
+import com.danbam.indistraw.core.design_system.component.PriceRegular
+import com.danbam.indistraw.core.design_system.component.RewardType
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyRow
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.internal.toCommaString
+import com.danbam.indistraw.core.entity.funding.MyFundingEntity
@OptIn(ExperimentalMaterialApi::class)
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingViewModel.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingViewModel.kt
similarity index 86%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingViewModel.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingViewModel.kt
index ea729b7f..07183033 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/my/MyFundingViewModel.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/my/MyFundingViewModel.kt
@@ -1,8 +1,8 @@
-package com.danbam.mobile.ui.funding.my
+package com.danbam.indistraw.feature.mobile.funding.my
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.crowd_funding.FundingMyDetailUseCase
+import com.danbam.indistraw.core.domain.usecase.crowd_funding.FundingMyDetailUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/navigation/FundingGraph.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/navigation/FundingGraph.kt
similarity index 78%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/navigation/FundingGraph.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/navigation/FundingGraph.kt
index 3ebdfade..72cdd534 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/navigation/FundingGraph.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/navigation/FundingGraph.kt
@@ -1,33 +1,19 @@
-package com.danbam.mobile.ui.funding.navigation
+package com.danbam.indistraw.feature.mobile.funding.navigation
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.navArgument
-import com.danbam.mobile.ui.funding.all.FundingAllScreen
-import com.danbam.mobile.ui.funding.detail.FundingDetailScreen
-import com.danbam.mobile.ui.funding.make.MakeFundingScreen
-import com.danbam.mobile.ui.funding.my.MyFundingScreen
-import com.danbam.mobile.ui.funding.pay.FundingRewardScreen
+import com.danbam.indistraw.feature.mobile.funding.all.FundingAllScreen
+import com.danbam.indistraw.feature.mobile.funding.detail.FundingDetailScreen
+import com.danbam.indistraw.feature.mobile.funding.make.MakeFundingScreen
+import com.danbam.indistraw.feature.mobile.funding.my.MyFundingScreen
+import com.danbam.indistraw.feature.mobile.funding.pay.FundingRewardScreen
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingNavigationItem
import com.google.accompanist.navigation.animation.composable
-sealed class FundingNavigationItem(val route: String) {
- object Make : FundingNavigationItem("fundingMake")
- object Detail : FundingNavigationItem("fundingDetail")
- object All : FundingNavigationItem("fundingAll")
- object FundingReward : FundingNavigationItem("fundingReward")
- object MyDetail : FundingNavigationItem("fundingMyDetail")
-}
-
-object FundingDeepLinkKey {
- const val FUNDING_INDEX = "fundingIndex"
- const val REWARD_INDEX = "rewardIndex"
- const val REWARD_TITLE = "rewardTitle"
- const val REWARD_DESCRIPTION = "rewardDescription"
- const val REWARD_PRICE = "rewardPrice"
-}
-
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.fundingGraph(navController: NavHostController) {
composable(route = FundingNavigationItem.Make.route) {
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardContract.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardContract.kt
similarity index 83%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardContract.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardContract.kt
index a20b4ee9..d515862d 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardContract.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.pay
+package com.danbam.indistraw.feature.mobile.funding.pay
data class FundingRewardState(
val name: String = "",
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardScreen.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardScreen.kt
similarity index 92%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardScreen.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardScreen.kt
index dc00ac03..5d209015 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardScreen.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.funding.pay
+package com.danbam.indistraw.feature.mobile.funding.pay
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
@@ -28,22 +28,21 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.util.toCommaString
-import com.danbam.design_system.R
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.util.android.findActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.pay.bootPayCreate
-import com.danbam.mobile.util.pay.bootPayPayload
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.util.internal.toCommaString
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.util.android.findActivity
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.bootpay.bootPayCreate
+import com.danbam.indistraw.core.design_system.util.bootpay.bootPayPayload
import kotlinx.coroutines.InternalCoroutinesApi
-import java.util.UUID
sealed class Payment(val stringId: Int, val method: String) {
companion object {
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardViewModel.kt b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardViewModel.kt
similarity index 85%
rename from mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardViewModel.kt
rename to feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardViewModel.kt
index 74aea305..d027e44d 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/funding/pay/FundingRewardViewModel.kt
+++ b/feature/mobile/funding/src/main/kotlin/com/danbam/indistraw/feature/mobile/funding/pay/FundingRewardViewModel.kt
@@ -1,11 +1,11 @@
-package com.danbam.mobile.ui.funding.pay
+package com.danbam.indistraw.feature.mobile.funding.pay
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.funding.FundingParam
-import com.danbam.domain.usecase.account.GetProfileUseCase
-import com.danbam.domain.usecase.funding.FundingUseCase
-import com.danbam.domain.usecase.funding.GetReceiptUseCase
+import com.danbam.indistraw.core.param.funding.FundingParam
+import com.danbam.indistraw.core.domain.usecase.account.GetProfileUseCase
+import com.danbam.indistraw.core.domain.usecase.funding.FundingUseCase
+import com.danbam.indistraw.core.domain.usecase.funding.GetReceiptUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/mobile/main/.gitignore b/feature/mobile/main/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/mobile/main/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/mobile/main/build.gradle.kts b/feature/mobile/main/build.gradle.kts
new file mode 100644
index 00000000..fd295e6d
--- /dev/null
+++ b/feature/mobile/main/build.gradle.kts
@@ -0,0 +1,11 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.mobile.main"
+}
+
+dependencies {
+ implementation(project(":feature:mobile:navigation"))
+}
\ No newline at end of file
diff --git a/feature/mobile/main/src/main/AndroidManifest.xml b/feature/mobile/main/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/mobile/main/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroContract.kt b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroContract.kt
similarity index 76%
rename from mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroContract.kt
rename to feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroContract.kt
index b7a7f6a7..1747d940 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroContract.kt
+++ b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.main.intro
+package com.danbam.indistraw.feature.mobile.main.intro
data class IntroState(
val isNeedLogin: Boolean = false,
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroScreen.kt b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroScreen.kt
similarity index 77%
rename from mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroScreen.kt
rename to feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroScreen.kt
index 4a6d805a..8684b455 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroScreen.kt
+++ b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.main.intro
+package com.danbam.indistraw.feature.mobile.main.intro
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.tween
@@ -18,21 +18,20 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawBoxBackground
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.JoinBold
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.util.Language
-import com.danbam.design_system.util.changeLanguage
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.main.navigation.MainNavigationItem
-import com.danbam.mobile.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawBoxBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.JoinBold
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.util.android.Language
+import com.danbam.indistraw.core.design_system.util.android.changeLanguage
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
import kotlinx.coroutines.delay
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroViewModel.kt b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroViewModel.kt
similarity index 83%
rename from mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroViewModel.kt
rename to feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroViewModel.kt
index bc89487b..c9bf144b 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/main/intro/IntroViewModel.kt
+++ b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/intro/IntroViewModel.kt
@@ -1,10 +1,10 @@
-package com.danbam.mobile.ui.main.intro
+package com.danbam.indistraw.feature.mobile.main.intro
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.auth.IsLoginUseCase
-import com.danbam.domain.usecase.system.FetchLanguageUseCase
-import com.danbam.mobile.util.android.errorHandling
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.domain.usecase.auth.IsLoginUseCase
+import com.danbam.indistraw.core.domain.usecase.system.FetchLanguageUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainContract.kt b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainContract.kt
new file mode 100644
index 00000000..37d268a7
--- /dev/null
+++ b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainContract.kt
@@ -0,0 +1,13 @@
+package com.danbam.indistraw.feature.mobile.main.main
+
+import com.danbam.indistraw.core.entity.banner.BannerEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
+
+
+data class MainState(
+ val profileUrl: String? = null,
+ val movieList: List = listOf(),
+ val fundingPopularList: List = listOf(),
+ val bannerList: List = listOf()
+)
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/main/main/MainScreen.kt b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainScreen.kt
similarity index 79%
rename from mobile/src/main/java/com/danbam/mobile/ui/main/main/MainScreen.kt
rename to feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainScreen.kt
index 989c8a78..1d162090 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/main/main/MainScreen.kt
+++ b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.main.main
+package com.danbam.indistraw.feature.mobile.main.main
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background
@@ -27,29 +27,29 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.ImageButton
-import com.danbam.design_system.component.IndiStrawBanner
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawColumnTab
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawRowTab
-import com.danbam.design_system.component.IndiStrawTab
-import com.danbam.design_system.component.MovieTab
-import com.danbam.design_system.component.Shape
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.ui.funding.navigation.FundingDeepLinkKey
-import com.danbam.mobile.ui.funding.navigation.FundingNavigationItem
-import com.danbam.mobile.ui.movie.navigation.MovieDeepLinkKey
-import com.danbam.mobile.ui.movie.navigation.MovieNavigationItem
-import com.danbam.mobile.ui.profile.navigation.ProfileNavigationItem
-import com.danbam.mobile.ui.search.navigation.SearchNavigationItem
-import com.danbam.mobile.util.android.findActivity
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.ImageButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawBanner
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnTab
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawRowTab
+import com.danbam.indistraw.core.design_system.component.IndiStrawTab
+import com.danbam.indistraw.core.design_system.component.MovieTab
+import com.danbam.indistraw.core.design_system.component.Shape
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.util.android.findActivity
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.search.SearchNavigationItem
@Composable
fun MainScreen(
@@ -87,9 +87,7 @@ fun MainScreen(
verticalAlignment = Alignment.CenterVertically
) {
IndiStrawIcon(modifier = Modifier.indiStrawClickable {
- navController.navigate(
- SearchNavigationItem.Search.route
- )
+ navController.navigate(SearchNavigationItem.Search.route)
}, icon = IndiStrawIconList.Search)
if (state.profileUrl != null) {
ImageButton(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/main/main/MainViewModel.kt b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainViewModel.kt
similarity index 79%
rename from mobile/src/main/java/com/danbam/mobile/ui/main/main/MainViewModel.kt
rename to feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainViewModel.kt
index 54d7de5b..8077830d 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/main/main/MainViewModel.kt
+++ b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/main/MainViewModel.kt
@@ -1,14 +1,14 @@
-package com.danbam.mobile.ui.main.main
+package com.danbam.indistraw.feature.mobile.main.main
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.design_system.component.MovieTab
-import com.danbam.domain.usecase.account.GetProfileUseCase
-import com.danbam.domain.usecase.banner.GetBannerUseCase
-import com.danbam.domain.usecase.crowd_funding.FundingPopularListUseCase
-import com.danbam.domain.usecase.movie.MoviePopularListUseCase
-import com.danbam.domain.usecase.movie.MovieRecentListUseCase
-import com.danbam.domain.usecase.movie.MovieRecommendListUseCase
+import com.danbam.indistraw.core.design_system.component.MovieTab
+import com.danbam.indistraw.core.domain.usecase.account.GetProfileUseCase
+import com.danbam.indistraw.core.domain.usecase.banner.GetBannerUseCase
+import com.danbam.indistraw.core.domain.usecase.crowd_funding.FundingPopularListUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MoviePopularListUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieRecentListUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieRecommendListUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/main/navigation/MainGraph.kt b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/navigation/MainGraph.kt
similarity index 64%
rename from mobile/src/main/java/com/danbam/mobile/ui/main/navigation/MainGraph.kt
rename to feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/navigation/MainGraph.kt
index 9f110215..22e5df11 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/main/navigation/MainGraph.kt
+++ b/feature/mobile/main/src/main/kotlin/com/danbam/indistraw/feature/mobile/main/navigation/MainGraph.kt
@@ -1,17 +1,13 @@
-package com.danbam.mobile.ui.main.navigation
+package com.danbam.indistraw.feature.mobile.main.navigation
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
-import com.danbam.mobile.ui.main.intro.IntroScreen
-import com.danbam.mobile.ui.main.main.MainScreen
+import com.danbam.indistraw.feature.mobile.main.intro.IntroScreen
+import com.danbam.indistraw.feature.mobile.main.main.MainScreen
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
import com.google.accompanist.navigation.animation.composable
-sealed class MainNavigationItem(val route: String) {
- object Intro : MainNavigationItem("intro")
- object Main : MainNavigationItem("main")
-}
-
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.mainGraph(navController: NavHostController) {
composable(route = MainNavigationItem.Intro.route) {
diff --git a/feature/mobile/movie/.gitignore b/feature/mobile/movie/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/mobile/movie/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/mobile/movie/build.gradle.kts b/feature/mobile/movie/build.gradle.kts
new file mode 100644
index 00000000..2a96011e
--- /dev/null
+++ b/feature/mobile/movie/build.gradle.kts
@@ -0,0 +1,11 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.mobile.movie"
+}
+
+dependencies {
+ implementation(project(":feature:mobile:navigation"))
+}
\ No newline at end of file
diff --git a/feature/mobile/movie/src/main/AndroidManifest.xml b/feature/mobile/movie/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/mobile/movie/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllContract.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllContract.kt
similarity index 58%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllContract.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllContract.kt
index 16756c58..bd7c96de 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllContract.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllContract.kt
@@ -1,7 +1,7 @@
-package com.danbam.mobile.ui.movie.all
+package com.danbam.indistraw.feature.mobile.movie.all
import androidx.paging.PagingData
-import com.danbam.domain.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
import kotlinx.coroutines.flow.Flow
data class MovieAllState(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllScreen.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllScreen.kt
similarity index 82%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllScreen.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllScreen.kt
index ca878b8e..3d4e9209 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllScreen.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.all
+package com.danbam.indistraw.feature.mobile.movie.all
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Spacer
@@ -20,13 +20,13 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import androidx.paging.LoadState
import androidx.paging.compose.collectAsLazyPagingItems
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawGenreList
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.MovieGenre
-import com.danbam.design_system.component.MovieItem
-import com.danbam.mobile.ui.movie.navigation.MovieDeepLinkKey
-import com.danbam.mobile.ui.movie.navigation.MovieNavigationItem
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawGenreList
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.MovieGenre
+import com.danbam.indistraw.core.design_system.component.MovieItem
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
@Composable
fun MovieAllScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllViewModel.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllViewModel.kt
similarity index 81%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllViewModel.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllViewModel.kt
index 40cf0052..5f7555d6 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/all/MovieAllViewModel.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/all/MovieAllViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.mobile.ui.movie.all
+package com.danbam.indistraw.feature.mobile.movie.all
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.design_system.component.MovieGenre
-import com.danbam.domain.usecase.movie.MovieListUseCase
+import com.danbam.indistraw.core.design_system.component.MovieGenre
+import com.danbam.indistraw.core.domain.usecase.movie.MovieListUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailContract.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailContract.kt
similarity index 70%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailContract.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailContract.kt
index 4a970f13..6e93db0f 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailContract.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailContract.kt
@@ -1,7 +1,8 @@
-package com.danbam.mobile.ui.movie.detail
+package com.danbam.indistraw.feature.mobile.movie.detail
+
+import com.danbam.indistraw.core.entity.movie.MovieDetailEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
-import com.danbam.domain.entity.movie.MovieDetailEntity
-import com.danbam.domain.entity.movie.MovieEntity
data class MovieDetailState(
val movieDetailInfo: MovieDetailEntity = MovieDetailEntity(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailScreen.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailScreen.kt
similarity index 86%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailScreen.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailScreen.kt
index 48e645b7..c31ef973 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailScreen.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.detail
+package com.danbam.indistraw.feature.mobile.movie.detail
import android.media.MediaMetadataRetriever
import android.view.WindowManager
@@ -31,26 +31,26 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import coil.compose.AsyncImage
-import com.danbam.design_system.BuildConfig
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ButtonMedium
-import com.danbam.design_system.component.FindPasswordMedium
-import com.danbam.design_system.component.ImageButton
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.Shape
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.util.RemoveOverScrollLazyRow
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.R
-import com.danbam.domain.entity.movie.MoviePeopleEntity
-import com.danbam.mobile.ui.movie.navigation.MovieDeepLinkKey
-import com.danbam.mobile.ui.movie.navigation.MovieNavigationItem
-import com.danbam.mobile.util.android.getActivity
+import com.danbam.indistraw.core.design_system.BuildConfig
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ButtonMedium
+import com.danbam.indistraw.core.design_system.component.FindPasswordMedium
+import com.danbam.indistraw.core.design_system.component.ImageButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.Shape
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyRow
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleEntity
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
@OptIn(ExperimentalMaterialApi::class)
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailViewModel.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailViewModel.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailViewModel.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailViewModel.kt
index 6702bb9f..81a5d760 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/detail/MovieDetailViewModel.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/detail/MovieDetailViewModel.kt
@@ -1,10 +1,10 @@
-package com.danbam.mobile.ui.movie.detail
+package com.danbam.indistraw.feature.mobile.movie.detail
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.movie.MovieDetailUseCase
-import com.danbam.domain.usecase.movie.MovieHistoryUseCase
-import com.danbam.domain.usecase.movie.MoviePeopleDetailUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieDetailUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieHistoryUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MoviePeopleDetailUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/AddActorScreen.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/AddActorScreen.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/make/AddActorScreen.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/AddActorScreen.kt
index 6c9020da..facd1170 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/AddActorScreen.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/AddActorScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.make
+package com.danbam.indistraw.feature.mobile.movie.make
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Spacer
@@ -18,21 +18,21 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.AddPeopleList
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.R
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.ui.main.navigation.MainNavigationItem
-import com.danbam.mobile.ui.movie.navigation.ActorType
-import com.danbam.mobile.ui.movie.navigation.MovieDeepLinkKey
-import com.danbam.mobile.ui.movie.navigation.MovieNavigationItem
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.AddPeopleList
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.movie.ActorType
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
sealed class AddPeopleType {
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/MakeMovieContract.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/MakeMovieContract.kt
similarity index 82%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/make/MakeMovieContract.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/MakeMovieContract.kt
index 928a7f46..290be75f 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/MakeMovieContract.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/MakeMovieContract.kt
@@ -1,6 +1,6 @@
-package com.danbam.mobile.ui.movie.make
+package com.danbam.indistraw.feature.mobile.movie.make
-import com.danbam.domain.entity.movie.MoviePeopleEntity
+import com.danbam.indistraw.core.entity.movie.MoviePeopleEntity
data class MakeMovieState(
val thumbnailUrl: String? = null,
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/MakeMovieViewModel.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/MakeMovieViewModel.kt
similarity index 89%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/make/MakeMovieViewModel.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/MakeMovieViewModel.kt
index 8c6daa2f..12c2b90b 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/MakeMovieViewModel.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/MakeMovieViewModel.kt
@@ -1,16 +1,16 @@
-package com.danbam.mobile.ui.movie.make
+package com.danbam.indistraw.feature.mobile.movie.make
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.entity.movie.MoviePeopleEntity
-import com.danbam.domain.param.movie.MovieCreateParam
-import com.danbam.domain.param.movie.MoviePeopleParam
-import com.danbam.domain.usecase.file.SendFileUseCase
-import com.danbam.domain.usecase.movie.AddMoviePeopleUseCase
-import com.danbam.domain.usecase.movie.MovieCreateUseCase
-import com.danbam.domain.usecase.movie.SearchMoviePeopleUseCase
-import com.danbam.mobile.ui.movie.navigation.ActorType
-import com.danbam.mobile.util.android.errorHandling
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.entity.movie.MoviePeopleEntity
+import com.danbam.indistraw.core.param.movie.MovieCreateParam
+import com.danbam.indistraw.core.param.movie.MoviePeopleParam
+import com.danbam.indistraw.core.domain.usecase.file.SendFileUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.AddMoviePeopleUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieCreateUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.SearchMoviePeopleUseCase
+import com.danbam.indistraw.feature.mobile.navigation.movie.ActorType
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/SearchActorScreen.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/SearchActorScreen.kt
similarity index 79%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/make/SearchActorScreen.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/SearchActorScreen.kt
index 18456628..ede46384 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/SearchActorScreen.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/SearchActorScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.make
+package com.danbam.indistraw.feature.mobile.movie.make
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
@@ -26,19 +26,19 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.DialogMedium
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawSearchTextField
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.DialogMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawSearchTextField
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(ExperimentalComposeUiApi::class, InternalCoroutinesApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/WriteActorScreen.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/WriteActorScreen.kt
similarity index 79%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/make/WriteActorScreen.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/WriteActorScreen.kt
index 1f7324ec..8fa7e8d5 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/WriteActorScreen.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/WriteActorScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.make
+package com.danbam.indistraw.feature.mobile.movie.make
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
@@ -17,16 +17,16 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.SelectProfileButton
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.R
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.parser.toFile
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.SelectProfileButton
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.util.android.toFile
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/WriteIntroduceScreen.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/WriteIntroduceScreen.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/make/WriteIntroduceScreen.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/WriteIntroduceScreen.kt
index 0a9303d3..8086c5c5 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/make/WriteIntroduceScreen.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/make/WriteIntroduceScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.make
+package com.danbam.indistraw.feature.mobile.movie.make
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -22,30 +22,28 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.AddImageList
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.IndiStrawToggle
-import com.danbam.design_system.component.SelectImageButton
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.LaunchType
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.util.rememberLauncher
-import com.danbam.design_system.util.typedLaunch
-import com.danbam.mobile.ui.movie.navigation.MovieNavigationItem
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.parser.toFile
-import kotlinx.coroutines.Dispatchers
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.AddImageList
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.IndiStrawToggle
+import com.danbam.indistraw.core.design_system.component.SelectImageButton
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.android.toFile
+import com.danbam.indistraw.core.design_system.util.androidx.LaunchType
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.rememberLauncher
+import com.danbam.indistraw.core.design_system.util.androidx.typedLaunch
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
-import kotlinx.coroutines.withContext
@OptIn(InternalCoroutinesApi::class)
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/navigation/MovieGraph.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/navigation/MovieGraph.kt
similarity index 75%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/navigation/MovieGraph.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/navigation/MovieGraph.kt
index debd510d..271680f2 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/navigation/MovieGraph.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/navigation/MovieGraph.kt
@@ -1,44 +1,22 @@
-package com.danbam.mobile.ui.movie.navigation
+package com.danbam.indistraw.feature.mobile.movie.navigation
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.navArgument
-import com.danbam.mobile.ui.movie.all.MovieAllScreen
-import com.danbam.mobile.ui.movie.detail.MovieDetailScreen
-import com.danbam.mobile.ui.movie.make.AddActorScreen
-import com.danbam.mobile.ui.movie.make.MakeMovieViewModel
-import com.danbam.mobile.ui.movie.make.SearchActorScreen
-import com.danbam.mobile.ui.movie.make.WriteActorScreen
-import com.danbam.mobile.ui.movie.make.WriteIntroduceScreen
-import com.danbam.mobile.ui.movie.play.MoviePlayScreen
+import com.danbam.indistraw.feature.mobile.movie.all.MovieAllScreen
+import com.danbam.indistraw.feature.mobile.movie.detail.MovieDetailScreen
+import com.danbam.indistraw.feature.mobile.movie.make.AddActorScreen
+import com.danbam.indistraw.feature.mobile.movie.make.SearchActorScreen
+import com.danbam.indistraw.feature.mobile.movie.make.WriteActorScreen
+import com.danbam.indistraw.feature.mobile.movie.make.WriteIntroduceScreen
+import com.danbam.indistraw.feature.mobile.movie.play.MoviePlayScreen
+import com.danbam.indistraw.feature.mobile.navigation.movie.ActorType
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
import com.google.accompanist.navigation.animation.composable
-sealed class MovieNavigationItem(val route: String) {
- object Detail : MovieNavigationItem("movieDetail")
- object Play : MovieNavigationItem("moviePlay")
- object All : MovieNavigationItem("movieAll")
- object WriteIntroduce : MovieNavigationItem("movieWriteIntroduce")
- object AddActor : MovieNavigationItem("movieAddActor")
- object SearchActor : MovieNavigationItem("movieSearchActor")
- object WriteActor : MovieNavigationItem("movieWriteActor")
-}
-
-object MovieDeepLinkKey {
- const val ADD_ACTOR_TYPE = "addActorType"
- const val MOVIE_NAME = "movieName"
- const val MOVIE_INDEX = "movieIndex"
- const val MOVIE_URL = "movieUrl"
- const val MOVIE_POSITION = "moviePosition"
- const val IS_VERTICAL = "isVertical"
-}
-
-object ActorType {
- const val ACTOR = "actor"
- const val DIRECTOR = "director"
-}
-
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.movieGraph(
navController: NavHostController,
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayContract.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayContract.kt
similarity index 62%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayContract.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayContract.kt
index bf044bff..a7ceb4cb 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayContract.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.play
+package com.danbam.indistraw.feature.mobile.movie.play
sealed class MoviePlaySideEffect {
object SuccessSaveHistory: MoviePlaySideEffect()
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayScreen.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayScreen.kt
similarity index 72%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayScreen.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayScreen.kt
index 1a0618eb..2f670485 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayScreen.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.movie.play
+package com.danbam.indistraw.feature.mobile.movie.play
import android.app.PictureInPictureParams
import android.content.pm.ActivityInfo
@@ -6,12 +6,13 @@ import android.util.Rational
import android.view.WindowManager
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
+import androidx.compose.ui.platform.LocalContext
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.IndiStrawPlayer
-import com.danbam.mobile.util.android.getActivity
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.LockScreenOrientation
+import com.danbam.indistraw.core.design_system.component.IndiStrawPlayer
+import com.danbam.indistraw.core.design_system.util.android.findActivity
+import com.danbam.indistraw.core.design_system.util.androidx.getActivity
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class)
@@ -29,6 +30,7 @@ fun MoviePlayScreen(
val state = container.stateFlow.collectAsState().value
val sideEffect = container.sideEffectFlow
val activity = getActivity()
+ val context = LocalContext.current
activity.window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
@@ -40,13 +42,12 @@ fun MoviePlayScreen(
}
}
- if (!isVertical) {
- LockScreenOrientation(orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
- }
IndiStrawPlayer(
movieUrl = movieUrl,
movieName = movieName,
position = position,
+ isMobile = true,
+ isVertical = isVertical,
onPIP = {
activity.enterPictureInPictureMode(
PictureInPictureParams.Builder()
@@ -55,6 +56,7 @@ fun MoviePlayScreen(
)
},
onDispose = {
+ context.findActivity()?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
moviePlayViewModel.addMovieHistory(movieIdx = movieIdx, it / 1000F)
})
}
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayViewModel.kt b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayViewModel.kt
similarity index 84%
rename from tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayViewModel.kt
rename to feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayViewModel.kt
index c37aa048..18bf9fa3 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayViewModel.kt
+++ b/feature/mobile/movie/src/main/kotlin/com/danbam/indistraw/feature/mobile/movie/play/MoviePlayViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.tv.ui.movie.play
+package com.danbam.indistraw.feature.mobile.movie.play
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.movie.MovieHistoryParam
-import com.danbam.domain.usecase.movie.AddMovieHistoryUseCase
+import com.danbam.indistraw.core.param.movie.MovieHistoryParam
+import com.danbam.indistraw.core.domain.usecase.movie.AddMovieHistoryUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/mobile/navigation/.gitignore b/feature/mobile/navigation/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/mobile/navigation/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/mobile/navigation/build.gradle.kts b/feature/mobile/navigation/build.gradle.kts
new file mode 100644
index 00000000..adf3fb9a
--- /dev/null
+++ b/feature/mobile/navigation/build.gradle.kts
@@ -0,0 +1,7 @@
+plugins {
+ id("indistraw-core")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.mobile.navigation"
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/AndroidManifest.xml b/feature/mobile/navigation/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/mobile/navigation/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthDeepLinkKey.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthDeepLinkKey.kt
new file mode 100644
index 00000000..7edd7dfb
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthDeepLinkKey.kt
@@ -0,0 +1,7 @@
+package com.danbam.indistraw.feature.mobile.navigation.auth
+
+object AuthDeepLinkKey {
+ const val CERTIFICATE_TYPE = "certificateType"
+ const val IS_FIND_PASSWORD = "isFindPassword"
+ const val PHONE_NUMBER = "phoneNumber"
+}
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthNavigationItem.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthNavigationItem.kt
new file mode 100644
index 00000000..67fee973
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthNavigationItem.kt
@@ -0,0 +1,12 @@
+package com.danbam.indistraw.feature.mobile.navigation.auth
+
+sealed class AuthNavigationItem(val route: String) {
+ object Login : AuthNavigationItem("login")
+ object Certificate : AuthNavigationItem("certificate")
+ object FindId : AuthNavigationItem("findId")
+ object FindPassword : AuthNavigationItem("findPassword")
+ object SetName : AuthNavigationItem("setName")
+ object SetProfile : AuthNavigationItem("setProfile")
+ object SetId : AuthNavigationItem("setId")
+ object SetPassword : AuthNavigationItem("setPassword")
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthType.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthType.kt
new file mode 100644
index 00000000..eefd001a
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/auth/AuthType.kt
@@ -0,0 +1,9 @@
+package com.danbam.indistraw.feature.mobile.navigation.auth
+
+object CertificateType {
+ const val SIGN_UP = "signUp"
+ const val FIND_ID = "findId"
+ const val FIND_PASSWORD = "findPassword"
+ const val CHANGE_PASSWORD = "changePassword"
+ const val CHANGE_PHONE_NUMBER = "changePhoneNumber"
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/funding/FundingDeepLinkKey.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/funding/FundingDeepLinkKey.kt
new file mode 100644
index 00000000..47165ebf
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/funding/FundingDeepLinkKey.kt
@@ -0,0 +1,9 @@
+package com.danbam.indistraw.feature.mobile.navigation.funding
+
+object FundingDeepLinkKey {
+ const val FUNDING_INDEX = "fundingIndex"
+ const val REWARD_INDEX = "rewardIndex"
+ const val REWARD_TITLE = "rewardTitle"
+ const val REWARD_DESCRIPTION = "rewardDescription"
+ const val REWARD_PRICE = "rewardPrice"
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/funding/FundingNavigationItem.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/funding/FundingNavigationItem.kt
new file mode 100644
index 00000000..e5cc9c27
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/funding/FundingNavigationItem.kt
@@ -0,0 +1,9 @@
+package com.danbam.indistraw.feature.mobile.navigation.funding
+
+sealed class FundingNavigationItem(val route: String) {
+ object Make : FundingNavigationItem("fundingMake")
+ object Detail : FundingNavigationItem("fundingDetail")
+ object All : FundingNavigationItem("fundingAll")
+ object FundingReward : FundingNavigationItem("fundingReward")
+ object MyDetail : FundingNavigationItem("fundingMyDetail")
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/main/MainNavigationItem.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/main/MainNavigationItem.kt
new file mode 100644
index 00000000..ae42b293
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/main/MainNavigationItem.kt
@@ -0,0 +1,6 @@
+package com.danbam.indistraw.feature.mobile.navigation.main
+
+sealed class MainNavigationItem(val route: String) {
+ object Intro : MainNavigationItem("intro")
+ object Main : MainNavigationItem("main")
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieDeepLinkKey.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieDeepLinkKey.kt
new file mode 100644
index 00000000..5b5400af
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieDeepLinkKey.kt
@@ -0,0 +1,10 @@
+package com.danbam.indistraw.feature.mobile.navigation.movie
+
+object MovieDeepLinkKey {
+ const val ADD_ACTOR_TYPE = "addActorType"
+ const val MOVIE_NAME = "movieName"
+ const val MOVIE_INDEX = "movieIndex"
+ const val MOVIE_URL = "movieUrl"
+ const val MOVIE_POSITION = "moviePosition"
+ const val IS_VERTICAL = "isVertical"
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieNavigationItem.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieNavigationItem.kt
new file mode 100644
index 00000000..979578eb
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieNavigationItem.kt
@@ -0,0 +1,11 @@
+package com.danbam.indistraw.feature.mobile.navigation.movie
+
+sealed class MovieNavigationItem(val route: String) {
+ object Detail : MovieNavigationItem("movieDetail")
+ object Play : MovieNavigationItem("moviePlay")
+ object All : MovieNavigationItem("movieAll")
+ object WriteIntroduce : MovieNavigationItem("movieWriteIntroduce")
+ object AddActor : MovieNavigationItem("movieAddActor")
+ object SearchActor : MovieNavigationItem("movieSearchActor")
+ object WriteActor : MovieNavigationItem("movieWriteActor")
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieType.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieType.kt
new file mode 100644
index 00000000..aa919a3d
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/movie/MovieType.kt
@@ -0,0 +1,6 @@
+package com.danbam.indistraw.feature.mobile.navigation.movie
+
+object ActorType {
+ const val ACTOR = "actor"
+ const val DIRECTOR = "director"
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/profile/ProfileDeepLinkKey.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/profile/ProfileDeepLinkKey.kt
new file mode 100644
index 00000000..694a32ca
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/profile/ProfileDeepLinkKey.kt
@@ -0,0 +1,6 @@
+package com.danbam.indistraw.feature.mobile.navigation.profile
+
+object ProfileDeepLinkKey {
+ const val ADDRESS = "address"
+ const val ZIP_CODE = "zipCode"
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/profile/ProfileNavigationItem.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/profile/ProfileNavigationItem.kt
new file mode 100644
index 00000000..f59028a6
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/profile/ProfileNavigationItem.kt
@@ -0,0 +1,10 @@
+package com.danbam.indistraw.feature.mobile.navigation.profile
+
+sealed class ProfileNavigationItem(val route: String) {
+ object Profile : ProfileNavigationItem("profile")
+ object Setting : ProfileNavigationItem("setting")
+ object EditProfile : ProfileNavigationItem("editProfile")
+ object FindAddress : ProfileNavigationItem("findAddress")
+ object DetailAddress : ProfileNavigationItem("detailAddress")
+ object QRLogin : ProfileNavigationItem("qrLogin")
+}
\ No newline at end of file
diff --git a/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/search/SearchNavigationItem.kt b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/search/SearchNavigationItem.kt
new file mode 100644
index 00000000..43c6adbd
--- /dev/null
+++ b/feature/mobile/navigation/src/main/kotlin/com/danbam/indistraw/feature/mobile/navigation/search/SearchNavigationItem.kt
@@ -0,0 +1,5 @@
+package com.danbam.indistraw.feature.mobile.navigation.search
+
+sealed class SearchNavigationItem(val route: String) {
+ object Search : SearchNavigationItem("search")
+}
\ No newline at end of file
diff --git a/feature/mobile/profile/.gitignore b/feature/mobile/profile/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/mobile/profile/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/mobile/profile/build.gradle.kts b/feature/mobile/profile/build.gradle.kts
new file mode 100644
index 00000000..e4ab6db0
--- /dev/null
+++ b/feature/mobile/profile/build.gradle.kts
@@ -0,0 +1,20 @@
+import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
+
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.mobile.profile"
+ defaultConfig {
+ buildConfigField(
+ "String",
+ "QR_URL",
+ gradleLocalProperties(rootDir).getProperty("QR_URL")
+ )
+ }
+}
+
+dependencies {
+ implementation(project(":feature:mobile:navigation"))
+}
\ No newline at end of file
diff --git a/feature/mobile/profile/src/main/AndroidManifest.xml b/feature/mobile/profile/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/mobile/profile/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressContract.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressContract.kt
similarity index 71%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressContract.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressContract.kt
index 2f7de38d..3b52b248 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressContract.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.detail_address
+package com.danbam.indistraw.feature.mobile.profile.detail_address
sealed class DetailAddressSideEffect {
object EmptyDetailAddressException : DetailAddressSideEffect()
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressScreen.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressScreen.kt
similarity index 81%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressScreen.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressScreen.kt
index 6b6c6e56..347d6a95 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressScreen.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.detail_address
+package com.danbam.indistraw.feature.mobile.profile.detail_address
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
@@ -19,17 +19,17 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.R
-import com.danbam.mobile.ui.profile.navigation.ProfileNavigationItem
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.view.popBackStack
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class, ExperimentalComposeUiApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressViewModel.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressViewModel.kt
similarity index 86%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressViewModel.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressViewModel.kt
index 608d0520..0a7dfd8f 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/detail_address/DetailAddressViewModel.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/detail_address/DetailAddressViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.mobile.ui.profile.detail_address
+package com.danbam.indistraw.feature.mobile.profile.detail_address
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.auth.ChangeAddressParam
-import com.danbam.domain.usecase.account.ChangeAddressUseCase
+import com.danbam.indistraw.core.param.auth.ChangeAddressParam
+import com.danbam.indistraw.core.domain.usecase.account.ChangeAddressUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileContract.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileContract.kt
similarity index 85%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileContract.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileContract.kt
index e1739432..9642d54d 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileContract.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.edit_profile
+package com.danbam.indistraw.feature.mobile.profile.edit_profile
data class EditProfileState(
val profileUrl: String? = null,
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileScreen.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileScreen.kt
similarity index 78%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileScreen.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileScreen.kt
index 3592c234..b3cd27c9 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileScreen.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.edit_profile
+package com.danbam.indistraw.feature.mobile.profile.edit_profile
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
@@ -23,23 +23,23 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.R
-import com.danbam.design_system.component.FindPasswordMedium
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTextField
-import com.danbam.design_system.component.SelectProfileButton
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.ui.auth.navigation.AuthDeepLinkKey
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.auth.navigation.CertificateType
-import com.danbam.mobile.ui.profile.navigation.ProfileNavigationItem
-import com.danbam.mobile.util.android.observeWithLifecycle
-import com.danbam.mobile.util.parser.toFile
-import com.danbam.mobile.util.view.popBackStack
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.FindPasswordMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTextField
+import com.danbam.indistraw.core.design_system.component.SelectProfileButton
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.android.toFile
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.auth.CertificateType
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(ExperimentalComposeUiApi::class, InternalCoroutinesApi::class)
@@ -119,9 +119,7 @@ fun EditProfileScreen(
tailingIcon = {
FindPasswordMedium(
modifier = Modifier.indiStrawClickable {
- navController.navigate(
- AuthNavigationItem.Certificate.route + AuthDeepLinkKey.CERTIFICATE_TYPE + CertificateType.CHANGE_PHONE_NUMBER
- )
+ navController.navigate(AuthNavigationItem.Certificate.route + AuthDeepLinkKey.CERTIFICATE_TYPE + CertificateType.CHANGE_PHONE_NUMBER)
},
text = stringResource(id = R.string.change),
color = IndiStrawTheme.colors.skyBlue
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileVieModel.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileVieModel.kt
similarity index 83%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileVieModel.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileVieModel.kt
index 37104459..024c9473 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/edit_profile/EditProfileVieModel.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/edit_profile/EditProfileVieModel.kt
@@ -1,12 +1,12 @@
-package com.danbam.mobile.ui.profile.edit_profile
+package com.danbam.indistraw.feature.mobile.profile.edit_profile
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.auth.EditProfileParam
-import com.danbam.domain.usecase.account.EditProfileUseCase
-import com.danbam.domain.usecase.account.GetProfileUseCase
-import com.danbam.domain.usecase.file.SendFileUseCase
-import com.danbam.mobile.util.android.errorHandling
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.param.auth.EditProfileParam
+import com.danbam.indistraw.core.domain.usecase.account.EditProfileUseCase
+import com.danbam.indistraw.core.domain.usecase.account.GetProfileUseCase
+import com.danbam.indistraw.core.domain.usecase.file.SendFileUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressContact.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressContact.kt
similarity index 61%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressContact.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressContact.kt
index 72430305..f40cb2b1 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressContact.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressContact.kt
@@ -1,7 +1,7 @@
-package com.danbam.mobile.ui.profile.find_address
+package com.danbam.indistraw.feature.mobile.profile.find_address
import androidx.paging.PagingData
-import com.danbam.domain.entity.auth.AddressEntity
+import com.danbam.indistraw.core.domain.entity.auth.AddressEntity
import kotlinx.coroutines.flow.Flow
data class FindAddressState(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressScreen.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressScreen.kt
similarity index 82%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressScreen.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressScreen.kt
index c0c2a82e..dab38524 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressScreen.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressScreen.kt
@@ -1,6 +1,5 @@
-package com.danbam.mobile.ui.profile.find_address
+package com.danbam.indistraw.feature.mobile.profile.find_address
-import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
@@ -27,20 +26,20 @@ import androidx.navigation.NavController
import androidx.paging.LoadState
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemsIndexed
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawSearchTextField
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.DialogMedium
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.ui.profile.navigation.ProfileDeepLinkKey
-import com.danbam.mobile.ui.profile.navigation.ProfileNavigationItem
-import com.danbam.mobile.util.view.popBackStack
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawSearchTextField
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.DialogMedium
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
@OptIn(ExperimentalComposeUiApi::class)
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressViewModel.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressViewModel.kt
similarity index 86%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressViewModel.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressViewModel.kt
index a36bad58..657d3925 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/find_address/FindAddressViewModel.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/find_address/FindAddressViewModel.kt
@@ -1,8 +1,8 @@
-package com.danbam.mobile.ui.profile.find_address
+package com.danbam.indistraw.feature.mobile.profile.find_address
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.address.GetAddressUseCase
+import com.danbam.indistraw.core.domain.usecase.address.GetAddressUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/navigation/ProfileGraph.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/navigation/ProfileGraph.kt
similarity index 65%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/navigation/ProfileGraph.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/navigation/ProfileGraph.kt
index bda89659..86ab54d7 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/navigation/ProfileGraph.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/navigation/ProfileGraph.kt
@@ -1,32 +1,20 @@
-package com.danbam.mobile.ui.profile.navigation
+package com.danbam.indistraw.feature.mobile.profile.navigation
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.navArgument
-import com.danbam.mobile.ui.profile.detail_address.DetailAddressScreen
-import com.danbam.mobile.ui.profile.edit_profile.EditProfileScreen
-import com.danbam.mobile.ui.profile.find_address.FindAddressScreen
-import com.danbam.mobile.ui.profile.profile.ProfileScreen
-import com.danbam.mobile.ui.profile.qr_login.QRLoginScreen
-import com.danbam.mobile.ui.profile.setting.SettingScreen
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
+import com.danbam.indistraw.feature.mobile.profile.detail_address.DetailAddressScreen
+import com.danbam.indistraw.feature.mobile.profile.edit_profile.EditProfileScreen
+import com.danbam.indistraw.feature.mobile.profile.find_address.FindAddressScreen
+import com.danbam.indistraw.feature.mobile.profile.profile.ProfileScreen
+import com.danbam.indistraw.feature.mobile.profile.qr_login.QRLoginScreen
+import com.danbam.indistraw.feature.mobile.profile.setting.SettingScreen
import com.google.accompanist.navigation.animation.composable
-sealed class ProfileNavigationItem(val route: String) {
- object Profile : ProfileNavigationItem("profile")
- object Setting : ProfileNavigationItem("setting")
- object EditProfile : ProfileNavigationItem("editProfile")
- object FindAddress : ProfileNavigationItem("findAddress")
- object DetailAddress : ProfileNavigationItem("detailAddress")
- object QRLogin : ProfileNavigationItem("qrLogin")
-}
-
-object ProfileDeepLinkKey {
- const val ADDRESS = "address"
- const val ZIP_CODE = "zipCode"
-}
-
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.profileGraph(
navController: NavHostController,
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileContract.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileContract.kt
similarity index 60%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileContract.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileContract.kt
index 92dea652..45416851 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileContract.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileContract.kt
@@ -1,7 +1,7 @@
-package com.danbam.mobile.ui.profile.profile
+package com.danbam.indistraw.feature.mobile.profile.profile
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
data class ProfileState(
val id: String = "",
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileScreen.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileScreen.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileScreen.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileScreen.kt
index 3099577b..87dc47d4 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileScreen.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.profile
+package com.danbam.indistraw.feature.mobile.profile.profile
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -24,24 +24,24 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawTab
-import com.danbam.design_system.R
-import com.danbam.design_system.component.FundingTab
-import com.danbam.design_system.component.IndiStrawColumnTab
-import com.danbam.design_system.component.IndiStrawRowTab
-import com.danbam.design_system.component.MovieTab
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.mobile.ui.funding.navigation.FundingDeepLinkKey
-import com.danbam.mobile.ui.funding.navigation.FundingNavigationItem
-import com.danbam.mobile.ui.movie.navigation.MovieDeepLinkKey
-import com.danbam.mobile.ui.movie.navigation.MovieNavigationItem
-import com.danbam.mobile.ui.profile.navigation.ProfileNavigationItem
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawTab
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.FundingTab
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnTab
+import com.danbam.indistraw.core.design_system.component.IndiStrawRowTab
+import com.danbam.indistraw.core.design_system.component.MovieTab
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
@Composable
fun ProfileScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileViewModel.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileViewModel.kt
similarity index 81%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileViewModel.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileViewModel.kt
index bd8a95fc..665c95b4 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/profile/ProfileViewModel.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/profile/ProfileViewModel.kt
@@ -1,12 +1,12 @@
-package com.danbam.mobile.ui.profile.profile
+package com.danbam.indistraw.feature.mobile.profile.profile
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.entity.movie.MovieEntity
-import com.danbam.domain.usecase.account.GetProfileUseCase
-import com.danbam.domain.usecase.crowd_funding.FundingMyUseCase
-import com.danbam.domain.usecase.funding.FundingListUseCase
-import com.danbam.domain.usecase.movie.MovieHistoryListUseCase
+import com.danbam.indistraw.core.entity.movie.MovieEntity
+import com.danbam.indistraw.core.domain.usecase.account.GetProfileUseCase
+import com.danbam.indistraw.core.domain.usecase.crowd_funding.FundingMyUseCase
+import com.danbam.indistraw.core.domain.usecase.funding.FundingListUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieHistoryListUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginContract.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginContract.kt
new file mode 100644
index 00000000..ed2a43f3
--- /dev/null
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginContract.kt
@@ -0,0 +1,2 @@
+package com.danbam.indistraw.feature.mobile.profile.qr_login
+
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginScreen.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginScreen.kt
similarity index 76%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginScreen.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginScreen.kt
index 109d51ef..d2d83e79 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginScreen.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.qr_login
+package com.danbam.indistraw.feature.mobile.profile.qr_login
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Spacer
@@ -18,16 +18,16 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.QRScanner
-import com.danbam.design_system.R
-import com.danbam.design_system.component.IndiStrawButton
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.mobile.BuildConfig
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.QRScanner
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.IndiStrawButton
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.feature.mobile.profile.BuildConfig
import java.util.UUID
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginViewModel.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginViewModel.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginViewModel.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginViewModel.kt
index 0d03cedb..7d50a06b 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginViewModel.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/qr_login/QRLoginViewModel.kt
@@ -1,8 +1,8 @@
-package com.danbam.mobile.ui.profile.qr_login
+package com.danbam.indistraw.feature.mobile.profile.qr_login
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.qr_code.CheckQRCodeUseCase
+import com.danbam.indistraw.core.domain.usecase.qr_code.CheckQRCodeUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingContract.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingContract.kt
similarity index 68%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingContract.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingContract.kt
index 4f2b40e3..d4d6b54b 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingContract.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.setting
+package com.danbam.indistraw.feature.mobile.profile.setting
sealed class SettingSideEffect {
object SuccessLogout : SettingSideEffect()
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingScreen.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingScreen.kt
similarity index 82%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingScreen.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingScreen.kt
index f9685850..2b3cac07 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingScreen.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.profile.setting
+package com.danbam.indistraw.feature.mobile.profile.setting
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
@@ -24,26 +24,26 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ButtonMedium
-import com.danbam.design_system.component.IndiStrawBottomSheetLayout
-import com.danbam.design_system.component.IndiStrawDialog
-import com.danbam.design_system.util.Language
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.design_system.util.changeLanguage
-import com.danbam.mobile.ui.auth.navigation.AuthDeepLinkKey
-import com.danbam.mobile.ui.auth.navigation.AuthNavigationItem
-import com.danbam.mobile.ui.auth.navigation.CertificateType
-import com.danbam.mobile.ui.main.navigation.MainNavigationItem
-import com.danbam.mobile.ui.profile.navigation.ProfileNavigationItem
-import com.danbam.mobile.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ButtonMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawBottomSheetLayout
+import com.danbam.indistraw.core.design_system.component.IndiStrawDialog
+import com.danbam.indistraw.core.design_system.util.android.Language
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.core.design_system.util.android.changeLanguage
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.auth.AuthNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.auth.CertificateType
+import com.danbam.indistraw.feature.mobile.navigation.main.MainNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.profile.ProfileNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(ExperimentalMaterialApi::class, InternalCoroutinesApi::class)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingViewModel.kt b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingViewModel.kt
similarity index 78%
rename from mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingViewModel.kt
rename to feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingViewModel.kt
index bc4a4d50..b5c6b299 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/setting/SettingViewModel.kt
+++ b/feature/mobile/profile/src/main/kotlin/com/danbam/indistraw/feature/mobile/profile/setting/SettingViewModel.kt
@@ -1,19 +1,17 @@
-package com.danbam.mobile.ui.profile.setting
+package com.danbam.indistraw.feature.mobile.profile.setting
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.account.WithdrawUseCase
-import com.danbam.domain.usecase.auth.ClearTokenUseCase
-import com.danbam.domain.usecase.auth.LogoutUseCase
-import com.danbam.domain.usecase.system.FetchLanguageUseCase
-import com.danbam.domain.usecase.system.SaveLanguageUseCase
-import com.danbam.mobile.util.android.errorHandling
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.domain.usecase.account.WithdrawUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.ClearTokenUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.LogoutUseCase
+import com.danbam.indistraw.core.domain.usecase.system.SaveLanguageUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
import org.orbitmvi.orbit.syntax.simple.intent
import org.orbitmvi.orbit.syntax.simple.postSideEffect
-import org.orbitmvi.orbit.syntax.simple.reduce
import org.orbitmvi.orbit.viewmodel.container
import javax.inject.Inject
diff --git a/feature/mobile/search/.gitignore b/feature/mobile/search/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/mobile/search/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/mobile/search/build.gradle.kts b/feature/mobile/search/build.gradle.kts
new file mode 100644
index 00000000..6714b9a0
--- /dev/null
+++ b/feature/mobile/search/build.gradle.kts
@@ -0,0 +1,11 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.mobile.search"
+}
+
+dependencies {
+ implementation(project(":feature:mobile:navigation"))
+}
\ No newline at end of file
diff --git a/feature/mobile/search/src/main/AndroidManifest.xml b/feature/mobile/search/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/mobile/search/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/navigation/SearchGraph.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/navigation/SearchGraph.kt
similarity index 67%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/navigation/SearchGraph.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/navigation/SearchGraph.kt
index f32b6c77..7640b2a4 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/navigation/SearchGraph.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/navigation/SearchGraph.kt
@@ -1,15 +1,12 @@
-package com.danbam.mobile.ui.search.navigation
+package com.danbam.indistraw.feature.mobile.search.navigation
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
-import com.danbam.mobile.ui.search.search.SearchScreen
+import com.danbam.indistraw.feature.mobile.navigation.search.SearchNavigationItem
+import com.danbam.indistraw.feature.mobile.search.search.SearchScreen
import com.google.accompanist.navigation.animation.composable
-sealed class SearchNavigationItem(val route: String) {
- object Search : SearchNavigationItem("search")
-}
-
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.searchGraph(navController: NavHostController) {
composable(route = SearchNavigationItem.Search.route) {
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchContract.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchContract.kt
similarity index 54%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchContract.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchContract.kt
index 250360ce..56d856ec 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchContract.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchContract.kt
@@ -1,8 +1,8 @@
-package com.danbam.mobile.ui.search.result_search
+package com.danbam.indistraw.feature.mobile.search.result_search
import androidx.paging.PagingData
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.funding.FundingEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
import kotlinx.coroutines.flow.Flow
data class ResultSearchState(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchScreen.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchScreen.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchScreen.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchScreen.kt
index 56216a3b..b5bbe4e6 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchScreen.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.search.result_search
+package com.danbam.indistraw.feature.mobile.search.result_search
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
@@ -24,17 +24,17 @@ import androidx.navigation.NavController
import androidx.paging.LoadState
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.items
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawTab
-import com.danbam.design_system.R
-import com.danbam.design_system.component.FundingItem
-import com.danbam.design_system.component.MovieItem
-import com.danbam.design_system.component.SearchTab
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.mobile.ui.funding.navigation.FundingDeepLinkKey
-import com.danbam.mobile.ui.funding.navigation.FundingNavigationItem
-import com.danbam.mobile.ui.movie.navigation.MovieDeepLinkKey
-import com.danbam.mobile.ui.movie.navigation.MovieNavigationItem
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawTab
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.FundingItem
+import com.danbam.indistraw.core.design_system.component.MovieItem
+import com.danbam.indistraw.core.design_system.component.SearchTab
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.funding.FundingNavigationItem
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieDeepLinkKey
+import com.danbam.indistraw.feature.mobile.navigation.movie.MovieNavigationItem
@Composable
fun ResultSearchScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchViewModel.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchViewModel.kt
similarity index 82%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchViewModel.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchViewModel.kt
index 2eadfcab..01a4af6e 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/result_search/ResultSearchViewModel.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/result_search/ResultSearchViewModel.kt
@@ -1,10 +1,10 @@
-package com.danbam.mobile.ui.search.result_search
+package com.danbam.indistraw.feature.mobile.search.result_search
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.entity.search.RecentSearchEntity
-import com.danbam.domain.usecase.search.SearchFundingUseCase
-import com.danbam.domain.usecase.search.SearchMovieUseCase
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.domain.usecase.search.SearchFundingUseCase
+import com.danbam.indistraw.core.domain.usecase.search.SearchMovieUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchContract.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchContract.kt
similarity index 80%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchContract.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchContract.kt
index 904b3d26..7ef37cbe 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchContract.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.search.search
+package com.danbam.indistraw.feature.mobile.search.search
sealed class SearchType {
object Start : SearchType()
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchScreen.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchScreen.kt
similarity index 83%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchScreen.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchScreen.kt
index 9ff809a3..c79de195 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchScreen.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.search.search
+package com.danbam.indistraw.feature.mobile.search.search
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
@@ -12,14 +12,14 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.IndiStrawHeader
-import com.danbam.design_system.component.IndiStrawSearchTextField
-import com.danbam.design_system.R
-import com.danbam.mobile.ui.search.result_search.ResultSearchScreen
-import com.danbam.mobile.ui.search.searching.SearchingScreen
-import com.danbam.mobile.ui.search.start_search.StartSearchScreen
-import com.danbam.mobile.util.view.popBackStack
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawHeader
+import com.danbam.indistraw.core.design_system.component.IndiStrawSearchTextField
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.feature.mobile.search.result_search.ResultSearchScreen
+import com.danbam.indistraw.feature.mobile.search.searching.SearchingScreen
+import com.danbam.indistraw.feature.mobile.search.start_search.StartSearchScreen
+import com.danbam.indistraw.core.design_system.util.androidx.popBackStack
@OptIn(ExperimentalComposeUiApi::class)
@Composable
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchViewModel.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchViewModel.kt
similarity index 92%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchViewModel.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchViewModel.kt
index 6e3ce438..5b0369f3 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/search/SearchViewModel.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/search/SearchViewModel.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.search.search
+package com.danbam.indistraw.feature.mobile.search.search
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
diff --git a/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingContract.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingContract.kt
new file mode 100644
index 00000000..25a227a6
--- /dev/null
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingContract.kt
@@ -0,0 +1,5 @@
+package com.danbam.indistraw.feature.mobile.search.searching
+
+data class SearchingState(
+ val relatedSearchPager: List? = null
+)
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingScreen.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingScreen.kt
similarity index 75%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingScreen.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingScreen.kt
index 6952a85b..0c5b808a 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingScreen.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.search.searching
+package com.danbam.indistraw.feature.mobile.search.searching
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
@@ -12,12 +12,12 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@Composable
fun SearchingScreen(
@@ -46,12 +46,12 @@ fun SearchingScreen(
.padding(horizontal = 15.dp)
.indiStrawClickable {
onClickAction()
- onSearch(item.title)
+ onSearch(item)
}
) {
IndiStrawIcon(icon = IndiStrawIconList.Search)
Spacer(modifier = Modifier.width(14.dp))
- ExampleTextMedium(text = item.title)
+ ExampleTextMedium(text = item)
Spacer(modifier = Modifier.weight(1F))
IndiStrawIcon(icon = IndiStrawIconList.FastSearch)
}
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingViewModel.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingViewModel.kt
similarity index 87%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingViewModel.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingViewModel.kt
index a65fb610..89a245d3 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingViewModel.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/searching/SearchingViewModel.kt
@@ -1,8 +1,8 @@
-package com.danbam.mobile.ui.search.searching
+package com.danbam.indistraw.feature.mobile.search.searching
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.search.GetRelatedSearchUseCase
+import com.danbam.indistraw.core.domain.usecase.search.GetRelatedSearchUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchContract.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchContract.kt
similarity index 52%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchContract.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchContract.kt
index 3b179813..463b2e1c 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchContract.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchContract.kt
@@ -1,6 +1,6 @@
-package com.danbam.mobile.ui.search.start_search
+package com.danbam.indistraw.feature.mobile.search.start_search
-import com.danbam.domain.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity
data class StartSearchState(
val recentSearchList: List = listOf(),
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchScreen.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchScreen.kt
similarity index 78%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchScreen.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchScreen.kt
index 071247d9..4a21bf82 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchScreen.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.mobile.ui.search.start_search
+package com.danbam.indistraw.feature.mobile.search.start_search
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
@@ -11,14 +11,14 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawColumnBackground
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.R
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawChipList
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.design_system.util.indiStrawClickable
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawColumnBackground
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawChipList
+import com.danbam.indistraw.core.design_system.util.androidx.RemoveOverScrollLazyColumn
+import com.danbam.indistraw.core.design_system.util.androidx.indiStrawClickable
@Composable
fun StartSearchScreen(
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchViewModel.kt b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchViewModel.kt
similarity index 83%
rename from mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchViewModel.kt
rename to feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchViewModel.kt
index 26c1e395..9a0e2855 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/start_search/StartSearchViewModel.kt
+++ b/feature/mobile/search/src/main/kotlin/com/danbam/indistraw/feature/mobile/search/start_search/StartSearchViewModel.kt
@@ -1,12 +1,11 @@
-package com.danbam.mobile.ui.search.start_search
+package com.danbam.indistraw.feature.mobile.search.start_search
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.search.GetRecentSearchUseCase
-import com.danbam.domain.usecase.search.PopularTagUseCase
+import com.danbam.indistraw.core.domain.usecase.search.GetRecentSearchUseCase
+import com.danbam.indistraw.core.domain.usecase.search.PopularTagUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
-import org.orbitmvi.orbit.Container
import org.orbitmvi.orbit.ContainerHost
import org.orbitmvi.orbit.syntax.simple.intent
import org.orbitmvi.orbit.syntax.simple.reduce
diff --git a/feature/tv/home/.gitignore b/feature/tv/home/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/tv/home/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/tv/home/build.gradle.kts b/feature/tv/home/build.gradle.kts
new file mode 100644
index 00000000..9f2416eb
--- /dev/null
+++ b/feature/tv/home/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.tv.home"
+}
+
+dependencies {
+ implementation(project(":feature:tv:navigation"))
+ implementation(libs.bundles.tv)
+}
\ No newline at end of file
diff --git a/feature/tv/home/src/main/AndroidManifest.xml b/feature/tv/home/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/tv/home/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeContract.kt b/feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeContract.kt
new file mode 100644
index 00000000..e1eddb32
--- /dev/null
+++ b/feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeContract.kt
@@ -0,0 +1,11 @@
+package com.danbam.indistraw.feature.tv.home
+
+import com.danbam.indistraw.core.entity.banner.BannerEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
+
+
+data class HomeState(
+ val currentMovieIndex: Long = 0,
+ val movieList: List = listOf(),
+ val bannerList: List = listOf()
+)
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/ui/home/HomeScreen.kt b/feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeScreen.kt
similarity index 83%
rename from tv/src/main/java/com/danbam/tv/ui/home/HomeScreen.kt
rename to feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeScreen.kt
index 7085c43d..06bf8c24 100644
--- a/tv/src/main/java/com/danbam/tv/ui/home/HomeScreen.kt
+++ b/feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.home
+package com.danbam.indistraw.feature.tv.home
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
@@ -24,16 +24,16 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import androidx.tv.foundation.lazy.list.TvLazyRow
import androidx.tv.foundation.lazy.list.items
-import com.danbam.design_system.component.ImageButton
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.component.IndiStrawTvBanner
-import com.danbam.design_system.component.IndiStrawTvTab
-import com.danbam.design_system.component.Shape
-import com.danbam.design_system.R
-import com.danbam.design_system.component.MovieTab
-import com.danbam.design_system.component.MovieTvItem
-import com.danbam.tv.ui.main.navigation.MainDeepLinkKey
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
+import com.danbam.indistraw.core.design_system.component.ImageButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBanner
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvTab
+import com.danbam.indistraw.core.design_system.component.Shape
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.MovieTab
+import com.danbam.indistraw.core.design_system.component.MovieTvItem
+import com.danbam.indistraw.feature.tv.navigation.main.MainDeepLinkKey
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
@Composable
fun HomeScreen(
diff --git a/tv/src/main/java/com/danbam/tv/ui/home/HomeViewModel.kt b/feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeViewModel.kt
similarity index 81%
rename from tv/src/main/java/com/danbam/tv/ui/home/HomeViewModel.kt
rename to feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeViewModel.kt
index f6af8aab..1176a494 100644
--- a/tv/src/main/java/com/danbam/tv/ui/home/HomeViewModel.kt
+++ b/feature/tv/home/src/main/kotlin/com/danbam/indistraw/feature/tv/home/HomeViewModel.kt
@@ -1,12 +1,12 @@
-package com.danbam.tv.ui.home
+package com.danbam.indistraw.feature.tv.home
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.design_system.component.MovieTab
-import com.danbam.domain.usecase.banner.GetBannerUseCase
-import com.danbam.domain.usecase.movie.MoviePopularListUseCase
-import com.danbam.domain.usecase.movie.MovieRecentListUseCase
-import com.danbam.domain.usecase.movie.MovieRecommendListUseCase
+import com.danbam.indistraw.core.design_system.component.MovieTab
+import com.danbam.indistraw.core.domain.usecase.banner.GetBannerUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MoviePopularListUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieRecentListUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieRecommendListUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/tv/main/.gitignore b/feature/tv/main/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/tv/main/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/tv/main/build.gradle.kts b/feature/tv/main/build.gradle.kts
new file mode 100644
index 00000000..15f2119b
--- /dev/null
+++ b/feature/tv/main/build.gradle.kts
@@ -0,0 +1,25 @@
+import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
+
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.tv.main"
+ defaultConfig {
+ buildConfigField(
+ "String",
+ "QR_URL",
+ gradleLocalProperties(rootDir).getProperty("QR_URL")
+ )
+ }
+}
+
+dependencies {
+ implementation(project(":feature:tv:home"))
+ implementation(project(":feature:tv:movie"))
+ implementation(project(":feature:tv:navigation"))
+ implementation(project(":feature:tv:search"))
+ implementation(project(":feature:tv:setting"))
+ implementation(libs.bundles.tv)
+}
\ No newline at end of file
diff --git a/feature/tv/main/src/main/AndroidManifest.xml b/feature/tv/main/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/tv/main/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/intro/IntroContract.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroContract.kt
similarity index 78%
rename from tv/src/main/java/com/danbam/tv/ui/main/intro/IntroContract.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroContract.kt
index 8c853e33..7cd4a6aa 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/intro/IntroContract.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.main.intro
+package com.danbam.indistraw.feature.tv.main.intro
data class IntroState(
val currentLanguage: String? = null
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/intro/IntroScreen.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroScreen.kt
similarity index 75%
rename from tv/src/main/java/com/danbam/tv/ui/main/intro/IntroScreen.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroScreen.kt
index 1b6060e5..f3ae88fe 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/intro/IntroScreen.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.main.intro
+package com.danbam.indistraw.feature.tv.main.intro
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
@@ -6,11 +6,11 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.ui.platform.LocalContext
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.util.Language
-import com.danbam.design_system.util.changeLanguage
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
-import com.danbam.tv.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.util.android.Language
+import com.danbam.indistraw.core.design_system.util.android.changeLanguage
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class)
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/intro/IntroViewModel.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroViewModel.kt
similarity index 87%
rename from tv/src/main/java/com/danbam/tv/ui/main/intro/IntroViewModel.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroViewModel.kt
index 2d2d5de3..737a7fdd 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/intro/IntroViewModel.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/intro/IntroViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.tv.ui.main.intro
+package com.danbam.indistraw.feature.tv.main.intro
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.auth.IsLoginUseCase
-import com.danbam.domain.usecase.system.FetchLanguageUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.IsLoginUseCase
+import com.danbam.indistraw.core.domain.usecase.system.FetchLanguageUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginContract.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginContract.kt
similarity index 86%
rename from mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginContract.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginContract.kt
index f1bf5e4e..b95d1513 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/login/LoginContract.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginContract.kt
@@ -1,5 +1,4 @@
-package com.danbam.mobile.ui.auth.login
-
+package com.danbam.indistraw.feature.tv.main.login
sealed class LoginSideEffect {
object LoginSuccess : LoginSideEffect()
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/login/LoginScreen.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginScreen.kt
similarity index 83%
rename from tv/src/main/java/com/danbam/tv/ui/main/login/LoginScreen.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginScreen.kt
index e2129b79..70bdbd06 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/login/LoginScreen.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.main.login
+package com.danbam.indistraw.feature.tv.main.login
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.Column
@@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -18,18 +17,16 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.R
-import com.danbam.design_system.component.ExampleTextRegular
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.component.IndiStrawTvButton
-import com.danbam.design_system.component.IndiStrawTvDialog
-import com.danbam.design_system.component.IndiStrawTvTextField
-import com.danbam.design_system.util.Language
-import com.danbam.design_system.util.changeLanguage
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
-import com.danbam.tv.util.android.findActivity
-import com.danbam.tv.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.ExampleTextRegular
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvButton
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvDialog
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvTextField
+import com.danbam.indistraw.core.design_system.util.android.findActivity
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class)
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/login/LoginViewModel.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginViewModel.kt
similarity index 80%
rename from tv/src/main/java/com/danbam/tv/ui/main/login/LoginViewModel.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginViewModel.kt
index 9111b3b8..2fe53046 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/login/LoginViewModel.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/login/LoginViewModel.kt
@@ -1,12 +1,12 @@
-package com.danbam.tv.ui.main.login
+package com.danbam.indistraw.feature.tv.main.login
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.auth.LoginParam
-import com.danbam.domain.usecase.auth.LoginUseCase
-import com.danbam.tv.util.android.errorHandling
-import com.danbam.tv.util.parser.isId
-import com.danbam.tv.util.parser.isPassword
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.design_system.util.internal.isId
+import com.danbam.indistraw.core.design_system.util.internal.isPassword
+import com.danbam.indistraw.core.param.auth.LoginParam
+import com.danbam.indistraw.core.domain.usecase.auth.LoginUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/main/MainScreen.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/main/MainScreen.kt
similarity index 83%
rename from tv/src/main/java/com/danbam/tv/ui/main/main/MainScreen.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/main/MainScreen.kt
index dad76beb..93ed1021 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/main/MainScreen.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/main/MainScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.main.main
+package com.danbam.indistraw.feature.tv.main.main
import androidx.activity.compose.BackHandler
import androidx.compose.animation.ExperimentalAnimationApi
@@ -17,14 +17,13 @@ import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.platform.LocalContext
import androidx.navigation.NavController
import androidx.navigation.NavHostController
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.component.IndiStrawTvNavigationDrawer
-import com.danbam.design_system.component.TvNavigationItem
-import com.danbam.tv.ui.home.HomeScreen
-import com.danbam.tv.ui.movie.movie.MovieScreen
-import com.danbam.tv.ui.search.SearchScreen
-import com.danbam.tv.ui.setting.SettingScreen
-import com.danbam.tv.util.android.findActivity
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvNavigationDrawer
+import com.danbam.indistraw.core.design_system.component.TvNavigationItem
+import com.danbam.indistraw.core.design_system.util.android.findActivity
+import com.danbam.indistraw.feature.tv.movie.movie.MovieScreen
+import com.danbam.indistraw.feature.tv.search.SearchScreen
+import com.danbam.indistraw.feature.tv.setting.SettingScreen
import com.google.accompanist.navigation.animation.AnimatedNavHost
import com.google.accompanist.navigation.animation.composable
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
@@ -95,7 +94,10 @@ fun HomeApp(
SearchScreen(navController = navController)
}
composable(route = TvNavigationItem.Home.route) {
- HomeScreen(navController = navController, isOpenDrawer = isOpenDrawer)
+ com.danbam.indistraw.feature.tv.home.HomeScreen(
+ navController = navController,
+ isOpenDrawer = isOpenDrawer
+ )
}
composable(route = TvNavigationItem.Movie.route) {
MovieScreen(navController = navController, isOpenDrawer = isOpenDrawer)
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/navigation/MainGraph.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/navigation/MainGraph.kt
similarity index 74%
rename from tv/src/main/java/com/danbam/tv/ui/main/navigation/MainGraph.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/navigation/MainGraph.kt
index 766a7974..eba4988d 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/navigation/MainGraph.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/navigation/MainGraph.kt
@@ -1,34 +1,20 @@
-package com.danbam.tv.ui.main.navigation
+package com.danbam.indistraw.feature.tv.main.navigation
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.navArgument
-import com.danbam.tv.ui.main.intro.IntroScreen
-import com.danbam.tv.ui.main.login.LoginScreen
-import com.danbam.tv.ui.main.main.MainScreen
-import com.danbam.tv.ui.main.qr_login.QRLoginScreen
-import com.danbam.tv.ui.movie.detail.MovieDetailScreen
-import com.danbam.tv.ui.movie.play.MoviePlayScreen
+import com.danbam.indistraw.feature.tv.main.intro.IntroScreen
+import com.danbam.indistraw.feature.tv.main.login.LoginScreen
+import com.danbam.indistraw.feature.tv.main.main.MainScreen
+import com.danbam.indistraw.feature.tv.main.qr_login.QRLoginScreen
+import com.danbam.indistraw.feature.tv.movie.detail.MovieDetailScreen
+import com.danbam.indistraw.feature.tv.movie.play.MoviePlayScreen
+import com.danbam.indistraw.feature.tv.navigation.main.MainDeepLinkKey
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
import com.google.accompanist.navigation.animation.composable
-sealed class MainNavigationItem(val route: String) {
- object Intro : MainNavigationItem("intro")
- object Login : MainNavigationItem("login")
- object QRLogin : MainNavigationItem("QRLogin")
- object Main : MainNavigationItem("main")
- object MovieDetail : MainNavigationItem("movieDetail")
- object MoviePlay : MainNavigationItem("moviePlay")
-}
-
-object MainDeepLinkKey {
- const val MOVIE_NAME = "movieName"
- const val MOVIE_INDEX = "movieIndex"
- const val MOVIE_URL = "movieUrl"
- const val MOVIE_POSITION = "moviePosition"
-}
-
@OptIn(ExperimentalAnimationApi::class)
fun NavGraphBuilder.mainGraph(navController: NavHostController) {
composable(route = MainNavigationItem.Intro.route) {
@@ -74,7 +60,7 @@ fun NavGraphBuilder.mainGraph(navController: NavHostController) {
)) {
val movieName = it.arguments?.getString(MainDeepLinkKey.MOVIE_NAME) ?: ""
val movieUrl = it.arguments?.getString(MainDeepLinkKey.MOVIE_URL) ?: ""
- val movieIdx = it.arguments?.getLong(MainDeepLinkKey.MOVIE_URL) ?: 0
+ val movieIdx = it.arguments?.getLong(MainDeepLinkKey.MOVIE_INDEX) ?: 0
val moviePosition = it.arguments?.getFloat(MainDeepLinkKey.MOVIE_POSITION) ?: 0F
MoviePlayScreen(
movieName = movieName,
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginContract.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginContract.kt
similarity index 74%
rename from tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginContract.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginContract.kt
index 0a0a6265..dbbbfdb1 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginContract.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.main.qr_login
+package com.danbam.indistraw.feature.tv.main.qr_login
import java.util.UUID
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginScreen.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginScreen.kt
similarity index 76%
rename from tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginScreen.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginScreen.kt
index 2c760924..244fdb48 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginScreen.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.main.qr_login
+package com.danbam.indistraw.feature.tv.main.qr_login
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -16,17 +16,17 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.tv.BuildConfig
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.R
-import com.danbam.design_system.component.QRPainter
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
-import com.danbam.tv.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.QRPainter
+import com.danbam.indistraw.feature.tv.main.BuildConfig
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
import kotlinx.coroutines.delay
diff --git a/tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginViewModel.kt b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginViewModel.kt
similarity index 84%
rename from tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginViewModel.kt
rename to feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginViewModel.kt
index 9b4e2239..56aefe32 100644
--- a/tv/src/main/java/com/danbam/tv/ui/main/qr_login/QRLoginViewModel.kt
+++ b/feature/tv/main/src/main/kotlin/com/danbam/indistraw/feature/tv/main/qr_login/QRLoginViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.tv.ui.main.qr_login
+package com.danbam.indistraw.feature.tv.main.qr_login
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.qr_code.ConnectQRCodeUseCase
-import com.danbam.domain.usecase.qr_code.GetQRCodeUseCase
+import com.danbam.indistraw.core.domain.usecase.qr_code.ConnectQRCodeUseCase
+import com.danbam.indistraw.core.domain.usecase.qr_code.GetQRCodeUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/tv/movie/.gitignore b/feature/tv/movie/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/tv/movie/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/tv/movie/build.gradle.kts b/feature/tv/movie/build.gradle.kts
new file mode 100644
index 00000000..c4109d64
--- /dev/null
+++ b/feature/tv/movie/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.tv.movie"
+}
+
+dependencies {
+ implementation(project(":feature:tv:navigation"))
+ implementation(libs.bundles.tv)
+}
\ No newline at end of file
diff --git a/feature/tv/movie/src/main/AndroidManifest.xml b/feature/tv/movie/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/tv/movie/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailContract.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailContract.kt
similarity index 76%
rename from tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailContract.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailContract.kt
index f9562ed1..bad0b335 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailContract.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailContract.kt
@@ -1,6 +1,6 @@
-package com.danbam.tv.ui.movie.detail
+package com.danbam.indistraw.feature.tv.movie.detail
-import com.danbam.domain.entity.movie.MovieDetailEntity
+import com.danbam.indistraw.core.entity.movie.MovieDetailEntity
data class MovieDetailState(
val movieDetailInfo: MovieDetailEntity = MovieDetailEntity(
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailScreen.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailScreen.kt
similarity index 86%
rename from tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailScreen.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailScreen.kt
index e32c9e6e..ea3e776e 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailScreen.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.movie.detail
+package com.danbam.indistraw.feature.tv.movie.detail
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -24,9 +24,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.blur
import androidx.compose.ui.draw.clip
-import androidx.compose.ui.draw.shadow
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
@@ -40,18 +38,17 @@ import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ButtonMedium
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.R
-import com.danbam.design_system.component.JoinBold
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.tv.ui.main.navigation.MainDeepLinkKey
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ButtonMedium
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.feature.tv.navigation.main.MainDeepLinkKey
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
sealed class MovieTabItem(val stringId: Int) {
object Highlight : MovieTabItem(R.string.highlight)
@@ -114,22 +111,14 @@ fun MovieDetailScreen(
icon = IndiStrawIconList.FastPlay,
title = stringResource(id = R.string.watch_going)
) {
- navController.navigate(
- MainNavigationItem.MoviePlay.route + MainDeepLinkKey.MOVIE_NAME + state.movieDetailInfo.title + MainDeepLinkKey.MOVIE_INDEX + movieIdx + MainDeepLinkKey.MOVIE_URL + state.movieDetailInfo.movieUrl.split(
- "/"
- ).last() + MainDeepLinkKey.MOVIE_POSITION + state.moviePosition
- )
+ navController.navigate(MainNavigationItem.MoviePlay.route + MainDeepLinkKey.MOVIE_NAME + state.movieDetailInfo.title + MainDeepLinkKey.MOVIE_INDEX + movieIdx + MainDeepLinkKey.MOVIE_URL + state.movieDetailInfo.movieUrl + MainDeepLinkKey.MOVIE_POSITION + state.moviePosition)
}
Spacer(modifier = Modifier.width(10.dp))
MoviePlayButton(
icon = IndiStrawIconList.PlayFirst,
title = stringResource(id = R.string.watch_first)
) {
- navController.navigate(
- MainNavigationItem.MoviePlay.route + MainDeepLinkKey.MOVIE_INDEX + movieIdx + MainDeepLinkKey.MOVIE_URL + state.movieDetailInfo.movieUrl.split(
- "/"
- ).last() + MainDeepLinkKey.MOVIE_POSITION + 0F
- )
+ navController.navigate(MainNavigationItem.MoviePlay.route + MainDeepLinkKey.MOVIE_NAME + state.movieDetailInfo.title + MainDeepLinkKey.MOVIE_INDEX + movieIdx + MainDeepLinkKey.MOVIE_URL + state.movieDetailInfo.movieUrl + MainDeepLinkKey.MOVIE_POSITION + 0F)
}
}
}
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailViewModel.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailViewModel.kt
similarity index 85%
rename from tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailViewModel.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailViewModel.kt
index 26b59b3e..0ca50a4c 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/detail/MovieDetailViewModel.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/detail/MovieDetailViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.tv.ui.movie.detail
+package com.danbam.indistraw.feature.tv.movie.detail
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.usecase.movie.MovieDetailUseCase
-import com.danbam.domain.usecase.movie.MovieHistoryUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieDetailUseCase
+import com.danbam.indistraw.core.domain.usecase.movie.MovieHistoryUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieContract.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieContract.kt
similarity index 63%
rename from tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieContract.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieContract.kt
index afdebc88..07da16af 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieContract.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieContract.kt
@@ -1,7 +1,7 @@
-package com.danbam.tv.ui.movie.movie
+package com.danbam.indistraw.feature.tv.movie.movie
import androidx.paging.PagingData
-import com.danbam.domain.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
import kotlinx.coroutines.flow.Flow
data class MovieState(
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieScreen.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieScreen.kt
similarity index 91%
rename from tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieScreen.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieScreen.kt
index 66167e3a..09a8ab63 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieScreen.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.movie.movie
+package com.danbam.indistraw.feature.tv.movie.movie
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.layout.Arrangement
@@ -26,22 +26,20 @@ import androidx.paging.compose.collectAsLazyPagingItems
import androidx.tv.foundation.lazy.grid.TvGridCells
import androidx.tv.foundation.lazy.grid.TvLazyVerticalGrid
import androidx.tv.foundation.lazy.grid.items
-import androidx.tv.foundation.lazy.list.TvLazyColumn
import androidx.tv.foundation.lazy.list.TvLazyRow
import androidx.tv.foundation.lazy.list.items
import androidx.tv.material3.Border
import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.component.MovieGenre
-import com.danbam.design_system.component.MovieTvItem
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.component.TitleSemiBold
-import com.danbam.design_system.util.RemoveOverScrollLazyColumn
-import com.danbam.tv.ui.main.navigation.MainDeepLinkKey
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.component.MovieGenre
+import com.danbam.indistraw.core.design_system.component.MovieTvItem
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.component.TitleSemiBold
+import com.danbam.indistraw.feature.tv.navigation.main.MainDeepLinkKey
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieViewModel.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieViewModel.kt
similarity index 83%
rename from tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieViewModel.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieViewModel.kt
index 5311d42d..38f70c12 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/movie/MovieViewModel.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/movie/MovieViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.tv.ui.movie.movie
+package com.danbam.indistraw.feature.tv.movie.movie
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.design_system.component.MovieGenre
-import com.danbam.domain.usecase.movie.MovieListUseCase
+import com.danbam.indistraw.core.design_system.component.MovieGenre
+import com.danbam.indistraw.core.domain.usecase.movie.MovieListUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayContract.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayContract.kt
similarity index 63%
rename from tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayContract.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayContract.kt
index f587cf0b..56da9a14 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayContract.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayContract.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.movie.play
+package com.danbam.indistraw.feature.tv.movie.play
sealed class MoviePlaySideEffect {
object SuccessSaveHistory: MoviePlaySideEffect()
diff --git a/tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayScreen.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayScreen.kt
similarity index 76%
rename from tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayScreen.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayScreen.kt
index ed4742aa..8345314a 100644
--- a/tv/src/main/java/com/danbam/tv/ui/movie/play/MoviePlayScreen.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayScreen.kt
@@ -1,12 +1,12 @@
-package com.danbam.tv.ui.movie.play
+package com.danbam.indistraw.feature.tv.movie.play
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
-import com.danbam.design_system.component.IndiStrawPlayer
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.tv.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.component.IndiStrawPlayer
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
import kotlinx.coroutines.InternalCoroutinesApi
@OptIn(InternalCoroutinesApi::class)
@@ -36,6 +36,8 @@ fun MoviePlayScreen(
movieUrl = movieUrl,
movieName = movieName,
position = position,
+ isMobile = false,
+ isVertical = false,
onPIP = {},
onDispose = {
moviePlayViewModel.addMovieHistory(movieIdx = movieIdx, it / 1000F)
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayViewModel.kt b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayViewModel.kt
similarity index 84%
rename from mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayViewModel.kt
rename to feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayViewModel.kt
index b75a3352..1fd632a0 100644
--- a/mobile/src/main/java/com/danbam/mobile/ui/movie/play/MoviePlayViewModel.kt
+++ b/feature/tv/movie/src/main/kotlin/com/danbam/indistraw/feature/tv/movie/play/MoviePlayViewModel.kt
@@ -1,9 +1,9 @@
-package com.danbam.mobile.ui.movie.play
+package com.danbam.indistraw.feature.tv.movie.play
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.param.movie.MovieHistoryParam
-import com.danbam.domain.usecase.movie.AddMovieHistoryUseCase
+import com.danbam.indistraw.core.param.movie.MovieHistoryParam
+import com.danbam.indistraw.core.domain.usecase.movie.AddMovieHistoryUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/feature/tv/navigation/.gitignore b/feature/tv/navigation/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/tv/navigation/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/tv/navigation/build.gradle.kts b/feature/tv/navigation/build.gradle.kts
new file mode 100644
index 00000000..3e66a9d7
--- /dev/null
+++ b/feature/tv/navigation/build.gradle.kts
@@ -0,0 +1,7 @@
+plugins {
+ id("indistraw-core")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.tv.navigation"
+}
\ No newline at end of file
diff --git a/feature/tv/navigation/src/main/AndroidManifest.xml b/feature/tv/navigation/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/tv/navigation/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/feature/tv/navigation/src/main/kotlin/com/danbam/indistraw/feature/tv/navigation/main/MainDeepLinkKey.kt b/feature/tv/navigation/src/main/kotlin/com/danbam/indistraw/feature/tv/navigation/main/MainDeepLinkKey.kt
new file mode 100644
index 00000000..46e8846b
--- /dev/null
+++ b/feature/tv/navigation/src/main/kotlin/com/danbam/indistraw/feature/tv/navigation/main/MainDeepLinkKey.kt
@@ -0,0 +1,8 @@
+package com.danbam.indistraw.feature.tv.navigation.main
+
+object MainDeepLinkKey {
+ const val MOVIE_NAME = "movieName"
+ const val MOVIE_INDEX = "movieIndex"
+ const val MOVIE_URL = "movieUrl"
+ const val MOVIE_POSITION = "moviePosition"
+}
\ No newline at end of file
diff --git a/feature/tv/navigation/src/main/kotlin/com/danbam/indistraw/feature/tv/navigation/main/MainNavigationItem.kt b/feature/tv/navigation/src/main/kotlin/com/danbam/indistraw/feature/tv/navigation/main/MainNavigationItem.kt
new file mode 100644
index 00000000..fdd51c9e
--- /dev/null
+++ b/feature/tv/navigation/src/main/kotlin/com/danbam/indistraw/feature/tv/navigation/main/MainNavigationItem.kt
@@ -0,0 +1,10 @@
+package com.danbam.indistraw.feature.tv.navigation.main
+
+sealed class MainNavigationItem(val route: String) {
+ object Intro : MainNavigationItem("intro")
+ object Login : MainNavigationItem("login")
+ object QRLogin : MainNavigationItem("QRLogin")
+ object Main : MainNavigationItem("main")
+ object MovieDetail : MainNavigationItem("movieDetail")
+ object MoviePlay : MainNavigationItem("moviePlay")
+}
\ No newline at end of file
diff --git a/feature/tv/search/.gitignore b/feature/tv/search/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/tv/search/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/tv/search/build.gradle.kts b/feature/tv/search/build.gradle.kts
new file mode 100644
index 00000000..2ee20313
--- /dev/null
+++ b/feature/tv/search/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.tv.search"
+}
+
+dependencies {
+ implementation(project(":feature:tv:navigation"))
+ implementation(libs.bundles.tv)
+}
\ No newline at end of file
diff --git a/feature/tv/search/src/main/AndroidManifest.xml b/feature/tv/search/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/tv/search/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/ui/search/SearchContract.kt b/feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchContract.kt
similarity index 71%
rename from tv/src/main/java/com/danbam/tv/ui/search/SearchContract.kt
rename to feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchContract.kt
index 4eeeb8ef..27970642 100644
--- a/tv/src/main/java/com/danbam/tv/ui/search/SearchContract.kt
+++ b/feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchContract.kt
@@ -1,7 +1,7 @@
-package com.danbam.tv.ui.search
+package com.danbam.indistraw.feature.tv.search
import androidx.paging.PagingData
-import com.danbam.domain.entity.movie.MovieEntity
+import com.danbam.indistraw.core.entity.movie.MovieEntity
import kotlinx.coroutines.flow.Flow
data class SearchState(
diff --git a/tv/src/main/java/com/danbam/tv/ui/search/SearchScreen.kt b/feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchScreen.kt
similarity index 90%
rename from tv/src/main/java/com/danbam/tv/ui/search/SearchScreen.kt
rename to feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchScreen.kt
index c883d6f8..84578c4c 100644
--- a/tv/src/main/java/com/danbam/tv/ui/search/SearchScreen.kt
+++ b/feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.search
+package com.danbam.indistraw.feature.tv.search
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.layout.Arrangement
@@ -36,16 +36,16 @@ import androidx.tv.material3.Border
import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.component.IndiStrawTvTextField
-import com.danbam.design_system.R
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.component.MovieTvItem
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.tv.ui.main.navigation.MainDeepLinkKey
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvTextField
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.component.MovieTvItem
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.feature.tv.navigation.main.MainDeepLinkKey
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
diff --git a/tv/src/main/java/com/danbam/tv/ui/search/SearchViewModel.kt b/feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchViewModel.kt
similarity index 77%
rename from tv/src/main/java/com/danbam/tv/ui/search/SearchViewModel.kt
rename to feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchViewModel.kt
index f07f0a30..a383e8f4 100644
--- a/tv/src/main/java/com/danbam/tv/ui/search/SearchViewModel.kt
+++ b/feature/tv/search/src/main/kotlin/com/danbam/indistraw/feature/tv/search/SearchViewModel.kt
@@ -1,12 +1,12 @@
-package com.danbam.tv.ui.search
+package com.danbam.indistraw.feature.tv.search
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.domain.entity.search.RecentSearchEntity
-import com.danbam.domain.usecase.movie.MoviePopularListUseCase
-import com.danbam.domain.usecase.search.GetRecentSearchUseCase
-import com.danbam.domain.usecase.search.GetRelatedSearchUseCase
-import com.danbam.domain.usecase.search.SearchMovieUseCase
+import com.danbam.indistraw.core.entity.search.RecentSearchEntity
+import com.danbam.indistraw.core.domain.usecase.movie.MoviePopularListUseCase
+import com.danbam.indistraw.core.domain.usecase.search.GetRecentSearchUseCase
+import com.danbam.indistraw.core.domain.usecase.search.GetRelatedSearchUseCase
+import com.danbam.indistraw.core.domain.usecase.search.SearchMovieUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
@@ -35,7 +35,7 @@ class SearchViewModel @Inject constructor(
fun getRelatedSearch(keyword: String) = intent {
viewModelScope.launch {
getRelatedSearchUseCase(keyword = keyword).onSuccess {
- reduce { state.copy(relatedSearchList = it.map { it.title }) }
+ reduce { state.copy(relatedSearchList = it) }
}
}
}
diff --git a/feature/tv/setting/.gitignore b/feature/tv/setting/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/feature/tv/setting/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/feature/tv/setting/build.gradle.kts b/feature/tv/setting/build.gradle.kts
new file mode 100644
index 00000000..31e935dc
--- /dev/null
+++ b/feature/tv/setting/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ id("indistraw-feature")
+}
+
+android {
+ namespace = "com.danbam.indistraw.feature.tv.setting"
+}
+
+dependencies {
+ implementation(project(":feature:tv:navigation"))
+ implementation(libs.bundles.tv)
+}
\ No newline at end of file
diff --git a/feature/tv/setting/src/main/AndroidManifest.xml b/feature/tv/setting/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/feature/tv/setting/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/ui/setting/SettingAccountScreen.kt b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingAccountScreen.kt
similarity index 81%
rename from tv/src/main/java/com/danbam/tv/ui/setting/SettingAccountScreen.kt
rename to feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingAccountScreen.kt
index 70a60ec4..5050dcd6 100644
--- a/tv/src/main/java/com/danbam/tv/ui/setting/SettingAccountScreen.kt
+++ b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingAccountScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.setting
+package com.danbam.indistraw.feature.tv.setting
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
@@ -12,9 +12,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.HeadLineBold
-import com.danbam.design_system.R
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.HeadLineBold
+import com.danbam.indistraw.core.design_system.R
@Composable
fun SettingAccountScreen(
diff --git a/tv/src/main/java/com/danbam/tv/ui/setting/SettingContract.kt b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingContract.kt
similarity index 69%
rename from tv/src/main/java/com/danbam/tv/ui/setting/SettingContract.kt
rename to feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingContract.kt
index f8304c89..7735c31d 100644
--- a/tv/src/main/java/com/danbam/tv/ui/setting/SettingContract.kt
+++ b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingContract.kt
@@ -1,7 +1,7 @@
-package com.danbam.tv.ui.setting
+package com.danbam.indistraw.feature.tv.setting
-import com.danbam.design_system.util.Language
-import com.danbam.domain.entity.auth.ProfileEntity
+import com.danbam.indistraw.core.design_system.util.android.Language
+import com.danbam.indistraw.core.domain.entity.auth.ProfileEntity
data class SettingState(
val currentLanguage: Language = Language.Korean,
diff --git a/tv/src/main/java/com/danbam/tv/ui/setting/SettingLanguageScreen.kt b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingLanguageScreen.kt
similarity index 91%
rename from tv/src/main/java/com/danbam/tv/ui/setting/SettingLanguageScreen.kt
rename to feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingLanguageScreen.kt
index e5742364..0bc9bcb4 100644
--- a/tv/src/main/java/com/danbam/tv/ui/setting/SettingLanguageScreen.kt
+++ b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingLanguageScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.setting
+package com.danbam.indistraw.feature.tv.setting
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background
@@ -27,10 +27,10 @@ import androidx.tv.foundation.lazy.list.items
import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.util.Language
-import com.danbam.design_system.util.changeLanguage
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.util.android.Language
+import com.danbam.indistraw.core.design_system.util.android.changeLanguage
@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
diff --git a/tv/src/main/java/com/danbam/tv/ui/setting/SettingScreen.kt b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingScreen.kt
similarity index 91%
rename from tv/src/main/java/com/danbam/tv/ui/setting/SettingScreen.kt
rename to feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingScreen.kt
index 448255da..a2a496e1 100644
--- a/tv/src/main/java/com/danbam/tv/ui/setting/SettingScreen.kt
+++ b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.setting
+package com.danbam.indistraw.feature.tv.setting
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.BorderStroke
@@ -40,18 +40,17 @@ import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Surface
import coil.compose.AsyncImage
-import com.danbam.design_system.IndiStrawTheme
-import com.danbam.design_system.component.DialogMedium
-import com.danbam.design_system.component.IndiStrawTvBackground
-import com.danbam.design_system.R
-import com.danbam.design_system.attribute.IndiStrawIcon
-import com.danbam.design_system.attribute.IndiStrawIconList
-import com.danbam.design_system.component.ExampleTextMedium
-import com.danbam.design_system.component.IndiStrawTvTitleDialog
-import com.danbam.design_system.component.TitleRegular
-import com.danbam.design_system.util.indiStrawClickable
-import com.danbam.tv.ui.main.navigation.MainNavigationItem
-import com.danbam.tv.util.android.observeWithLifecycle
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.component.DialogMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvBackground
+import com.danbam.indistraw.core.design_system.R
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIcon
+import com.danbam.indistraw.core.design_system.attribute.IndiStrawIconList
+import com.danbam.indistraw.core.design_system.component.ExampleTextMedium
+import com.danbam.indistraw.core.design_system.component.IndiStrawTvTitleDialog
+import com.danbam.indistraw.core.design_system.component.TitleRegular
+import com.danbam.indistraw.core.design_system.util.androidx.observeWithLifecycle
+import com.danbam.indistraw.feature.tv.navigation.main.MainNavigationItem
import kotlinx.coroutines.InternalCoroutinesApi
sealed class SettingNavigation(val stringId: Int) {
diff --git a/tv/src/main/java/com/danbam/tv/ui/setting/SettingTermScreen.kt b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingTermScreen.kt
similarity index 89%
rename from tv/src/main/java/com/danbam/tv/ui/setting/SettingTermScreen.kt
rename to feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingTermScreen.kt
index 5ab0a6c4..5410452a 100644
--- a/tv/src/main/java/com/danbam/tv/ui/setting/SettingTermScreen.kt
+++ b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingTermScreen.kt
@@ -1,4 +1,4 @@
-package com.danbam.tv.ui.setting
+package com.danbam.indistraw.feature.tv.setting
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
@@ -11,7 +11,7 @@ import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import com.danbam.design_system.IndiStrawTheme
+import com.danbam.indistraw.core.design_system.IndiStrawTheme
@Composable
fun SettingTermScreen(
diff --git a/tv/src/main/java/com/danbam/tv/ui/setting/SettingViewModel.kt b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingViewModel.kt
similarity index 78%
rename from tv/src/main/java/com/danbam/tv/ui/setting/SettingViewModel.kt
rename to feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingViewModel.kt
index 984f1f25..319ebed4 100644
--- a/tv/src/main/java/com/danbam/tv/ui/setting/SettingViewModel.kt
+++ b/feature/tv/setting/src/main/kotlin/com/danbam/indistraw/feature/tv/setting/SettingViewModel.kt
@@ -1,15 +1,15 @@
-package com.danbam.tv.ui.setting
+package com.danbam.indistraw.feature.tv.setting
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.danbam.design_system.util.Language
-import com.danbam.domain.usecase.account.GetProfileUseCase
-import com.danbam.domain.usecase.account.WithdrawUseCase
-import com.danbam.domain.usecase.auth.ClearTokenUseCase
-import com.danbam.domain.usecase.auth.LogoutUseCase
-import com.danbam.domain.usecase.system.FetchLanguageUseCase
-import com.danbam.domain.usecase.system.SaveLanguageUseCase
-import com.danbam.tv.util.android.errorHandling
+import com.danbam.indistraw.core.design_system.util.android.Language
+import com.danbam.indistraw.core.design_system.util.danbam.errorHandling
+import com.danbam.indistraw.core.domain.usecase.account.GetProfileUseCase
+import com.danbam.indistraw.core.domain.usecase.account.WithdrawUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.ClearTokenUseCase
+import com.danbam.indistraw.core.domain.usecase.auth.LogoutUseCase
+import com.danbam.indistraw.core.domain.usecase.system.FetchLanguageUseCase
+import com.danbam.indistraw.core.domain.usecase.system.SaveLanguageUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.ContainerHost
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
new file mode 100644
index 00000000..fe809487
--- /dev/null
+++ b/gradle/libs.versions.toml
@@ -0,0 +1,109 @@
+[versions]
+versionCode = "1"
+versionName = "1.0.0"
+compileSdk = "33"
+targetSdk = "33"
+minSdk = "28"
+gradleAndroid = "7.4.2"
+gradleKotlin = "1.8.10"
+gradleKtLint = "11.1.0"
+coroutines = "1.6.4"
+core = "1.9.0"
+lifecycle = "2.5.1"
+appcompat = "1.6.0"
+preference = "1.2.0"
+paging = "3.1.1"
+pagingCompose = "1.0.0-alpha16"
+leanback = "1.0.0"
+composeActivity = "1.6.1"
+compose = "1.4.3"
+composeMaterial = "1.3.1"
+composeMaterial3 = "1.0.1"
+hiltNav = "1.0.0"
+accomanist = "0.31.0-alpha"
+hilt = "2.44"
+room = "2.4.3"
+orbit = "4.5.0"
+retrofit = "2.9.0"
+okhttp = "4.10.0"
+junit = "4.13.2"
+mockitoKotlin = "4.1.0"
+mockitoInline = "5.1.1"
+androidJunit = "1.1.2"
+espressoCore = "3.3.0"
+coil = "2.2.2"
+exoplayer = "2.18.1"
+camera = "1.2.2"
+barcodeScannig = "17.1.0"
+barcodeDrawing = "1.1.1"
+tv = "1.0.0-alpha06"
+bootPay = "4.0.8"
+inject = "1"
+
+[libraries]
+plugin-android = { module = "com.android.tools.build:gradle", version.ref = "gradleAndroid" }
+plugin-hilt = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" }
+plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "gradleKotlin" }
+androidx-core = { module = "androidx.core:core-ktx", version.ref = "core" }
+androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
+androidx-preference = { module = "androidx.preference:preference-ktx", version.ref = "preference" }
+androidx-lifecycle = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" }
+androix-leanback = { module = "androidx.leanback:leanback", version.ref = "leanback" }
+coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
+coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
+paging = { module = "androidx.paging:paging-runtime", version.ref = "paging" }
+compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }
+compose-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" }
+compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" }
+compose-activity = { module = "androidx.activity:activity-compose", version.ref = "composeActivity" }
+compose-paging = { module = "androidx.paging:paging-compose", version.ref = "pagingCompose" }
+compose-nav = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNav" }
+compose-material = { module = "androidx.compose.material:material", version.ref = "composeMaterial" }
+compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "composeMaterial3" }
+compose-tool = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
+compose-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose" }
+compose-test = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose" }
+accompanist-nav = { module = "com.google.accompanist:accompanist-navigation-animation", version.ref = "accomanist" }
+accompanist-view-pager = { module = "com.google.accompanist:accompanist-pager", version.ref = "accomanist" }
+hilt = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
+hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" }
+room = { module = "androidx.room:room-ktx", version.ref = "room" }
+room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
+orbit-core = { module = "org.orbit-mvi:orbit-core", version.ref = "orbit" }
+orbit-viewmodel = { module = "org.orbit-mvi:orbit-viewmodel", version.ref = "orbit" }
+orbit-test = { module = "org.orbit-mvi:orbit-test", version.ref = "orbit" }
+retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
+retrofit-converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" }
+okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
+okhttp-sse = { module = "com.squareup.okhttp3:okhttp-sse", version.ref = "okhttp" }
+okhttp-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" }
+coil = { module = "io.coil-kt:coil-compose", version.ref = "coil" }
+exoplayer-core = { module = "com.google.android.exoplayer:exoplayer-core", version.ref = "exoplayer" }
+exoplayer-hls = { module = "com.google.android.exoplayer:exoplayer-hls", version.ref = "exoplayer" }
+exoplayer-ui = { module = "com.google.android.exoplayer:exoplayer-ui", version.ref = "exoplayer" }
+camera = { module = "androidx.camera:camera-camera2", version.ref = "camera" }
+camera-view = { module = "androidx.camera:camera-view", version.ref = "camera" }
+camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "camera" }
+barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "barcodeScannig" }
+barcode-drawing = { module = "com.simonsickle:composed-barcodes", version.ref = "barcodeDrawing" }
+tv-material = { module = "androidx.tv:tv-material", version.ref = "tv" }
+tv-foundation = { module = "androidx.tv:tv-foundation", version.ref = "tv" }
+bootpay = { module = "io.github.bootpay:android", version.ref = "bootPay" }
+inject = { module = "javax.inject:javax.inject", version.ref = "inject" }
+test-junit = { module = "junit:junit", version.ref = "junit" }
+test-mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockitoKotlin" }
+test-mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockitoInline" }
+test-anroid-junit = { module = "androidx.test.ext:junit", version.ref = "androidJunit" }
+test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoCore" }
+
+[bundles]
+coroutine = ["coroutines-core", "coroutines-android"]
+compose = ["compose-activity", "compose-ui", "compose-preview", "compose-material", "compose-material3", "compose-nav", "compose-paging"]
+compose-debug = ["compose-tool", "compose-manifest"]
+orbit = ["orbit-core", "orbit-viewmodel", "orbit-test"]
+retrofit = ["retrofit", "retrofit-converter-gson"]
+okhttp = ["okhttp", "okhttp-logging-interceptor", "okhttp-sse"]
+exoplayer = ["exoplayer-core", "exoplayer-hls", "exoplayer-ui"]
+camera = ["camera", "camera-lifecycle", "camera-view"]
+barcode = ["barcode-drawing", "barcode-scanning"]
+tv = ["tv-material", "tv-foundation"]
\ No newline at end of file
diff --git a/mobile/build.gradle.kts b/mobile/build.gradle.kts
deleted file mode 100644
index 72a42be8..00000000
--- a/mobile/build.gradle.kts
+++ /dev/null
@@ -1,112 +0,0 @@
-import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
-
-plugins {
- id("com.android.application")
- id("kotlin-android")
- id("kotlin-kapt")
- id("dagger.hilt.android.plugin")
-}
-
-android {
- namespace = "com.danbam.mobile"
- compileSdk = Version.COMPILE_SDK_VERSION
-
- defaultConfig {
- applicationId = "com.danbam.indi_straw.mobile"
- minSdk = Version.MIN_SDK_VERSION
- targetSdk = Version.TARGET_SDK_VERSION
- versionCode = Version.VERSION_CODE
- versionName = Version.VERSION_NAME
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- buildConfigField(
- "String",
- "QR_URL",
- gradleLocalProperties(rootDir).getProperty("QR_URL")
- )
- buildConfigField(
- "String",
- "PAY_KEY",
- gradleLocalProperties(rootDir).getProperty("PAY_KEY")
- )
- }
-
- buildTypes {
- getByName("release") {
- isMinifyEnabled = true
- isShrinkResources = true
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = Version.JAVA_VERSION
- targetCompatibility = Version.JAVA_VERSION
- }
- kotlinOptions {
- jvmTarget = Version.JAVA_VERSION.toString()
- }
- buildFeatures {
- compose = true
- }
- composeOptions {
- kotlinCompilerExtensionVersion = Version.COMPOSE
- }
- packagingOptions.resources.excludes += setOf(
- "META-INF/DEPENDENCIES",
- "META-INF/LICENSE",
- "META-INF/LICENSE.txt",
- "META-INF/license.txt",
- "META-INF/NOTICE",
- "META-INF/NOTICE.txt",
- "META-INF/INDEX.LIST",
- "META-INF/notice.txt",
- "META-INF/ASL2.0",
- "META-INF/gradle/incremental.annotation.processors"
- )
- hilt {
- enableAggregatingTask = true
- }
-}
-dependencies {
- implementation(project(":domain"))
- implementation(project(":di"))
- implementation(project(":design-system"))
-
- implementation(Dependency.AndroidX.CORE_KTX)
- implementation(Dependency.AndroidX.LIFECYCLE)
- implementation(Dependency.AndroidX.PAGING_COMPOSE)
-
- implementation(Dependency.Retrofit.RETROFIT)
- implementation(Dependency.Retrofit.RETROFIT_CONVERTER_GSON)
-
- implementation(Dependency.Compose.ACTIVITY)
- implementation(Dependency.Compose.UI)
- implementation(Dependency.Compose.PREVIEW)
- implementation(Dependency.Compose.MATERIAL)
- implementation(Dependency.Compose.COMPOSE_HILT_NAV)
-
- implementation(Dependency.Accompanist.ANIMATE_NAVIGATION)
-
- implementation(Dependency.Kotlin.COROUTINES_CORE)
- implementation(Dependency.Kotlin.COROUTINES_ANDROID)
-
- implementation(Dependency.Hilt.HILT_ANDROID)
- kapt(Dependency.Hilt.HILT_ANDROID_COMPILER)
-
- implementation(Dependency.Mvi.ORBIT_CORE)
- implementation(Dependency.Mvi.ORBIT_VIEW_MODEL)
- implementation(Dependency.Mvi.ORBIT_TEST)
-
- implementation(Dependency.Coil.COIL)
-
- implementation(Dependency.ExoPlayer.EXO_PLAYER_CORE)
- implementation(Dependency.ExoPlayer.EXO_PLAYER_UI)
-
- implementation(Dependency.BootPay.BOOT_PAY)
-
- debugImplementation(Dependency.AndroidTest.COMPOSE_TOOL)
- debugImplementation(Dependency.AndroidTest.COMPOSE_MANIFEST)
- androidTestImplementation(Dependency.AndroidTest.COMPOSE_TEST)
-}
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdContract.kt b/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdContract.kt
deleted file mode 100644
index 403f179b..00000000
--- a/mobile/src/main/java/com/danbam/mobile/ui/auth/find/find_id/FindIdContract.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.danbam.mobile.ui.auth.find.find_id
-
-data class FindIdState(
- val id: String = "",
-)
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/main/main/MainContract.kt b/mobile/src/main/java/com/danbam/mobile/ui/main/main/MainContract.kt
deleted file mode 100644
index 8d81b158..00000000
--- a/mobile/src/main/java/com/danbam/mobile/ui/main/main/MainContract.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.danbam.mobile.ui.main.main
-
-import com.danbam.domain.entity.banner.BannerEntity
-import com.danbam.domain.entity.funding.FundingEntity
-import com.danbam.domain.entity.movie.MovieEntity
-
-data class MainState(
- val profileUrl: String? = null,
- val movieList: List = listOf(),
- val fundingPopularList: List = listOf(),
- val bannerList: List = listOf()
-)
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginContract.kt b/mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginContract.kt
deleted file mode 100644
index 0664cc9d..00000000
--- a/mobile/src/main/java/com/danbam/mobile/ui/profile/qr_login/QRLoginContract.kt
+++ /dev/null
@@ -1,2 +0,0 @@
-package com.danbam.mobile.ui.profile.qr_login
-
diff --git a/mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingContract.kt b/mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingContract.kt
deleted file mode 100644
index e3d2cb1b..00000000
--- a/mobile/src/main/java/com/danbam/mobile/ui/search/searching/SearchingContract.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.danbam.mobile.ui.search.searching
-
-import com.danbam.domain.entity.search.RelatedSearchEntity
-
-data class SearchingState(
- val relatedSearchPager: List? = null
-)
\ No newline at end of file
diff --git a/mobile/src/main/java/com/danbam/mobile/util/parser/GraphicUtil.kt b/mobile/src/main/java/com/danbam/mobile/util/parser/GraphicUtil.kt
deleted file mode 100644
index 1d8513bd..00000000
--- a/mobile/src/main/java/com/danbam/mobile/util/parser/GraphicUtil.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.danbam.mobile.util.parser
-
-import android.content.Context
-import kotlin.math.roundToInt
-
-fun Int.toDp(context: Context) = (this / context.resources.displayMetrics.density).roundToInt()
\ No newline at end of file
diff --git a/settings.gradle.kts b/settings.gradle.kts
index fd5b280d..33677dbf 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,10 +1,3 @@
-pluginManagement {
- repositories {
- gradlePluginPortal()
- google()
- mavenCentral()
- }
-}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
@@ -13,9 +6,22 @@ dependencyResolutionManagement {
}
}
rootProject.name = "indi_straw"
-include(":mobile")
-include(":data")
-include(":domain")
-include(":di")
-include(":design-system")
-include(":tv")
+include(":app:mobile")
+include(":app:tv")
+include(":core:data")
+include(":core:domain")
+include(":core:di")
+include(":core:design-system")
+include(":feature:mobile:auth")
+include(":feature:mobile:search")
+include(":feature:mobile:funding")
+include(":feature:mobile:movie")
+include(":feature:mobile:profile")
+include(":feature:mobile:main")
+include(":feature:mobile:navigation")
+include(":feature:tv:home")
+include(":feature:tv:main")
+include(":feature:tv:setting")
+include(":feature:tv:movie")
+include(":feature:tv:search")
+include(":feature:tv:navigation")
diff --git a/tv/build.gradle.kts b/tv/build.gradle.kts
deleted file mode 100644
index f9cc5622..00000000
--- a/tv/build.gradle.kts
+++ /dev/null
@@ -1,108 +0,0 @@
-import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
-
-plugins {
- id("com.android.application")
- id("kotlin-android")
- id("kotlin-kapt")
- id("dagger.hilt.android.plugin")
-}
-
-android {
- namespace = "com.danbam.tv"
- compileSdk = Version.COMPILE_SDK_VERSION
-
- defaultConfig {
- applicationId = "com.danbam.indi_straw.tv"
- minSdk = Version.MIN_SDK_VERSION
- targetSdk = Version.TARGET_SDK_VERSION
- versionCode = Version.VERSION_CODE
- versionName = Version.VERSION_NAME
- buildConfigField(
- "String",
- "QR_URL",
- gradleLocalProperties(rootDir).getProperty("QR_URL")
- )
- }
-
- buildTypes {
- getByName("release") {
- isMinifyEnabled = true
- isShrinkResources = true
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = Version.JAVA_VERSION
- targetCompatibility = Version.JAVA_VERSION
- }
- kotlinOptions {
- jvmTarget = Version.JAVA_VERSION.toString()
- }
- buildFeatures {
- compose = true
- }
- composeOptions {
- kotlinCompilerExtensionVersion = Version.COMPOSE
- }
- packagingOptions.resources.excludes += setOf(
- "META-INF/DEPENDENCIES",
- "META-INF/LICENSE",
- "META-INF/LICENSE.txt",
- "META-INF/license.txt",
- "META-INF/NOTICE",
- "META-INF/NOTICE.txt",
- "META-INF/INDEX.LIST",
- "META-INF/notice.txt",
- "META-INF/ASL2.0",
- "META-INF/gradle/incremental.annotation.processors"
- )
- hilt {
- enableAggregatingTask = true
- }
-}
-
-dependencies {
- implementation(project(":domain"))
- implementation(project(":di"))
- implementation(project(":design-system"))
-
-
- implementation(Dependency.AndroidX.CORE_KTX)
- implementation(Dependency.AndroidX.LIFECYCLE)
- implementation(Dependency.AndroidX.PAGING_COMPOSE)
- implementation(Dependency.AndroidX.LEANBACK)
-
- implementation(Dependency.Compose.ACTIVITY)
- implementation(Dependency.Compose.UI)
- implementation(Dependency.Compose.PREVIEW)
- implementation(Dependency.Compose.MATERIAL)
- implementation(Dependency.Compose.MATERIAL3)
- implementation(Dependency.Compose.COMPOSE_HILT_NAV)
-
- implementation(Dependency.Accompanist.ANIMATE_NAVIGATION)
-
- implementation(Dependency.Kotlin.COROUTINES_CORE)
- implementation(Dependency.Kotlin.COROUTINES_ANDROID)
-
- implementation(Dependency.Hilt.HILT_ANDROID)
- kapt(Dependency.Hilt.HILT_ANDROID_COMPILER)
-
- implementation(Dependency.Mvi.ORBIT_CORE)
- implementation(Dependency.Mvi.ORBIT_VIEW_MODEL)
- implementation(Dependency.Mvi.ORBIT_TEST)
-
- implementation(Dependency.Coil.COIL)
-
- implementation(Dependency.ExoPlayer.EXO_PLAYER_CORE)
- implementation(Dependency.ExoPlayer.EXO_PLAYER_UI)
-
- implementation(Dependency.Tv.MATERIAL)
- implementation(Dependency.Tv.FOUNDATION)
-
- debugImplementation(Dependency.AndroidTest.COMPOSE_TOOL)
- debugImplementation(Dependency.AndroidTest.COMPOSE_MANIFEST)
- androidTestImplementation(Dependency.AndroidTest.COMPOSE_TEST)
-}
\ No newline at end of file
diff --git a/tv/proguard-rules.pro b/tv/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/tv/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/ui/home/HomeContract.kt b/tv/src/main/java/com/danbam/tv/ui/home/HomeContract.kt
deleted file mode 100644
index 1129b635..00000000
--- a/tv/src/main/java/com/danbam/tv/ui/home/HomeContract.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.danbam.tv.ui.home
-
-import com.danbam.domain.entity.banner.BannerEntity
-import com.danbam.domain.entity.movie.MovieEntity
-
-data class HomeState(
- val currentMovieIndex: Long = 0,
- val movieList: List = listOf(),
- val bannerList: List = listOf()
-)
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/util/android/ContextUtil.kt b/tv/src/main/java/com/danbam/tv/util/android/ContextUtil.kt
deleted file mode 100644
index 8c44201b..00000000
--- a/tv/src/main/java/com/danbam/tv/util/android/ContextUtil.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.danbam.tv.util.android
-
-import android.app.Activity
-import android.content.Context
-import android.content.ContextWrapper
-
-fun Context.findActivity(): Activity? = when (this) {
- is Activity -> this
- is ContextWrapper -> baseContext.findActivity()
- else -> null
-}
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/util/android/ErrorHandlingUtil.kt b/tv/src/main/java/com/danbam/tv/util/android/ErrorHandlingUtil.kt
deleted file mode 100644
index 47c59aa1..00000000
--- a/tv/src/main/java/com/danbam/tv/util/android/ErrorHandlingUtil.kt
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.danbam.tv.util.android
-
-import android.util.Log
-import com.danbam.domain.exception.ConflictDataException
-import com.danbam.domain.exception.ExpiredTokenException
-import com.danbam.domain.exception.InvalidTokenException
-import com.danbam.domain.exception.NotFoundException
-import com.danbam.domain.exception.ServerErrorException
-import com.danbam.domain.exception.TooManyRequestException
-import com.danbam.domain.exception.WrongDataException
-
-suspend fun Throwable.errorHandling(
- unknownAction: suspend () -> Unit,
- wrongDataException: suspend () -> Unit = unknownAction,
- invalidTokenException: suspend () -> Unit = unknownAction,
- notFoundException: suspend () -> Unit = unknownAction,
- conflictException: suspend () -> Unit = unknownAction,
- serverErrorException: suspend () -> Unit = unknownAction,
- expiredTokenException: suspend () -> Unit = unknownAction,
- tooManyRequestException: suspend () -> Unit = unknownAction,
-) =
- when (this) {
- is WrongDataException -> {
- errorLog("WrongDataException", message)
- wrongDataException()
- }
-
- is InvalidTokenException -> {
- errorLog("InvalidTokenException", message)
- invalidTokenException()
- }
-
- is NotFoundException -> {
- errorLog("NotFoundException", message)
- notFoundException()
- }
-
- is ConflictDataException -> {
- errorLog("ConflictDataException", message)
- conflictException()
- }
-
- is ServerErrorException -> {
- errorLog("ServerErrorException", message)
- serverErrorException()
- }
-
- is ExpiredTokenException -> {
- errorLog("ExpiredTokenException", message)
- expiredTokenException()
- }
-
- is TooManyRequestException -> {
- errorLog("TooManyRequestException", message)
- tooManyRequestException()
- }
-
- else -> {
- errorLog("UnKnownException", message)
- unknownAction()
- }
- }
-
-private fun errorLog(tag: String, msg: String?) {
- Log.e(tag, msg ?: "")
-}
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/util/android/LifeCycleUtil.kt b/tv/src/main/java/com/danbam/tv/util/android/LifeCycleUtil.kt
deleted file mode 100644
index 43fe23fb..00000000
--- a/tv/src/main/java/com/danbam/tv/util/android/LifeCycleUtil.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.danbam.tv.util.android
-
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.LaunchedEffect
-import androidx.compose.ui.platform.LocalLifecycleOwner
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.LifecycleOwner
-import androidx.lifecycle.flowWithLifecycle
-import androidx.lifecycle.lifecycleScope
-import kotlinx.coroutines.InternalCoroutinesApi
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.FlowCollector
-import kotlinx.coroutines.launch
-
-@InternalCoroutinesApi
-@Composable
-inline fun Flow.observeWithLifecycle(
- lifecycleOwner: LifecycleOwner = LocalLifecycleOwner.current,
- minActiveState: Lifecycle.State = Lifecycle.State.STARTED,
- noinline action: suspend (T) -> Unit
-) {
- LaunchedEffect(key1 = Unit) {
- lifecycleOwner.lifecycleScope.launch {
- flowWithLifecycle(lifecycleOwner.lifecycle, minActiveState).collect(
- FlowCollector {
- action(it)
- }
- )
- }
- }
-}
\ No newline at end of file
diff --git a/tv/src/main/java/com/danbam/tv/util/parser/StringUtil.kt b/tv/src/main/java/com/danbam/tv/util/parser/StringUtil.kt
deleted file mode 100644
index 3707374d..00000000
--- a/tv/src/main/java/com/danbam/tv/util/parser/StringUtil.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.danbam.tv.util.parser
-
-fun String.isPassword(): Boolean =
- "^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#\$%^&*?~])[0-9a-zA-Z!@#\$%^&*?~]+\$".toRegex()
- .matches(this) && this.length in (5..20)
-
-fun String.isId(): Boolean = this.length in (6..15)
\ No newline at end of file