In wanting to learn can someone explain to me why the order statuses like 20 == processing 30 == Complete are enums instead of a ref key table in the db? Is this legacy? Is this an architectural decision?
It is architectural decision / best practice. The statuses are not just informational for store owner, the core code needs them for workflow processing.