Введение: Простой CRUD
Простой CRUD предназначен для того, чтобы работать с сущностями, полностью соответствующими тем, которые есть в БД Кортеос.
Для работы с CRUD из-под агента необходимо получить контекст клиента на основании идентификатора договора.
Объектная модель выглядит следующим образом:
Персона (имя в базе данных - RW_Person) связана со следующими сущностями:
Контакт (например, адрес электронной почты и телефон, имя в базе данных RW_Contact) - "1 ко многим", т. е. одна персона может иметь 0 и более контактов;
Документ (например, паспорт или заграничный паспорт, имя в базе данных RW_Document) - "1 ко многим", т. е. одна персона может иметь 0 и более документов;
Мильная карта или карта РЖД (имя в базе данных - RW_MileCards) - "1 ко многим", т. е. одна персона может иметь 0 и более мильных карт;
Тревел-политика (имя в базе данных ORG_Policy) - "многие ко многим", т. е. одна персона может иметь несколько тревел-политик, в том числе и по одной услуге, а одна тревел-политика может быть сразу у нескольких персон. Связь реализована через таблицу ORG_PolicyRelationJV3;
Пользователь (имя в базе данных CL_Client) - один к одному, т. е. одна персона может быть или не быть пользователем;
Структурный (или структурный меняемый код) (имя в базе данных - JV3_ORG_MetaCode) - содержится в справочнике JV3_ORG_MetaDictionary; "многие ко многим", т. е. одна персона может иметь несколько кодов, а один код может быть привязан к нескольким персонам. Связь реализована через таблицу JV3_ORG_MetaRelation.
Кроме того, персона привязана к организации (ORG_Organization), в которой она работает, а организация, в свою очередь, содержится внутри некой группы компаний (ORG_Group).
Например, есть ООО "Лютик" и ООО "Ромашка", а вместе они - холдинг "Цветы мира". В том случае, когда мы получаем контекст клиента для работы с персональными данными, мы как раз и выбираем эту компанию по идентификатору договора.
В большинстве случаев для каждой сущности предусмотрены следующие методы:
List - получение списка элементов по внешнему ключу или в рамках контекста договора клиента
Get - получить элемент по первичному ключу
Save - сохраняет элемент в БД
Delete - удаляет объект из базы данных (помечает его как удаленный - устанавливает флаг deleted=true).
Ответы методов всех трех типов содержатся в контейнере UniversalApiResponse, подробнее о нем можно почитать в разделе "Введение к API".
____