# Add project specific ProGuard rules here.
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Preserve line numbers for debugging stack traces
-keepattributes SourceFile,LineNumberTable
-renamesourcefileattribute SourceFile

# --- OkHttp ---
-dontwarn okhttp3.**
-dontwarn okio.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }

# --- kotlinx-serialization ---
-keepattributes *Annotation*, InnerClasses
-dontnote kotlinx.serialization.AnnotationsKt
-keepclassmembers class kotlinx.serialization.json.** {
    *** Companion;
}
-keepclasseswithmembers class kotlinx.serialization.json.** {
    kotlinx.serialization.KSerializer serializer(...);
}
-keep,includedescriptorclasses class com.craigvg.lichun_android.**$$serializer { *; }
-keepclassmembers class com.craigvg.lichun_android.** {
    *** Companion;
}
-keepclasseswithmembers class com.craigvg.lichun_android.** {
    kotlinx.serialization.KSerializer serializer(...);
}

# --- Coil ---
-keep class coil.** { *; }
-dontwarn coil.**

# --- AndroidSVG ---
-keep class com.caverock.androidsvg.** { *; }

# --- Google Play Billing ---
-keep class com.android.billingclient.** { *; }
-keep class com.android.vending.billing.** { *; }

# --- Firebase ---
-keep class com.google.firebase.** { *; }
-dontwarn com.google.firebase.**
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**

# --- Hilt / Dagger ---
-dontwarn dagger.**
-keep class dagger.** { *; }
-keep class javax.inject.** { *; }
-keep class * extends dagger.hilt.android.internal.managers.ViewComponentManager$FragmentContextWrapper { *; }

# --- Domain models (used via reflection in JSON parsing) ---
-keep class com.craigvg.lichun_android.domain.models.** { *; }

# --- Enums ---
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# --- Kotlin ---
-dontwarn kotlin.**
-keep class kotlin.Metadata { *; }
