Выборка из репозитария по сложному условию
Когда нужно выбрать агрегаты из репозитария по условию, которое совпадает с вычисляемым полем у агрегата, получается некоторое "дублирование" кода.
Например
class Element
status Status
updated_at Time
is_ready(): bool
return status == Ready && updated_at < now().Sub(1 * time.Hour)
Нужно реализовать в репозитарии метод поиска "готовых" Element
class ElementRepository
get_ready(): []Element
Для этого нужно реалзивать SQL запрос, с дублированием условий WHERE status = 'ready' AND updated_at < (NOW() - INTERVAL '1 hour')
и если логика get_ready
поменяется, то придется менять и sql запрос.
Есть ли способ описать логику эту в одном месте?