🆕 Новое: переднюю часть («фронтенд») этой клиники можно писать тоже на «Глаголе» — он компилируется в JavaScript. Живая версия + исходник фронтенда: Клиника — фронтенд на Глаголе →
Владельцы
Ветеринары
Как это написано — целиком на «Глаголе»
Модель и репозитории — на Глаголе; под капотом @Entity/@Id/@ManyToOne/@OneToMany/JpaRepository и валидация (@NotBlank, @Pattern). Сериализацию в JSON делает служебный пломбинг.
Сущность «Владелец» — таблица со связью и валидацией
сущность «Владелец»: ключ ид имя — строка обязательно фамилия — строка обязательно адрес — строка город — строка телефон — строка только цифры питомцы — много «Питомец» по владельцу
Сущность «Питомец» — принадлежит владельцу
сущность «Питомец»: ключ ид кличка — строка обязательно вид — строка владелец — один «Владелец» приёмы — много «Приём» по питомцу
Репозиторий с поиском по началу фамилии
хранилище «Владельцы» хранит «Владелец»: найти по началу фамилии
Доменные правила — вычисления на «Глаголе» (не в Java-пломбинге)
Тело метода умеет считать: если, сравнения, арифметику, предикаты. Например, срочный приём стоит вдвое, а владелец без телефона помечается «нет контакта».
запись «Правила»:
метод «стоимость» (базовая — число, срочно — число) возвращает число:
если срочно больше 0, то базовая умножить на 2, иначе базовая
метод «контактность» (телефон — строку) возвращает строку:
если телефон пусто, то "нет контакта", иначе "на связи"Приложение-связка
приложение «Клиника»: встрой владельцы — «Владельцы» встрой ветеринары — «Ветеринары»