🐾 Ветеринарная клиника

Веб-CRUD на языке «Глагол» — владельцы, питомцы, приёмы, ветеринары. Данные в настоящей БД (H2), переживают перезапуск.

🆕 Новое: переднюю часть («фронтенд») этой клиники можно писать тоже на «Глаголе» — он компилируется в JavaScript. Живая версия + исходник фронтенда: Клиника — фронтенд на Глаголе →

Владельцы
Ветеринары

Как это написано — целиком на «Глаголе»

Модель и репозитории — на Глаголе; под капотом @Entity/@Id/@ManyToOne/@OneToMany/JpaRepository и валидация (@NotBlank, @Pattern). Сериализацию в JSON делает служебный пломбинг.

Сущность «Владелец» — таблица со связью и валидацией

сущность «Владелец»:
  ключ ид
  имя — строка обязательно
  фамилия — строка обязательно
  адрес — строка
  город — строка
  телефон — строка только цифры
  питомцы — много «Питомец» по владельцу

Сущность «Питомец» — принадлежит владельцу

сущность «Питомец»:
  ключ ид
  кличка — строка обязательно
  вид — строка
  владелец — один «Владелец»
  приёмы — много «Приём» по питомцу

Репозиторий с поиском по началу фамилии

хранилище «Владельцы» хранит «Владелец»:
  найти по началу фамилии

Доменные правила — вычисления на «Глаголе» (не в Java-пломбинге)

Тело метода умеет считать: если, сравнения, арифметику, предикаты. Например, срочный приём стоит вдвое, а владелец без телефона помечается «нет контакта».

запись «Правила»:
  метод «стоимость» (базовая — число, срочно — число) возвращает число:
    если срочно больше 0, то базовая умножить на 2, иначе базовая
  метод «контактность» (телефон — строку) возвращает строку:
    если телефон пусто, то "нет контакта", иначе "на связи"

Приложение-связка

приложение «Клиника»:
  встрой владельцы — «Владельцы»
  встрой ветеринары — «Ветеринары»