import { column, SnakeCaseNamingStrategy, belongsTo } from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; import Dataset from './dataset.js'; import BaseModel from './base_model.js'; import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class DatasetReference extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); public static primaryKey = 'id'; public static table = 'document_references'; public static fillable: string[] = ['value', 'label', 'type', 'relation']; @column({ isPrimary: true, }) public id: number; @column({}) public document_id: number; @column({}) public related_document_id?: number; @column({}) public type: string; @column({}) public relation: string; @column({}) public value: string; @column({}) public label: string; @column.dateTime({ autoCreate: true, }) public created_at?: DateTime; @column.dateTime({ autoCreate: true, autoUpdate: true, }) public updated_at?: DateTime; @belongsTo(() => Dataset, { foreignKey: 'document_id', }) public dataset: BelongsTo; // Reference.belongsTo(Dataset, { // foreignKey: "related_document_id", // as: "new_dataset", // include: "identifier" // }); @belongsTo(() => Dataset, { foreignKey: 'related_document_id', }) public new_dataset: BelongsTo; }