¿Cómo extender (heredar) correctamente un data class en Kotlin? Posibles soluciones alternativas
¡Hola a todos! Acabo de empezar a aprender Kotlin y me encontré con un problema inesperado. Necesito crear una jerarquía de clases para modelar entidades en una aplicación. Por ejemplo, hay una clase base `User` con campos `id` y `email`, y quiero hacer un data class `AdminUser` que herede de ella y agregue el campo `role`.
Escribí este código:
```kotlin
data class User(val id: Long, val email: String)
data class AdminUser(val id: Long, val email: String, val role: String) : User(id, email)
```
Pero el compilador da un error: "data class may not inherit from a data class". Busqué en Google y entendí que un data class en Kotlin no puede heredar de otro data class, porque el compilador no puede generar correctamente los métodos `equals()`, `hashCode()`, `toString()` y `copy()` para dicha jerarquía.
Pero, ¿qué hacer? Tengo varias entidades similares con campos comunes y quiero evitar la duplicación de código. Intenté usar clases normales, pero pierdo las ventajas de los data class (equals automático, copy, etc.)