Ecto.Enum select underlying id

The whole idea of Ecto.Enum is to not spread the persisted value (the integers in your case) all over the codebase. You’re expected to use the atoms wherever you interact with the field, not the integers. Otherwise you could just use an :integer field to begin with.

But also there’s Ecto.Enum.mappings if you want to map between the representations.