# Keep InAppLifecycleHandler - loaded via reflection in InAppManager
-keep class com.capillary.hydra.inapp.lifecycle.InAppLifecycleHandler { *; }

# Keep specific InApp model classes for Parcelable serialization
# These contain campaign data and template configurations passed through Intents
-keep class com.capillary.hydra.inapp.repository.model.InAppPayload { *; }
-keep class com.capillary.hydra.inapp.repository.model.PayloadBody { *; }
-keep class com.capillary.hydra.inapp.repository.model.Template { *; }
-keep class com.capillary.hydra.inapp.repository.model.Trigger { *; }
-keep class com.capillary.hydra.inapp.repository.model.CTA { *; }
-keep class com.capillary.hydra.inapp.repository.model.RatingTheme { *; }
-keep class com.capillary.hydra.inapp.repository.model.Style { *; }
-keep class com.capillary.hydra.inapp.repository.model.FeedbackOptions { *; }

# Keep InApp enums for Parcelable support and template configuration
-keep enum com.capillary.hydra.inapp.repository.model.Priority { *; }
-keep enum com.capillary.hydra.inapp.repository.model.TemplateType { *; }
-keep enum com.capillary.hydra.inapp.repository.model.CTATYPE { *; }
-keep enum com.capillary.hydra.inapp.repository.model.TriggerType { *; }
-keep enum com.capillary.hydra.inapp.repository.model.ViewType { *; }
-keep enum com.capillary.hydra.inapp.repository.model.SelectionType { *; }

# Keep Room database components for InApp campaign storage
-keep class com.capillary.hydra.inapp.database.** { *; }
