Use non-primitive types for API DTOs

This allows null values when selected from the database