refactor(model): use Date and enums everywhere