plugins {
    id 'com.android.application'
    id 'com.google.dagger.hilt.android'
}

android {
    namespace 'one.nem.lacerta'
    compileSdk 34

    defaultConfig {
        applicationId "one.nem.lacerta"
        minSdk 26
        targetSdk 33

        // ベータ, Internal, Release問わず毎回インクリメントする
        // https://developer.android.com/studio/publish/versioning#versioningsettings
        versionCode 1
        versionName "0.1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        debug { // 開発メンバー用
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            matchingFallbacks = ['release']
        }
        internal_release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            matchingFallbacks = ['release']
        }
        beta_release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            matchingFallbacks = ['release']
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation libs.androidx.appcompat
    implementation libs.com.google.android.material
    implementation libs.androidx.constraintlayout
    testImplementation libs.junit
    androidTestImplementation libs.androidx.test.ext.junit
    androidTestImplementation libs.androidx.test.espresso.core

    // 内部モジュール
    // Feature
    implementation project(':feature:home')
    implementation project(':feature:search')
    implementation project(':feature:library')
    implementation project(':feature:scan')
    implementation project(':feature:debug')  // デバッグメニュー

//    // Component
//    implementation project(':component:common')
//    implementation project(':component:scanner')
//    implementation project(':component:viewer')

//    // Data
//    implementation project(':data:repository')
//
//    // Source
//    implementation project(':data:source:database')
//    implementation project(':data:source:preference')
//
    implementation project(':data')

    implementation project(':shared:ui')

    implementation project(':shared:icon')

    // Hilt (DI)
    implementation libs.com.google.dagger.hilt.android
    annotationProcessor libs.com.google.dagger.hilt.compiler

    // Navigation
    implementation libs.navigation.fragment
    implementation libs.navigation.ui
    implementation libs.navigation.dynamic.features.fragment

}