Объявляет поле-ссылку на запись в любой heap-таблице без привязки ко конкретной таблице.
"Младший брат" Heap.RefLink.
Это нестандартный тип в JSON-схеме. Он хранится в БД в виде кортежа (массива с двумя элементами) с типом и идентификатором записи, на которую ссылаемся (идентификаторы глобально-уникальны), а в рантайме предствален экземпляром специального класса GenericLink.
Подробнее о работе с ссылками можно почитать в соответствующем разделе руководства.
import { Heap } from '@app/heap'
Heap.GenericLink(options)"
options: {
onDelete
}
Объект с дополнительными необязательными параметрами поля.
'restrict' | 'none'
(по умолчанию - 'restrict'
) 'restrict'
- запретить удаление. Операция delete завершится ошибкой.'none'
- (не рекомендуется) игнорировать.
Запись удалится, а в этом поле останется ссылка на несуществующую запись.JSON-схема для array-поля с двумя элементами, первый - строка с type таблицы, второй - строка с уникальным идентификатором записи.
import { deals } from '@someAccount/deals'
const products = Heap.Table('products', {})
const issues = Heap.Table('issues', {
source: Heap.GenericLink(),
})
const product1 = await products.create(ctx, {})
await projects.create(ctx, { source: product1 })
await projects.create(ctx, {
source: await deals.findOneBy(ctx, { name: 'test' } ),
})
const productIssues = await issues.findBy(ctx, {
source: { type: products.type }
})