export default (name, baseUrl, XProject) => {
  return `
plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-kapt'
    id 'kotlin-parcelize'
    id 'androidx.navigation.safeargs.kotlin'
    id 'com.google.gms.google-services'
    id 'com.google.firebase.crashlytics'
    id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}

android {
    namespace '${name}'
    compileSdk 33

    defaultConfig {
        applicationId "com.${name.toLowerCase()}.app"
        minSdk 23
        targetSdk 33
        versionCode 1
        versionName "1.0.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        buildConfigField "String", "BASE_URL", "\\\"${baseUrl}/\\\""
        buildConfigField "String", "PROJECT_ID", "\\\"${XProject}/\\\""
        buildConfigField "String", "GOOGLE_CLIENT_ID", "\\\"219938711945-nprq8sj04m8225cn23j313ufc6gkthpf.apps.googleusercontent.com\\\""
    }

    android.applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "\${variant.applicationId}-\${variant.versionName}.apk"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = '17'
    }
    buildFeatures {
        viewBinding true
    }
}

dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'
    implementation 'androidx.appcompat:appcompat:1.6.0'
    implementation 'com.google.android.material:material:1.7.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
    implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
    implementation 'androidx.annotation:annotation:1.5.0'

    //Firebase
    implementation platform('com.google.firebase:firebase-bom:31.2.2')
    implementation 'com.google.firebase:firebase-crashlytics-ktx'
    implementation 'com.google.firebase:firebase-analytics-ktx'
    implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.2'
    implementation 'com.google.firebase:firebase-auth-ktx'
    implementation 'com.google.firebase:firebase-messaging-ktx'

    //Graph Chart
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

    //Google APIs
    implementation 'com.google.android.gms:play-services-maps:18.1.0'
    implementation 'com.google.android.gms:play-services-location:21.0.1'
    implementation 'com.google.android.libraries.places:places:3.0.0'
    implementation 'com.google.maps.android:android-maps-utils:2.2.0'
    implementation 'com.google.android.gms:play-services-auth:20.4.1'
    implementation 'com.google.android.gms:play-services-fitness:20.0.0'

    //In-App Update
    //implementation 'com.google.android.play:core:1.10.3'

    //ColorPicker
    implementation 'com.github.duanhong169:colorpicker:1.1.6'
    implementation 'com.github.duanhong169:checkerboarddrawable:1.0.2'

    //ViewPager
    implementation 'androidx.viewpager2:viewpager2:1.0.0'

    //Splash screen
    implementation "androidx.core:core-splashscreen:1.0.0"

    //Text Utils
    implementation "com.intuit.sdp:sdp-android:1.1.0"
    implementation 'androidx.core:core-ktx:1.9.0'
    implementation 'com.google.android.play:app-update-ktx:2.0.1'
    implementation 'com.google.android.gms:play-services-vision:20.1.3'

    // Koin
    def koin_android_version= "3.3.0"
    implementation "io.insert-koin:koin-android:$koin_android_version"

    // Retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    // Requests interceptor
    implementation "com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2"
    //Image processing
    implementation 'com.github.bumptech.glide:glide:4.14.2'
    kapt 'com.github.bumptech.glide:compiler:4.14.2'

    //Permissions
    implementation 'com.karumi:dexter:6.2.3'

    //CameraX
    def camerax_version = "1.2.2"
    implementation "androidx.camera:camera-core:\${camerax_version}"
    implementation "androidx.camera:camera-camera2:\${camerax_version}"
    implementation "androidx.camera:camera-lifecycle:\${camerax_version}"

    implementation "androidx.camera:camera-view:\${camerax_version}"
    implementation "androidx.camera:camera-extensions:\${camerax_version}"

    //IAP
    def billing_version = "6.0.1"
    implementation("com.android.billingclient:billing-ktx:$billing_version")

    //Loader
    implementation "com.github.sakshampruthi:custom-loading-screen:1.16"
    implementation 'com.github.simonebortolin:FlowLayoutManager:1.8.0'

    implementation 'com.madgag.spongycastle:core:1.54.0.0'
    implementation 'com.madgag.spongycastle:prov:1.54.0.0'
    implementation 'com.madgag.spongycastle:pkix:1.54.0.0'
    implementation 'com.madgag.spongycastle:pg:1.54.0.0'

    implementation 'com.airbnb.android:lottie:6.0.0'
    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.22'
    implementation("com.tbuonomo:dotsindicator:4.3")

    implementation 'com.facebook.shimmer:shimmer:0.5.0'

    implementation 'com.google.android.material:material:1.3.0-alpha03'

    //    JWT
    implementation 'io.jsonwebtoken:jjwt-api:0.11.2'
    implementation 'io.jsonwebtoken:jjwt-impl:0.11.2'
    implementation 'io.jsonwebtoken:jjwt-jackson:0.11.2'

    //Card view
    implementation 'androidx.cardview:cardview:1.0.0'

    // STRIPE
    implementation 'com.stripe:stripe-android:14.2.1'
    implementation "com.stripe:stripe-java:19.45.0"
}
  `;
};
