11import { attr , belongsTo , AsyncBelongsTo } from '@ember-data/model' ;
2+ import RegistrationModel from 'ember-osf-web/models/registration' ;
3+ import { Link } from 'jsonapi-typescript' ;
24
35import NodeModel from './node' ;
46import OsfModel from './osf-model' ;
5- import UserModel from './user' ;
7+ import UserModel , { UserLinks } from './user' ;
8+
9+ export interface LogParamNodeModel {
10+ id : string ;
11+ title : string ;
12+ }
13+
14+ export interface ContributorModel {
15+ id : string ;
16+ fullName : string ;
17+ active : boolean ;
18+ unregisteredName ?: string ;
19+ }
20+
21+ export interface LogParamUrls {
22+ view : Link ;
23+ download : Link ;
24+ }
25+
26+ export interface LogParamIdentifiersModel {
27+ doi ?: string ;
28+ ark ?: string ;
29+ }
30+
31+ export interface LogParamNameUrlModel {
32+ name : string ;
33+ url : string ;
34+ }
35+
36+ export interface LogParamInstitutionModel {
37+ id : string ;
38+ name : string ;
39+ }
40+
41+ export interface LogParamSourceModel {
42+ materialized : string ;
43+ addon : string ;
44+ url : string ;
45+ }
46+
47+
48+ export interface LogParamModel {
49+ addon : string ;
50+ anonymousLink : boolean ;
51+ contributors : ContributorModel [ ] ;
52+ destination : LogParamSourceModel ;
53+ file : LogParamNameUrlModel ;
54+ githubUser : string ;
55+ guid : string ;
56+ identifiers : LogParamIdentifiersModel ;
57+ institution : LogParamInstitutionModel ;
58+ kind : string ;
59+ license : string ;
60+ pageId : string ;
61+ page : string ;
62+ oldPage : string ;
63+ paramsNode : LogParamNodeModel ;
64+ paramsProject : string ;
65+ path : string ;
66+ pathType : string ;
67+ pointer : string ;
68+ preprint : string ;
69+ preprintProvider : LogParamNameUrlModel ;
70+ source : LogParamSourceModel ;
71+ tag : string ;
72+ titleNew : string ;
73+ titleOriginal : string ;
74+ updatedFields : Object ;
75+ urls : UserLinks ;
76+ value : string ;
77+ version : string ;
78+ wiki : LogParamNameUrlModel ;
79+ }
680
781export default class LogModel extends OsfModel {
882 @attr ( 'date' ) date ! : Date ;
983 @attr ( 'fixstring' ) action ! : string ;
10- @attr ( 'object' ) params ! : any ;
84+ // eslint-disable-next-line
85+ // @ts -ignore
86+ @attr ( 'object' , { snakifyForApi : true } ) params ! : LogParamModel ;
1187
12- @belongsTo ( 'node' , { inverse : null } )
88+ @belongsTo ( 'node' , { inverse : null } )
1389 node ! : AsyncBelongsTo < NodeModel > & NodeModel ;
1490
1591 @belongsTo ( 'node' , { polymorphic : true , inverse : 'logs' } )
@@ -23,6 +99,9 @@ export default class LogModel extends OsfModel {
2399
24100 @belongsTo ( 'node' , { inverse : null } )
25101 templateNode ! : AsyncBelongsTo < NodeModel > & NodeModel ;
102+
103+ @belongsTo ( 'registration' , { inverse : null } )
104+ linkedRegistration ! : AsyncBelongsTo < RegistrationModel > & RegistrationModel ;
26105}
27106
28107declare module 'ember-data/types/registries/model' {
0 commit comments