DynamicDtoEnumSerializer
open class DynamicDtoEnumSerializer<E : Enum<E>>(serialName: String, entries: List<E>, pgConvention: CaseConvention = CaseConvention.SNAKE_CASE_UPPER, kotlinConvention: CaseConvention = CaseConvention.PASCAL_CASE) : KSerializer<E>
Base serializer for enum values used within org.octavius.data.type.DynamicDto.
Handles conversion between Kotlin enum names and PostgreSQL storage conventions. Extend this class to create a serializer for your specific enum type.
Usage Example
@Serializable(with = OrderStatusSerializer::class)
@PgEnum(pgConvention = CaseConvention.SNAKE_CASE_UPPER)
enum class OrderStatus { Pending, InProgress, Completed }
object OrderStatusSerializer : DynamicDtoEnumSerializer<OrderStatus>(
serialName = "OrderStatus",
entries = OrderStatus.entries,
pgConvention = CaseConvention.SNAKE_CASE_UPPER,
kotlinConvention = CaseConvention.PASCAL_CASE
)Content copied to clipboard
Parameters
E
The enum type to serialize.
serialName
Name used in the serialization descriptor.
entries
List of all enum values (use EnumClass.entries).
pgConvention
Naming convention used in PostgreSQL (e.g., 'PENDING', 'in_progress').
kotlinConvention
Naming convention used in Kotlin enum (e.g., Pending, InProgress).
Constructors
Link copied to clipboard
constructor(serialName: String, entries: List<E>, pgConvention: CaseConvention = CaseConvention.SNAKE_CASE_UPPER, kotlinConvention: CaseConvention = CaseConvention.PASCAL_CASE)