- add classes inside app/library for creting Tethys xml: Field.ts, Strategy.ts, XmlModel.ts

- added model DocumentXmlCache.ts
- npm updates
- changed all models inside app/Models to use corrected BaseModel.ts
- added extra extension class DatasetExtension.ts for app/dataset.ts for caching internal and external fields
This commit is contained in:
Kaimbacher 2023-09-26 17:53:00 +02:00
parent 4ad281bcd4
commit ebb24cc75c
24 changed files with 1170 additions and 324 deletions

View file

@ -1,6 +1,5 @@
import {
column,
BaseModel,
SnakeCaseNamingStrategy,
manyToMany,
ManyToMany,
@ -26,8 +25,10 @@ import DatasetReference from './DatasetReference';
import Collection from './Collection';
import DatasetIdentifier from './DatasetIdentifier';
import Project from './Project';
import DocumentXmlCache from './DocumentXmlCache';
import DatasetExtension from 'App/Models/Traits/DatasetExtension'; // Adjust the import path
export default class Dataset extends BaseModel {
export default class Dataset extends DatasetExtension {
public static namingStrategy = new SnakeCaseNamingStrategy();
public static primaryKey = 'id';
public static table = 'documents';
@ -40,13 +41,13 @@ export default class Dataset extends BaseModel {
public server_state: string;
@column({})
public publisherName: string;
public publisher_name: string;
@column({ columnName: 'creating_corporation' })
public creatingCorporation: string;
public creating_corporation: string;
@column.dateTime({ columnName: 'embargo_date' })
public embargoDate: DateTime;
public embargo_date: DateTime;
@column({})
public type: string;
@ -82,7 +83,7 @@ export default class Dataset extends BaseModel {
public reject_reviewer_note: string | null;
@column.dateTime({ columnName: 'server_date_published' })
public serverDatePublished: DateTime;
public server_date_published: DateTime;
// @column.dateTime({ autoCreate: true, columnName: 'created_at' })
@column.dateTime({
@ -92,10 +93,10 @@ export default class Dataset extends BaseModel {
autoCreate: true,
columnName: 'created_at',
})
public createdAt: DateTime;
public created_at: DateTime;
@column.dateTime({ autoCreate: true, autoUpdate: true, columnName: 'server_date_modified' })
public updatedAt: DateTime;
public server_date_modified: DateTime;
@manyToMany(() => Person, {
pivotForeignKey: 'document_id',
@ -208,4 +209,9 @@ export default class Dataset extends BaseModel {
},
})
public contributors: ManyToMany<typeof Person>;
@hasOne(() => DocumentXmlCache, {
foreignKey: 'document_id',
})
public xmlCache: HasOne<typeof DocumentXmlCache>;
}