Создание сущности
Каждый бизнес-объект в Apostol CRM -- это сущность: набор SQL-файлов, определяющих таблицу, представления, CRUD-функции, REST API, обработчики событий и рабочий процесс.
Конвенция 8 файлов
Каждая сущность располагается в своей директории и содержит:
| Файл | Назначение |
|---|---|
table.sql | CREATE TABLE, индексы, триггеры |
view.sql | 3 представления в схеме kernel |
routine.sql | Функции Create/Edit/Get |
api.sql | Представление API + 6 CRUD-обёрток |
rest.sql | REST-диспетчер |
event.sql | 9 обработчиков событий жизненного цикла |
init.sql | Регистрация класса, типа, событий, методов, переходов |
create.psql | Мастер-скрипт, подключающий все файлы |
Каждая сущность наследуется от document (бизнес-объекты) или reference (справочники).
Основные шаги
- Создать таблицу с FK на родителя и триггером копирования ID
- Создать 3 представления (базовое, с доступом, полное)
- Написать CRUD-функции (Create, Edit, Get)
- Создать API-слой (6 функций: add, update, set, get, count, list)
- Написать REST-диспетчер (6 стандартных маршрутов)
- Добавить обработчики событий (9 функций)
- Зарегистрировать сущность в иерархии классов
- Подключить в родительские скрипты
Полная версия с примерами кода доступна на английском языке: Creating an Entity (English).