Создание сущности

Каждый бизнес-объект в Apostol CRM -- это сущность: набор SQL-файлов, определяющих таблицу, представления, CRUD-функции, REST API, обработчики событий и рабочий процесс.

Конвенция 8 файлов

Каждая сущность располагается в своей директории и содержит:

ФайлНазначение
table.sqlCREATE TABLE, индексы, триггеры
view.sql3 представления в схеме kernel
routine.sqlФункции Create/Edit/Get
api.sqlПредставление API + 6 CRUD-обёрток
rest.sqlREST-диспетчер
event.sql9 обработчиков событий жизненного цикла
init.sqlРегистрация класса, типа, событий, методов, переходов
create.psqlМастер-скрипт, подключающий все файлы

Каждая сущность наследуется от document (бизнес-объекты) или reference (справочники).

Основные шаги

  1. Создать таблицу с FK на родителя и триггером копирования ID
  2. Создать 3 представления (базовое, с доступом, полное)
  3. Написать CRUD-функции (Create, Edit, Get)
  4. Создать API-слой (6 функций: add, update, set, get, count, list)
  5. Написать REST-диспетчер (6 стандартных маршрутов)
  6. Добавить обработчики событий (9 функций)
  7. Зарегистрировать сущность в иерархии классов
  8. Подключить в родительские скрипты

Полная версия с примерами кода доступна на английском языке: Creating an Entity (English).